From 5bfbaa46104ca87ddad58da7480d121348abf9da Mon Sep 17 00:00:00 2001 From: Laura Langdon <48335772+LauraLangdon@users.noreply.github.com> Date: Wed, 29 Apr 2026 11:47:11 -0700 Subject: [PATCH 1/2] feat: add API reference docs via starlight-openapi --- astro.config.mjs | 11 + package.json | 4 +- schemas/aggregated-public-information.json | 27512 +++++++++++++++++++ yarn.lock | 459 +- 4 files changed, 27981 insertions(+), 5 deletions(-) create mode 100644 schemas/aggregated-public-information.json diff --git a/astro.config.mjs b/astro.config.mjs index 40bafd8..8163a21 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,12 +1,22 @@ // @ts-check import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; +import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi'; // https://astro.build/config export default defineConfig({ site: 'https://distributeaid.github.io', integrations: [ starlight({ + plugins: [ + starlightOpenAPI([ + { + base: 'api-reference', + label: 'API Reference', + schema: './schemas/aggregated-public-information.json', + }, + ]), + ], title: 'Distribute Aid Docs', logo: { src: './src/assets/da-logo.svg', @@ -40,6 +50,7 @@ export default defineConfig({ label: 'Aggregated Public Information', autogenerate: { directory: 'aggregated-public-information' }, }, + ...openAPISidebarGroups, ], }), ], diff --git a/package.json b/package.json index 0f345bd..50cf715 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,11 @@ "prepare": "husky" }, "dependencies": { + "@astrojs/markdown-remark": "^7.1.1", "@astrojs/starlight": "^0.38.4", "astro": "^6.1.10", - "sharp": "^0.34.3" + "sharp": "^0.34.3", + "starlight-openapi": "^0.25.0" }, "packageManager": "yarn@4.9.4", "engines": { diff --git a/schemas/aggregated-public-information.json b/schemas/aggregated-public-information.json new file mode 100644 index 0000000..371ac39 --- /dev/null +++ b/schemas/aggregated-public-information.json @@ -0,0 +1,27512 @@ +{ + "openapi": "3.1.0", + "x-powered-by": "strapi", + "x-strapi-version": "5.33.1", + "info": { + "title": "aggregated-public-information", + "description": "API documentation for aggregated-public-information v0.1.0", + "version": "0.1.0" + }, + "paths": { + "/currency-conversions": { + "get": { + "operationId": "financial/get/currency_conversions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "An integer field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.418Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "year", + "month", + "currency", + "equivalentToUSD", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"] + }, + "post": { + "operationId": "financial/post/currency_conversions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "An integer field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.422Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "year", + "month", + "currency", + "equivalentToUSD", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "A float field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:03.186Z", + "type": "string" + } + }, + "required": [ + "year", + "month", + "currency", + "equivalentToUSD", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/currency-conversions/{id}": { + "get": { + "operationId": "financial/get/currency_conversions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "An integer field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.420Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "year", + "month", + "currency", + "equivalentToUSD", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"] + }, + "put": { + "operationId": "financial/put/currency_conversions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "An integer field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.423Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "year", + "month", + "currency", + "equivalentToUSD", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "A float field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.423Z", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "financial/delete/currency_conversions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "month", + "currency", + "equivalentToUSD", + "source", + "notes", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "month": { + "description": "An integer field", + "type": "integer", + "minimum": 1, + "maximum": 12 + }, + "currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "equivalentToUSD": { + "description": "A float field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.424Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "year", + "month", + "currency", + "equivalentToUSD", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"] + } + }, + "/gdp-conversions": { + "get": { + "operationId": "financial/get/gdp_conversions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.427Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "Country", + "Year", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"] + }, + "post": { + "operationId": "financial/post/gdp_conversions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.430Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "Country", + "Year", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:03.287Z", + "type": "string" + } + }, + "required": ["Country", "Year", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/gdp-conversions/{id}": { + "get": { + "operationId": "financial/get/gdp_conversions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.429Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "Country", + "Year", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"] + }, + "put": { + "operationId": "financial/put/gdp_conversions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.432Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "Country", + "Year", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.431Z", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "financial/delete/gdp_conversions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "GDPPerCapita_PPP_InternationalDollar", + "Source", + "Last_Updated", + "Ratio_US_to_Country", + "Notes", + "Currency", + "Country_Code", + "Country", + "Year", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "GDPPerCapita_PPP_InternationalDollar": { + "description": "A decimal field", + "type": "number" + }, + "Source": { + "description": "A string field", + "type": "string" + }, + "Last_Updated": { + "description": "A date field", + "type": "string" + }, + "Ratio_US_to_Country": { + "description": "A decimal field", + "type": "number" + }, + "Notes": { + "description": "A text field", + "type": "string" + }, + "Currency": { + "description": "An enum field", + "type": "string", + "enum": [ + "BAM", + "CNY", + "EUR", + "GBP", + "HRK", + "LBP", + "LTL", + "MDL", + "NOK", + "PKR", + "PLN", + "RON", + "RSD", + "UAH", + "USD" + ] + }, + "Country_Code": { + "description": "An enum field", + "type": "string", + "enum": [ + "AUT", + "BEL", + "BIH", + "CHE", + "CHN", + "DEU", + "ESP", + "FRA", + "GBR", + "GRC", + "HRV", + "ITA", + "LBN", + "LTU", + "MDA", + "NLD", + "NOR", + "PAK", + "POL", + "ROM", + "SRB", + "UKR", + "USA" + ] + }, + "Country": { + "description": "An enum field", + "type": "string", + "enum": [ + "Austria", + "Belgium", + "Bosnia", + "China", + "Croatia", + "France", + "Germany", + "Greece", + "Italy ", + "Lebanon", + "Lithuania", + "Moldova", + "Netherlands (the)", + "Norway", + "Pakistan", + "Poland", + "Romania", + "Serbia", + "Spain", + "Switzerland", + "UK", + "Ukraine", + "United States" + ] + }, + "Year": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.433Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "Country", + "Year", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["financial"] + } + }, + "/countries": { + "get": { + "operationId": "geo/get/countries", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.434Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "name", + "code", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + }, + "post": { + "operationId": "geo/post/countries", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.436Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "name", + "code", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:03.388Z", + "type": "string" + } + }, + "required": ["name", "code", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/countries/{id}": { + "get": { + "operationId": "geo/get/countries_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.435Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "name", + "code", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + }, + "put": { + "operationId": "geo/put/countries_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.437Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "name", + "code", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.437Z", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "geo/delete/countries_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "code", + "slug", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.438Z", + "type": "string" + } + }, + "required": [ + "documentId", + "id", + "name", + "code", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + } + }, + "/regions": { + "get": { + "operationId": "geo/get/regions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "subregions", "countries"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "subregions", "countries"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.439Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + }, + "post": { + "operationId": "geo/post/regions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "subregions", "countries"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "subregions", "countries"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.447Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.447Z", + "type": "string" + }, + "map": { + "description": "A media field" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + } + }, + "required": ["name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/regions/{id}": { + "get": { + "operationId": "geo/get/regions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "subregions", "countries"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "subregions", "countries"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.443Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + }, + "put": { + "operationId": "geo/put/regions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "subregions", "countries"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "subregions", "countries"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.449Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.448Z", + "type": "string" + }, + "map": { + "description": "A media field" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "geo/delete/regions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "subregions", "countries"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "subregions", "countries"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.450Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + } + }, + "/subregions": { + "get": { + "operationId": "geo/get/subregions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "region", "country"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "region", "country"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.455Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + }, + "post": { + "operationId": "geo/post/subregions", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "region", "country"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "region", "country"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.457Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.457Z", + "type": "string" + }, + "map": { + "description": "A media field" + }, + "region": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "country": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "required": ["name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/subregions/{id}": { + "get": { + "operationId": "geo/get/subregions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "region", "country"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "region", "country"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.456Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + }, + "put": { + "operationId": "geo/put/subregions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "region", "country"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "region", "country"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.459Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.458Z", + "type": "string" + }, + "map": { + "description": "A media field" + }, + "region": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "country": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "geo/delete/subregions_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["map", "region", "country"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["map", "region", "country"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "slug", + "overview", + "governmentResponse", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.460Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["geo"] + } + }, + "/groups": { + "get": { + "operationId": "group/get/groups", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["region"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["region"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.462Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["group"] + }, + "post": { + "operationId": "group/post/groups", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["region"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["region"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.465Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["group"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.464Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "required": ["publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/groups/{id}": { + "get": { + "operationId": "group/get/groups_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["region"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["region"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.463Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["group"] + }, + "put": { + "operationId": "group/put/groups_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["region"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["region"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.467Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["group"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.466Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "group/delete/groups_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["region"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["region"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "shortName", + "groupName", + "umbrellaOrganisation", + "notes", + "groupConvertFrom", + "shortNameStripped", + "groupNameStripped", + "groupConvertFromStripped", + "groupType", + "number", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": [ + "Aid group", + "In-Kind Donor", + "Service Provider" + ] + }, + "number": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.468Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["group"] + } + }, + "/needs": { + "get": { + "operationId": "needs-assessment/get/needs", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "amount", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "amount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.469Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "subregion": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "needs_assessment_survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + } + }, + "required": [ + "documentId", + "id", + "amount", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"] + }, + "post": { + "operationId": "needs-assessment/post/needs", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "amount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.475Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "subregion": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "needs_assessment_survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + } + }, + "required": ["documentId", "id", "amount", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "amount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.475Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "region": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "subregion": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "item": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "needs_assessment_survey": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "required": ["amount", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/needs/{id}": { + "get": { + "operationId": "needs-assessment/get/needs_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "amount", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "amount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.474Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "subregion": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "needs_assessment_survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + } + }, + "required": ["documentId", "id", "amount", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"] + }, + "put": { + "operationId": "needs-assessment/put/needs_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "amount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.476Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "subregion": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "needs_assessment_survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + } + }, + "required": ["documentId", "id", "amount", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "amount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.476Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "region": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "subregion": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "item": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "needs_assessment_survey": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "needs-assessment/delete/needs_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "survey", + "region", + "subregion", + "item", + "needs_assessment_survey" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["amount", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "amount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.477Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "subregion": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "needs_assessment_survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + } + }, + "required": ["documentId", "id", "amount", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"] + } + }, + "/surveys": { + "get": { + "operationId": "needs-assessment/get/surveys", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["needs"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["needs"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.479Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiNeedsAssessmentNeedDocument" + } + } + }, + "required": [ + "documentId", + "id", + "year", + "quarter", + "reference", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"] + }, + "post": { + "operationId": "needs-assessment/post/surveys", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["needs"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["needs"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.485Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiNeedsAssessmentNeedDocument" + } + } + }, + "required": [ + "documentId", + "id", + "year", + "quarter", + "reference", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.485Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + } + }, + "required": ["year", "quarter", "reference", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/surveys/{id}": { + "get": { + "operationId": "needs-assessment/get/surveys_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["needs"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["needs"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.480Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiNeedsAssessmentNeedDocument" + } + } + }, + "required": [ + "documentId", + "id", + "year", + "quarter", + "reference", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"] + }, + "put": { + "operationId": "needs-assessment/put/surveys_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["needs"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["needs"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.486Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiNeedsAssessmentNeedDocument" + } + } + }, + "required": [ + "documentId", + "id", + "year", + "quarter", + "reference", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.486Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "needs-assessment/delete/surveys_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["needs"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["needs"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "year", + "quarter", + "reference", + "yearQuarter", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.488Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiNeedsAssessmentNeedDocument" + } + } + }, + "required": [ + "documentId", + "id", + "year", + "quarter", + "reference", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["needs-assessment"] + } + }, + "/categories": { + "get": { + "operationId": "product/get/categories", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["items"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["items"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.490Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiProductItemDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"] + }, + "post": { + "operationId": "product/post/categories", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["items"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["items"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.491Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiProductItemDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.491Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + } + }, + "required": ["name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/categories/{id}": { + "get": { + "operationId": "product/get/categories_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["items"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["items"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.491Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiProductItemDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"] + }, + "put": { + "operationId": "product/put/categories_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["items"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["items"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.492Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiProductItemDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.492Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "product/delete/categories_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["items"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["items"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": ["name", "createdAt", "updatedAt", "publishedAt"] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.493Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiProductItemDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"] + } + }, + "/items": { + "get": { + "operationId": "product/get/items", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "An integer field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.494Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductCategoryDocument" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductVolumeEntry" + } + }, + "weight": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductWeightEntry" + } + }, + "needsMet": { + "description": "A component field", + "$ref": "#/components/schemas/ProductNeedsMetEntry" + }, + "secondHand": { + "description": "A component field", + "$ref": "#/components/schemas/ProductSecondHandEntry" + }, + "value": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductValueEntry" + } + } + }, + "required": [ + "documentId", + "id", + "name", + "packSize", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"] + }, + "post": { + "operationId": "product/post/items", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "An integer field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.497Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductCategoryDocument" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductVolumeEntry" + } + }, + "weight": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductWeightEntry" + } + }, + "needsMet": { + "description": "A component field", + "$ref": "#/components/schemas/ProductNeedsMetEntry" + }, + "secondHand": { + "description": "A component field", + "$ref": "#/components/schemas/ProductSecondHandEntry" + }, + "value": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductValueEntry" + } + } + }, + "required": [ + "documentId", + "id", + "name", + "packSize", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "A float field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.497Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": {} + }, + "weight": { + "description": "A component field", + "type": "array", + "items": {} + }, + "needsMet": { + "description": "A component field" + }, + "secondHand": { + "description": "A component field" + }, + "value": { + "description": "A component field", + "type": "array", + "items": {} + } + }, + "required": ["name", "packSize", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/items/{id}": { + "get": { + "operationId": "product/get/items_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "An integer field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.496Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductCategoryDocument" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductVolumeEntry" + } + }, + "weight": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductWeightEntry" + } + }, + "needsMet": { + "description": "A component field", + "$ref": "#/components/schemas/ProductNeedsMetEntry" + }, + "secondHand": { + "description": "A component field", + "$ref": "#/components/schemas/ProductSecondHandEntry" + }, + "value": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductValueEntry" + } + } + }, + "required": [ + "documentId", + "id", + "name", + "packSize", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"] + }, + "put": { + "operationId": "product/put/items_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "An integer field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.499Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductCategoryDocument" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductVolumeEntry" + } + }, + "weight": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductWeightEntry" + } + }, + "needsMet": { + "description": "A component field", + "$ref": "#/components/schemas/ProductNeedsMetEntry" + }, + "secondHand": { + "description": "A component field", + "$ref": "#/components/schemas/ProductSecondHandEntry" + }, + "value": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductValueEntry" + } + } + }, + "required": [ + "documentId", + "id", + "name", + "packSize", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "A float field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.499Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": {} + }, + "weight": { + "description": "A component field", + "type": "array", + "items": {} + }, + "needsMet": { + "description": "A component field" + }, + "secondHand": { + "description": "A component field" + }, + "value": { + "description": "A component field", + "type": "array", + "items": {} + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "product/delete/items_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "category", + "volume", + "weight", + "needsMet", + "secondHand", + "value" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "name", + "age_gender", + "size_style", + "packSize", + "unit", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "An integer field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.500Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductCategoryDocument" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductVolumeEntry" + } + }, + "weight": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductWeightEntry" + } + }, + "needsMet": { + "description": "A component field", + "$ref": "#/components/schemas/ProductNeedsMetEntry" + }, + "secondHand": { + "description": "A component field", + "$ref": "#/components/schemas/ProductSecondHandEntry" + }, + "value": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductValueEntry" + } + } + }, + "required": [ + "documentId", + "id", + "name", + "packSize", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["product"] + } + }, + "/cargos": { + "get": { + "operationId": "reporting/get/cargos", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.503Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "sender": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "receiver": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + }, + "post": { + "operationId": "reporting/post/cargos", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.510Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "sender": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "receiver": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "packageCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "string", + "enum": ["0", "1", "t", "true", "f", "false"] + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "string", + "enum": ["0", "1", "t", "true", "f", "false"] + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.509Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "item": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "sendingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "receivingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "sender": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "receiver": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "required": ["publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/cargos/{id}": { + "get": { + "operationId": "reporting/get/cargos_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.508Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "sender": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "receiver": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + }, + "put": { + "operationId": "reporting/put/cargos_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.512Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "sender": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "receiver": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "packageCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "string", + "enum": ["0", "1", "t", "true", "f", "false"] + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "string", + "enum": ["0", "1", "t", "true", "f", "false"] + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.511Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "item": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "sendingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "receivingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "sender": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "receiver": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "reporting/delete/cargos_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "shipment", + "item", + "sendingCountry", + "receivingCountry", + "countryGDPContextCostOverride", + "sender", + "receiver" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "packageCount", + "packageUnit", + "used", + "itemCount", + "valueOverride", + "valueOverrideCurrency", + "normalizedValuePerItem", + "totalNormalizedValue", + "valueInSendingCountry", + "valueInReceivingCountry", + "totalNeedsMet", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": [ + "USD", + "GBP", + "EUR", + "LBP", + "LTL", + "RSD", + "BAM" + ] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.514Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "sender": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "receiver": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + } + }, + "/movements": { + "get": { + "operationId": "reporting/get/movements", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["shipment", "serviceProvider"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["shipment", "serviceProvider"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.524Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "serviceProvider": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + }, + "post": { + "operationId": "reporting/post/movements", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["shipment", "serviceProvider"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["shipment", "serviceProvider"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.527Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "serviceProvider": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.527Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "serviceProvider": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "required": ["publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/movements/{id}": { + "get": { + "operationId": "reporting/get/movements_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["shipment", "serviceProvider"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["shipment", "serviceProvider"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.526Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "serviceProvider": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + }, + "put": { + "operationId": "reporting/put/movements_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["shipment", "serviceProvider"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["shipment", "serviceProvider"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.530Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "serviceProvider": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "A float field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.529Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "serviceProvider": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "reporting/delete/movements_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["shipment", "serviceProvider"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["shipment", "serviceProvider"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "segment", + "pickupDate", + "dropoffDate", + "packageCount", + "packagingType", + "totalCargoVolM3", + "totalCargoWeightKG", + "vehicleCount", + "pickUpAddress", + "dropOffAddress", + "distanceKM", + "notes", + "deliveryMethod", + "involvement", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "segment": { + "description": "An enum field", + "type": "string", + "enum": [ + "First Mile", + "Last Mile", + "Main Leg", + "Main Leg-Cont" + ] + }, + "pickupDate": { + "description": "A date field", + "type": "string" + }, + "dropoffDate": { + "description": "A date field", + "type": "string" + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packagingType": { + "description": "A string field", + "type": "string" + }, + "totalCargoVolM3": { + "description": "A decimal field", + "type": "number" + }, + "totalCargoWeightKG": { + "description": "A decimal field", + "type": "number" + }, + "vehicleCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pickUpAddress": { + "description": "A text field", + "type": "string" + }, + "dropOffAddress": { + "description": "A text field", + "type": "string" + }, + "distanceKM": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "deliveryMethod": { + "description": "An enum field", + "type": "string", + "enum": [ + "FTL", + "LTL", + "Box Truck", + "Van", + "Personal Vehicle", + "FCL: 20 ft", + "FCL: 40 ft", + "FCL: 20 ft HC", + "FCL: 40 ft HC", + "LCL", + "Rail", + "Air" + ] + }, + "involvement": { + "description": "An enum field", + "type": "string", + "enum": [ + "Advised", + "Assisted", + "Organized", + "Not involved" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.531Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "serviceProvider": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + } + }, + "/shipments": { + "get": { + "operationId": "reporting/get/shipments", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.533Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiReportingCargoDocument" + } + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "importer": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "exporter": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "daRoles": { + "description": "A component field", + "$ref": "#/components/schemas/ReportingShipmentRolesEntry" + } + }, + "required": [ + "documentId", + "id", + "number", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + }, + "post": { + "operationId": "reporting/post/shipments", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.536Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiReportingCargoDocument" + } + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "importer": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "exporter": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "daRoles": { + "description": "A component field", + "$ref": "#/components/schemas/ReportingShipmentRolesEntry" + } + }, + "required": ["documentId", "id", "number", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "string", + "enum": ["0", "1", "t", "true", "f", "false"] + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.536Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "sendingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "receivingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "importer": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "exporter": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "daRoles": { + "description": "A component field" + } + }, + "required": ["number", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/shipments/{id}": { + "get": { + "operationId": "reporting/get/shipments_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.535Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiReportingCargoDocument" + } + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "importer": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "exporter": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "daRoles": { + "description": "A component field", + "$ref": "#/components/schemas/ReportingShipmentRolesEntry" + } + }, + "required": ["documentId", "id", "number", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + }, + "put": { + "operationId": "reporting/put/shipments_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.538Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiReportingCargoDocument" + } + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "importer": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "exporter": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "daRoles": { + "description": "A component field", + "$ref": "#/components/schemas/ReportingShipmentRolesEntry" + } + }, + "required": ["documentId", "id", "number", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "string", + "enum": ["0", "1", "t", "true", "f", "false"] + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.537Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + "sendingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "receivingCountry": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "importer": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "exporter": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "daRoles": { + "description": "A component field" + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "reporting/delete/shipments_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": [ + "cargo", + "sendingCountry", + "receivingCountry", + "importer", + "exporter", + "daRoles" + ] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "carrierId", + "carbonOffsetPaid", + "co2TonsGenerated", + "carbonOffsetCost", + "type", + "number", + "project", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.539Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiReportingCargoDocument" + } + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "importer": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "exporter": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "daRoles": { + "description": "A component field", + "$ref": "#/components/schemas/ReportingShipmentRolesEntry" + } + }, + "required": ["documentId", "id", "number", "publishedAt"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["reporting"] + } + }, + "/members": { + "get": { + "operationId": "team/get/members", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "_q", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["Profile", "From", "Roles"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["Profile", "From", "Roles"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fetch documents based on their status. Default to \"published\" if not specified.", + "type": "string", + "enum": ["draft", "published"] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.541Z", + "type": "string" + }, + "Profile": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "From": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamRoleEntry" + } + } + }, + "required": [ + "documentId", + "id", + "Name", + "publishedAt", + "Profile", + "Roles" + ], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["team"] + }, + "post": { + "operationId": "team/post/members", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["Profile", "From", "Roles"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["Profile", "From", "Roles"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fetch documents based on their status. Default to \"published\" if not specified.", + "type": "string", + "enum": ["draft", "published"] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.544Z", + "type": "string" + }, + "Profile": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "From": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamRoleEntry" + } + } + }, + "required": [ + "documentId", + "id", + "Name", + "publishedAt", + "Profile", + "Roles" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["team"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.543Z", + "type": "string" + }, + "Profile": { + "description": "A media field" + }, + "From": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": {} + } + }, + "required": ["Name", "publishedAt", "Profile", "Roles"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + } + }, + "/members/{id}": { + "get": { + "operationId": "team/get/members_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["Profile", "From", "Roles"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["Profile", "From", "Roles"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the result", + "anyOf": [ + { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fetch documents based on their status. Default to \"published\" if not specified.", + "type": "string", + "enum": ["draft", "published"] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.543Z", + "type": "string" + }, + "Profile": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "From": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamRoleEntry" + } + } + }, + "required": [ + "documentId", + "id", + "Name", + "publishedAt", + "Profile", + "Roles" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["team"] + }, + "put": { + "operationId": "team/put/members_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["Profile", "From", "Roles"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["Profile", "From", "Roles"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fetch documents based on their status. Default to \"published\" if not specified.", + "type": "string", + "enum": ["draft", "published"] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.545Z", + "type": "string" + }, + "Profile": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "From": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamRoleEntry" + } + } + }, + "required": [ + "documentId", + "id", + "Name", + "publishedAt", + "Profile", + "Roles" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["team"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.545Z", + "type": "string" + }, + "Profile": { + "description": "A media field" + }, + "From": { + "description": "A relational field", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": {} + } + }, + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "team/delete/members_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones", + "readOnly": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + } + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "description": "Populate all the first level relations, components, files, and dynamic zones for the entry", + "readOnly": true, + "type": "string", + "const": "*" + }, + { + "description": "Populate a single relation, component, file, or dynamic zone", + "readOnly": true, + "type": "string", + "enum": ["Profile", "From", "Roles"] + }, + { + "description": "Populate a selection of multiple relations, components, files, or dynamic zones", + "type": "array", + "items": { + "type": "string", + "enum": ["Profile", "From", "Roles"] + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Filters to apply to the query", + "type": "object", + "propertyNames": { + "type": "string", + "enum": [ + "Name", + "Pronouns", + "Bio", + "createdAt", + "updatedAt", + "publishedAt" + ] + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fetch documents based on their status. Default to \"published\" if not specified.", + "type": "string", + "enum": ["draft", "published"] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "Name": { + "description": "A string field", + "type": "string" + }, + "Pronouns": { + "description": "A string field", + "type": "string" + }, + "Bio": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.546Z", + "type": "string" + }, + "Profile": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "From": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "Roles": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamRoleEntry" + } + } + }, + "required": [ + "documentId", + "id", + "Name", + "publishedAt", + "Profile", + "Roles" + ], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["team"] + } + }, + "/content-types": { + "get": { + "operationId": "content-type-builder/get/content_types", + "parameters": [ + { + "name": "kind", + "in": "query", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string", + "enum": ["collectionType", "singleType"] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + }, + "plugin": { + "type": "string" + }, + "apiID": { + "type": "string" + }, + "schema": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "singularName": { + "type": "string" + }, + "pluralName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "draftAndPublish": { + "type": "boolean" + }, + "kind": { + "type": "string", + "enum": ["collectionType", "singleType"] + }, + "collectionName": { + "type": "string" + }, + "attributes": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "media" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "multiple": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "allowedTypes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type", "multiple"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "relation" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "relation": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + }, + "targetAttribute": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "autoPopulate": { + "type": "boolean" + }, + "mappedBy": { + "type": "string" + }, + "inversedBy": { + "type": "string" + } + }, + "required": [ + "type", + "relation", + "target", + "targetAttribute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "component" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "component": { + "type": "string" + }, + "repeatable": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": [ + "type", + "component", + "repeatable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "dynamiczone" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "components": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + } + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": ["type", "components"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "uid" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "targetField": { + "type": "string" + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "default": {}, + "min": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "max": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minLength": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "enum": { + "type": "array", + "items": { + "type": "string" + } + }, + "regex": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "configurable": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["type"], + "additionalProperties": false + } + ] + } + }, + "visible": { + "type": "boolean" + }, + "restrictRelationsTo": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ] + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "options": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "reviewWorkflows": { + "type": "boolean" + }, + "populateCreatorFields": { + "type": "boolean" + }, + "comment": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "displayName", + "singularName", + "pluralName", + "description", + "draftAndPublish", + "kind", + "attributes", + "visible", + "restrictRelationsTo" + ], + "additionalProperties": false + } + }, + "required": ["uid", "apiID", "schema"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["content-type-builder"] + } + }, + "/content-types/{uid}": { + "get": { + "operationId": "content-type-builder/get/content_types_by_uid", + "parameters": [ + { + "name": "uid", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + }, + "plugin": { + "type": "string" + }, + "apiID": { + "type": "string" + }, + "schema": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "singularName": { + "type": "string" + }, + "pluralName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "draftAndPublish": { + "type": "boolean" + }, + "kind": { + "type": "string", + "enum": ["collectionType", "singleType"] + }, + "collectionName": { + "type": "string" + }, + "attributes": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "media" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "multiple": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "allowedTypes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type", "multiple"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "relation" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "relation": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + }, + "targetAttribute": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "autoPopulate": { + "type": "boolean" + }, + "mappedBy": { + "type": "string" + }, + "inversedBy": { + "type": "string" + } + }, + "required": [ + "type", + "relation", + "target", + "targetAttribute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "component" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "component": { + "type": "string" + }, + "repeatable": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": [ + "type", + "component", + "repeatable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "dynamiczone" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "components": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + } + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": ["type", "components"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "uid" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "targetField": { + "type": "string" + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "default": {}, + "min": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "max": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minLength": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "enum": { + "type": "array", + "items": { + "type": "string" + } + }, + "regex": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "configurable": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["type"], + "additionalProperties": false + } + ] + } + }, + "visible": { + "type": "boolean" + }, + "restrictRelationsTo": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ] + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "options": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "reviewWorkflows": { + "type": "boolean" + }, + "populateCreatorFields": { + "type": "boolean" + }, + "comment": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "displayName", + "singularName", + "pluralName", + "description", + "draftAndPublish", + "kind", + "attributes", + "visible", + "restrictRelationsTo" + ], + "additionalProperties": false + } + }, + "required": ["uid", "apiID", "schema"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["content-type-builder"] + } + }, + "/components": { + "get": { + "operationId": "content-type-builder/get/components", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + }, + "category": { + "type": "string" + }, + "apiId": { + "type": "string" + }, + "schema": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "collectionName": { + "type": "string" + }, + "attributes": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "media" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "multiple": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "allowedTypes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type", "multiple"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "relation" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "relation": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + }, + "targetAttribute": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "autoPopulate": { + "type": "boolean" + }, + "mappedBy": { + "type": "string" + }, + "inversedBy": { + "type": "string" + } + }, + "required": [ + "type", + "relation", + "target", + "targetAttribute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "component" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "component": { + "type": "string" + }, + "repeatable": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": [ + "type", + "component", + "repeatable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "dynamiczone" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "components": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + } + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": ["type", "components"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "uid" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "targetField": { + "type": "string" + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "default": {}, + "min": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "max": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minLength": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "enum": { + "type": "array", + "items": { + "type": "string" + } + }, + "regex": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "configurable": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["type"], + "additionalProperties": false + } + ] + } + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": [ + "displayName", + "description", + "attributes" + ], + "additionalProperties": false + } + }, + "required": ["uid", "category", "apiId", "schema"], + "additionalProperties": false + } + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["content-type-builder"] + } + }, + "/components/{uid}": { + "get": { + "operationId": "content-type-builder/get/components_by_uid", + "parameters": [ + { + "name": "uid", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + }, + "category": { + "type": "string" + }, + "apiId": { + "type": "string" + }, + "schema": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "collectionName": { + "type": "string" + }, + "attributes": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "media" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "multiple": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "allowedTypes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type", "multiple"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "relation" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "relation": { + "type": "string" + }, + "target": { + "type": "string", + "pattern": "^((strapi|admin)::[\\w-]+|(api|plugin)::[\\w-]+\\.[\\w-]+)$" + }, + "targetAttribute": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "autoPopulate": { + "type": "boolean" + }, + "mappedBy": { + "type": "string" + }, + "inversedBy": { + "type": "string" + } + }, + "required": [ + "type", + "relation", + "target", + "targetAttribute" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "component" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "component": { + "type": "string" + }, + "repeatable": { + "type": "boolean" + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": [ + "type", + "component", + "repeatable" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "dynamiczone" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "components": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[\\w-]+\\.[\\w-]+$" + } + }, + "required": { + "type": "boolean" + }, + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "required": ["type", "components"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "uid" + }, + "configurable": { + "type": "boolean", + "const": false + }, + "private": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "targetField": { + "type": "string" + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "default": {}, + "min": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "max": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minLength": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "enum": { + "type": "array", + "items": { + "type": "string" + } + }, + "regex": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "configurable": { + "type": "boolean" + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["type"], + "additionalProperties": false + } + ] + } + }, + "pluginOptions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": [ + "displayName", + "description", + "attributes" + ], + "additionalProperties": false + } + }, + "required": ["uid", "category", "apiId", "schema"], + "additionalProperties": false + } + }, + "required": ["data"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["content-type-builder"] + } + }, + "/": { + "post": { + "operationId": "upload/post", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "documentId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "name": { + "type": "string" + }, + "alternativeText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "caption": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "width": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "height": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "formats": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "folder": { + "type": "number" + }, + "folderPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": { + "anyOf": [ + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "createdBy": { + "type": "number" + }, + "updatedBy": { + "type": "number" + } + }, + "required": [ + "id", + "documentId", + "name", + "hash", + "mime", + "size", + "url", + "folderPath", + "provider", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + }, + { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "documentId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "name": { + "type": "string" + }, + "alternativeText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "caption": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "width": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "height": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "formats": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "folder": { + "type": "number" + }, + "folderPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": { + "anyOf": [ + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "createdBy": { + "type": "number" + }, + "updatedBy": { + "type": "number" + } + }, + "required": [ + "id", + "documentId", + "name", + "hash", + "mime", + "size", + "url", + "folderPath", + "provider", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + } + ] + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["upload"] + } + }, + "/files": { + "get": { + "operationId": "upload/get/files", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Select specific fields to return in the response", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specify which relations to populate in the response", + "anyOf": [ + { + "type": "string", + "const": "*" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the results by specified fields", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Apply filters to the query", + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "documentId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "name": { + "type": "string" + }, + "alternativeText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "caption": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "width": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "height": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "formats": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "folder": { + "type": "number" + }, + "folderPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": { + "anyOf": [ + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "createdBy": { + "type": "number" + }, + "updatedBy": { + "type": "number" + } + }, + "required": [ + "id", + "documentId", + "name", + "hash", + "mime", + "size", + "url", + "folderPath", + "provider", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["upload"] + } + }, + "/files/{id}": { + "get": { + "operationId": "upload/get/files_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Select specific fields to return in the response", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specify which relations to populate in the response", + "anyOf": [ + { + "type": "string", + "const": "*" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "documentId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "name": { + "type": "string" + }, + "alternativeText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "caption": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "width": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "height": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "formats": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "folder": { + "type": "number" + }, + "folderPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": { + "anyOf": [ + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "createdBy": { + "type": "number" + }, + "updatedBy": { + "type": "number" + } + }, + "required": [ + "id", + "documentId", + "name", + "hash", + "mime", + "size", + "url", + "folderPath", + "provider", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["upload"] + }, + "delete": { + "operationId": "upload/delete/files_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "documentId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "name": { + "type": "string" + }, + "alternativeText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "caption": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "width": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "height": { + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "formats": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "folder": { + "type": "number" + }, + "folderPath": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": { + "anyOf": [ + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "createdBy": { + "type": "number" + }, + "updatedBy": { + "type": "number" + } + }, + "required": [ + "id", + "documentId", + "name", + "hash", + "mime", + "size", + "url", + "folderPath", + "provider", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["upload"] + } + }, + "/locales": { + "get": { + "operationId": "i18n/get/locales", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "documentId": { + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string", + "minLength": 2, + "maxLength": 2 + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "isDefault": { + "type": "boolean" + } + }, + "required": [ + "id", + "documentId", + "name", + "code", + "createdAt", + "updatedAt", + "publishedAt", + "isDefault" + ], + "additionalProperties": false + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["i18n"] + } + }, + "/slugs/{modelName}/{slug}": { + "get": { + "operationId": "slugify/get/slugs_by_modelName__slug", + "parameters": [], + "responses": { + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["slugify"] + } + }, + "/connect/(.*)": { + "get": { + "operationId": "users-permissions/get/connect_____", + "parameters": [], + "responses": { + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/auth/local": { + "post": { + "operationId": "users-permissions/post/auth_local", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "jwt": { + "type": "string" + }, + "refreshToken": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["jwt", "user"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": ["identifier", "password"], + "additionalProperties": false + } + } + } + } + } + }, + "/auth/local/register": { + "post": { + "operationId": "users-permissions/post/auth_local_register", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "type": "object", + "properties": { + "jwt": { + "type": "string" + }, + "refreshToken": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["jwt", "user"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["user"], + "additionalProperties": false + } + ] + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + }, + "password": { + "type": "string" + } + }, + "required": ["username", "email", "password"], + "additionalProperties": false + } + } + } + } + } + }, + "/auth/{provider}/callback": { + "get": { + "operationId": "users-permissions/get/auth_by_provider_callback", + "parameters": [ + { + "name": "provider", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "jwt": { + "type": "string" + }, + "refreshToken": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["jwt", "user"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/auth/forgot-password": { + "post": { + "operationId": "users-permissions/post/auth_forgot_password", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "ok": { + "type": "boolean" + } + }, + "required": ["ok"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + } + }, + "required": ["email"], + "additionalProperties": false + } + } + } + } + } + }, + "/auth/reset-password": { + "post": { + "operationId": "users-permissions/post/auth_reset_password", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "jwt": { + "type": "string" + }, + "refreshToken": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["jwt", "user"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "password": { + "type": "string" + }, + "passwordConfirmation": { + "type": "string" + } + }, + "required": ["code", "password", "passwordConfirmation"], + "additionalProperties": false + } + } + } + } + } + }, + "/auth/email-confirmation": { + "get": { + "operationId": "users-permissions/get/auth_email_confirmation", + "parameters": [], + "responses": { + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/auth/send-email-confirmation": { + "post": { + "operationId": "users-permissions/post/auth_send_email_confirmation", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "sent": { + "type": "boolean" + } + }, + "required": ["email", "sent"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + } + }, + "required": ["email"], + "additionalProperties": false + } + } + } + } + } + }, + "/auth/change-password": { + "post": { + "operationId": "users-permissions/post/auth_change_password", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "jwt": { + "type": "string" + }, + "refreshToken": { + "type": "string" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["jwt", "user"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "currentPassword": { + "type": "string" + }, + "password": { + "type": "string" + }, + "passwordConfirmation": { + "type": "string" + } + }, + "required": [ + "currentPassword", + "password", + "passwordConfirmation" + ], + "additionalProperties": false + } + } + } + } + } + }, + "/auth/refresh": { + "post": { + "operationId": "users-permissions/post/auth_refresh", + "parameters": [], + "responses": { + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/auth/logout": { + "post": { + "operationId": "users-permissions/post/auth_logout", + "parameters": [], + "responses": { + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/users/count": { + "get": { + "operationId": "users-permissions/get/users_count", + "parameters": [ + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Apply filters to the query", + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "number" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/users": { + "get": { + "operationId": "users-permissions/get/users", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Select specific fields to return in the response", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specify which relations to populate in the response", + "anyOf": [ + { + "type": "string", + "const": "*" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "sort", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Sort the results by specified fields", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + }, + { + "type": "array", + "items": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string", + "enum": ["asc", "desc"] + } + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "pagination", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pagination parameters", + "allOf": [ + { + "type": "object", + "properties": { + "withCount": { + "description": "Include total count in response", + "type": "boolean" + } + }, + "additionalProperties": false + }, + { + "anyOf": [ + { + "description": "Page-based pagination", + "type": "object", + "properties": { + "page": { + "description": "Page number (1-based)", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + }, + "pageSize": { + "description": "Number of entries per page", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["page", "pageSize"], + "additionalProperties": false + }, + { + "description": "Offset-based pagination", + "type": "object", + "properties": { + "start": { + "description": "Number of entries to skip", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 + }, + "limit": { + "description": "Maximum number of entries to return", + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 9007199254740991 + } + }, + "required": ["start", "limit"], + "additionalProperties": false + } + ] + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "filters", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Apply filters to the query", + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + }, + "post": { + "operationId": "users-permissions/post/users", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + }, + "password": { + "type": "string" + }, + "role": { + "type": "number" + } + }, + "required": ["username", "email", "password"], + "additionalProperties": false + } + } + } + } + } + }, + "/users/me": { + "get": { + "operationId": "users-permissions/get/users_me", + "parameters": [ + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Select specific fields to return in the response", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specify which relations to populate in the response", + "anyOf": [ + { + "type": "string", + "const": "*" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/users/{id}": { + "get": { + "operationId": "users-permissions/get/users_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Select specific fields to return in the response", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "x-strapi-serialize": "querystring" + }, + { + "name": "populate", + "in": "query", + "required": false, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specify which relations to populate in the response", + "anyOf": [ + { + "type": "string", + "const": "*" + }, + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + ] + }, + "x-strapi-serialize": "querystring" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + }, + "put": { + "operationId": "users-permissions/put/users_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + }, + "password": { + "type": "string" + }, + "role": { + "type": "number" + } + }, + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "users-permissions/delete/users_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "blocked": { + "type": "boolean" + }, + "role": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "description", + "type", + "createdAt", + "updatedAt" + ], + "additionalProperties": false + } + ] + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + } + }, + "required": [ + "id", + "documentId", + "username", + "email", + "provider", + "confirmed", + "blocked", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/roles/{id}": { + "get": { + "operationId": "users-permissions/get/roles_by_id", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "role": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + }, + "nb_users": { + "type": "number" + }, + "permissions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "properties": { + "controllers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "policy": { + "type": "string" + } + }, + "required": ["enabled", "policy"], + "additionalProperties": false + } + } + } + }, + "required": ["controllers"], + "additionalProperties": false + } + }, + "users": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "documentId", + "name", + "description", + "type", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + }, + "required": ["role"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/roles": { + "get": { + "operationId": "users-permissions/get/roles", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "documentId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "publishedAt": { + "type": "string" + }, + "nb_users": { + "type": "number" + }, + "permissions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "properties": { + "controllers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "policy": { + "type": "string" + } + }, + "required": ["enabled", "policy"], + "additionalProperties": false + } + } + } + }, + "required": ["controllers"], + "additionalProperties": false + } + }, + "users": { + "type": "array", + "items": {} + } + }, + "required": [ + "id", + "documentId", + "name", + "description", + "type", + "createdAt", + "updatedAt", + "publishedAt" + ], + "additionalProperties": false + } + } + }, + "required": ["roles"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + }, + "post": { + "operationId": "users-permissions/post/roles", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "ok": { + "type": "boolean" + } + }, + "required": ["ok"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "permissions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "required": ["name", "type"], + "additionalProperties": false + } + } + } + } + } + }, + "/roles/{role}": { + "put": { + "operationId": "users-permissions/put/roles_by_role", + "parameters": [ + { + "name": "role", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "ok": { + "type": "boolean" + } + }, + "required": ["ok"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "permissions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": {} + } + }, + "additionalProperties": false + } + } + } + } + }, + "delete": { + "operationId": "users-permissions/delete/roles_by_role", + "parameters": [ + { + "name": "role", + "in": "path", + "required": true, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "ok": { + "type": "boolean" + } + }, + "required": ["ok"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + }, + "/permissions": { + "get": { + "operationId": "users-permissions/get/permissions", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "permissions": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "properties": { + "controllers": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "policy": { + "type": "string" + } + }, + "required": ["enabled", "policy"], + "additionalProperties": false + } + } + } + }, + "required": ["controllers"], + "additionalProperties": false + } + } + }, + "required": ["permissions"], + "additionalProperties": false + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not found" + }, + "500": { + "description": "Internal server error" + } + }, + "tags": ["users-permissions"] + } + } + }, + "components": { + "schemas": { + "PluginUploadFileDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "alternativeText": { + "description": "A text field", + "type": "string" + }, + "caption": { + "description": "A text field", + "type": "string" + }, + "width": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "height": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "formats": { + "description": "A JSON field" + }, + "hash": { + "description": "A string field", + "type": "string" + }, + "ext": { + "description": "A string field", + "type": "string" + }, + "mime": { + "description": "A string field", + "type": "string" + }, + "size": { + "description": "A decimal field", + "type": "number" + }, + "url": { + "description": "A text field", + "type": "string" + }, + "previewUrl": { + "description": "A text field", + "type": "string" + }, + "provider": { + "description": "A string field", + "type": "string" + }, + "provider_metadata": { + "description": "A JSON field" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.440Z", + "type": "string" + }, + "related": {} + }, + "required": [ + "documentId", + "id", + "name", + "hash", + "mime", + "size", + "url", + "provider", + "publishedAt", + "related" + ], + "additionalProperties": false, + "id": "PluginUploadFileDocument" + }, + "ApiGeoCountryDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "code": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.442Z", + "type": "string" + } + }, + "required": ["documentId", "id", "name", "code", "publishedAt"], + "additionalProperties": false, + "id": "ApiGeoCountryDocument" + }, + "ApiGeoRegionDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.441Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "subregions": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + } + }, + "countries": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false, + "id": "ApiGeoRegionDocument" + }, + "ApiGeoSubregionDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "slug": { + "description": "A string field", + "type": "string" + }, + "overview": { + "description": "A richtext field", + "type": "string" + }, + "governmentResponse": { + "description": "A richtext field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.441Z", + "type": "string" + }, + "map": { + "description": "A media field", + "$ref": "#/components/schemas/PluginUploadFileDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false, + "id": "ApiGeoSubregionDocument" + }, + "ApiProductCategoryDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.471Z", + "type": "string" + }, + "items": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiProductItemDocument" + } + } + }, + "required": ["documentId", "id", "name", "publishedAt"], + "additionalProperties": false, + "id": "ApiProductCategoryDocument" + }, + "ProductVolumeEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "packageVolume": { + "description": "A decimal field", + "type": "number" + }, + "packageVolumeUnit": { + "description": "An enum field", + "type": "string", + "enum": ["cubic in", "cubic cm", "cubic ft", "cubic m"] + }, + "countPerPackage": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "itemVolumeCBCM": { + "description": "A decimal field", + "type": "number" + }, + "countPerCBM": { + "description": "A decimal field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "logDate": { + "description": "A date field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + } + }, + "required": [ + "packageVolume", + "packageVolumeUnit", + "countPerPackage", + "source", + "logDate" + ], + "additionalProperties": false, + "id": "ProductVolumeEntry" + }, + "ProductWeightEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "packageWeight": { + "description": "A decimal field", + "type": "number" + }, + "packageWeightUnit": { + "description": "An enum field", + "type": "string", + "enum": ["lb", "oz", "g", "kg"] + }, + "countPerPackage": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "itemWeightKg": { + "description": "A decimal field", + "type": "number" + }, + "countPerKg": { + "description": "A decimal field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "logDate": { + "description": "A date field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + } + }, + "required": [ + "packageWeight", + "packageWeightUnit", + "countPerPackage", + "source", + "logDate" + ], + "additionalProperties": false, + "id": "ProductWeightEntry" + }, + "ProductNeedsMetEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "items": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "people": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": ["DA", "SPHERE"] + }, + "months": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "monthlyNeedsMetPerItem": { + "description": "A decimal field", + "type": "number" + }, + "notes": { + "description": "A text field", + "type": "string" + } + }, + "additionalProperties": false, + "id": "ProductNeedsMetEntry" + }, + "ProductSecondHandEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "canBeUsed": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "priceAdjustment": { + "description": "An integer field", + "default": 100, + "type": "integer", + "minimum": 0, + "maximum": 100 + } + }, + "required": ["canBeUsed", "priceAdjustment"], + "additionalProperties": false, + "id": "ProductSecondHandEntry" + }, + "ProductValueEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "packagePrice": { + "description": "A decimal field", + "type": "number" + }, + "packagePriceUnit": { + "description": "An enum field", + "default": "USD", + "type": "string", + "enum": ["USD"] + }, + "countPerPackage": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "pricePerItemUSD": { + "description": "A decimal field", + "type": "number" + }, + "source": { + "description": "A string field", + "type": "string" + }, + "logDate": { + "description": "A date field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + } + }, + "required": ["packagePriceUnit", "source", "logDate"], + "additionalProperties": false, + "id": "ProductValueEntry" + }, + "ApiProductItemDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "name": { + "description": "A string field", + "type": "string" + }, + "age_gender": { + "description": "A string field", + "type": "string" + }, + "size_style": { + "description": "A string field", + "type": "string" + }, + "packSize": { + "description": "An integer field", + "default": 1, + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "unit": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.471Z", + "type": "string" + }, + "category": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductCategoryDocument" + }, + "volume": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductVolumeEntry" + } + }, + "weight": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductWeightEntry" + } + }, + "needsMet": { + "description": "A component field", + "$ref": "#/components/schemas/ProductNeedsMetEntry" + }, + "secondHand": { + "description": "A component field", + "$ref": "#/components/schemas/ProductSecondHandEntry" + }, + "value": { + "description": "A component field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductValueEntry" + } + } + }, + "required": ["documentId", "id", "name", "packSize", "publishedAt"], + "additionalProperties": false, + "id": "ApiProductItemDocument" + }, + "ApiNeedsAssessmentNeedDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "amount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.470Z", + "type": "string" + }, + "survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + }, + "subregion": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoSubregionDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "needs_assessment_survey": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiNeedsAssessmentSurveyDocument" + } + }, + "required": ["documentId", "id", "amount", "publishedAt"], + "additionalProperties": false, + "id": "ApiNeedsAssessmentNeedDocument" + }, + "ApiNeedsAssessmentSurveyDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "year": { + "description": "A string field", + "type": "string" + }, + "quarter": { + "description": "An enum field", + "type": "string", + "enum": ["Q1", "Q2", "Q3", "Q4"] + }, + "reference": { + "description": "A string field", + "type": "string" + }, + "yearQuarter": { + "description": "A string field", + "type": "string" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.470Z", + "type": "string" + }, + "needs": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiNeedsAssessmentNeedDocument" + } + } + }, + "required": [ + "documentId", + "id", + "year", + "quarter", + "reference", + "publishedAt" + ], + "additionalProperties": false, + "id": "ApiNeedsAssessmentSurveyDocument" + }, + "ApiGroupGroupDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "shortName": { + "description": "A string field", + "type": "string" + }, + "groupName": { + "description": "A string field", + "type": "string" + }, + "umbrellaOrganisation": { + "description": "A string field", + "type": "string" + }, + "notes": { + "description": "A text field", + "type": "string" + }, + "groupConvertFrom": { + "description": "A string field", + "type": "string" + }, + "shortNameStripped": { + "description": "A string field", + "type": "string" + }, + "groupNameStripped": { + "description": "A text field", + "type": "string" + }, + "groupConvertFromStripped": { + "description": "A string field", + "type": "string" + }, + "groupType": { + "description": "An enum field", + "type": "string", + "enum": ["Aid group", "In-Kind Donor", "Service Provider"] + }, + "number": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.505Z", + "type": "string" + }, + "region": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoRegionDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false, + "id": "ApiGroupGroupDocument" + }, + "ApiReportingCargoDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "packageCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "packageUnit": { + "description": "An enum field", + "type": "string", + "enum": [ + "Bag", + "Medium Bag", + "Large Bag", + "Box", + "Banana Box", + "Pallet", + "Euro Pallet", + "Item", + "Single Item" + ] + }, + "used": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "itemCount": { + "description": "An integer field", + "type": "integer", + "minimum": -9007199254740991, + "maximum": 9007199254740991 + }, + "valueOverride": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "valueOverrideCurrency": { + "description": "An enum field", + "type": "string", + "enum": ["USD", "GBP", "EUR", "LBP", "LTL", "RSD", "BAM"] + }, + "normalizedValuePerItem": { + "description": "A decimal field", + "type": "number" + }, + "totalNormalizedValue": { + "description": "A decimal field", + "type": "number" + }, + "valueInSendingCountry": { + "description": "A decimal field", + "type": "number" + }, + "valueInReceivingCountry": { + "description": "A decimal field", + "type": "number" + }, + "totalNeedsMet": { + "description": "A decimal field", + "type": "number" + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.504Z", + "type": "string" + }, + "shipment": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiReportingShipmentDocument" + }, + "item": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiProductItemDocument" + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "countryGDPContextCostOverride": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "sender": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "receiver": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + } + }, + "required": ["documentId", "id", "publishedAt"], + "additionalProperties": false, + "id": "ApiReportingCargoDocument" + }, + "ReportingShipmentRolesEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "needsAssessment": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "sourcingInKindDonations": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "sourcingProcurement": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "sourcingCommunityCollection": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "aidMatching": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "firstMileTransportation": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "firstMileStorageCommercial": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "firstMileStorageCommunity": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "mainLegTransportation": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "customsTransit": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "customsExport": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "customsImport": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastMileTransportation": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastMileStorageCommercial": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastMileStorageCommunity": { + "description": "A boolean field", + "default": false, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "needsAssessment", + "sourcingInKindDonations", + "sourcingProcurement", + "sourcingCommunityCollection", + "aidMatching", + "firstMileTransportation", + "firstMileStorageCommercial", + "firstMileStorageCommunity", + "mainLegTransportation", + "customsTransit", + "customsExport", + "customsImport", + "lastMileTransportation", + "lastMileStorageCommercial", + "lastMileStorageCommunity" + ], + "additionalProperties": false, + "id": "ReportingShipmentRolesEntry" + }, + "ApiReportingShipmentDocument": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "documentId": { + "description": "The document ID, represented by a UUID", + "type": "string", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "carrierId": { + "description": "A string field", + "type": "string" + }, + "carbonOffsetPaid": { + "description": "A boolean field", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "co2TonsGenerated": { + "description": "A decimal field", + "type": "number" + }, + "carbonOffsetCost": { + "description": "A decimal field", + "type": "number" + }, + "type": { + "description": "An enum field", + "type": "string", + "enum": [ + "Regular Route", + "Ad Hoc", + "Aid Swap/Local Transfer", + "In-Kind Donation", + "Procurement", + "First Mile", + "Last Mile", + "Other" + ] + }, + "number": { + "description": "A string field", + "type": "string" + }, + "project": { + "description": "An enum field", + "type": "string", + "enum": [ + "Covid 19", + "Disaster Relief", + "Moria Fire", + "Refugee Aid - Europe", + "Refugee Aid - Lebanon", + "Economic Development - Lebanon", + "Social Enterprise Support", + "Ukraine", + "Us Arr", + "Disaster Relief - Usa", + "Refugee Aid - Usa", + "Gaza Response", + "Other" + ] + }, + "createdAt": { + "description": "A datetime field", + "type": "string" + }, + "updatedAt": { + "description": "A datetime field", + "type": "string" + }, + "publishedAt": { + "description": "A datetime field", + "default": "2026-04-29T18:30:02.503Z", + "type": "string" + }, + "cargo": { + "description": "A relational field", + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiReportingCargoDocument" + } + }, + "sendingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "receivingCountry": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + }, + "importer": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "exporter": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGroupGroupDocument" + }, + "daRoles": { + "description": "A component field", + "$ref": "#/components/schemas/ReportingShipmentRolesEntry" + } + }, + "required": ["documentId", "id", "number", "publishedAt"], + "additionalProperties": false, + "id": "ApiReportingShipmentDocument" + }, + "GeoLocationEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "name": { + "description": "A string field", + "type": "string" + }, + "country": { + "description": "A relational field", + "$ref": "#/components/schemas/ApiGeoCountryDocument" + } + }, + "required": ["name"], + "additionalProperties": false, + "id": "GeoLocationEntry" + }, + "TeamRoleEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "Title": { + "description": "A string field", + "type": "string" + }, + "Type": { + "description": "A string field", + "type": "string" + }, + "Location": { + "description": "A component field", + "$ref": "#/components/schemas/GeoLocationEntry" + }, + "Duration": { + "description": "A component field", + "$ref": "#/components/schemas/TimeDurationEntry" + } + }, + "required": ["Title"], + "additionalProperties": false, + "id": "TeamRoleEntry" + }, + "TimeDurationEntry": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "Start": { + "description": "A datetime field", + "type": "string" + }, + "End": { + "description": "A datetime field", + "type": "string" + } + }, + "required": ["Start"], + "additionalProperties": false, + "id": "TimeDurationEntry" + } + } + } +} diff --git a/yarn.lock b/yarn.lock index b9511b3..1645369 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,16 @@ __metadata: version: 8 cacheKey: 10c0 +"@apidevtools/json-schema-ref-parser@npm:^13.0.5": + version: 13.0.5 + resolution: "@apidevtools/json-schema-ref-parser@npm:13.0.5" + dependencies: + "@types/json-schema": "npm:^7.0.15" + js-yaml: "npm:^4.1.0" + checksum: 10c0/ccc74ea60e20db8928d7c6f4bc21e29ea9125cad3b95bbf3f34dec8a4b197a2abd93493a4b992c275febb98f3426d46e87605c39db79e84161a03484e717bbc8 + languageName: node + linkType: hard + "@astrojs/compiler@npm:^3.0.1": version: 3.0.1 resolution: "@astrojs/compiler@npm:3.0.1" @@ -21,7 +31,7 @@ __metadata: languageName: node linkType: hard -"@astrojs/markdown-remark@npm:7.1.1, @astrojs/markdown-remark@npm:^7.0.0": +"@astrojs/markdown-remark@npm:7.1.1, @astrojs/markdown-remark@npm:^7.0.0, @astrojs/markdown-remark@npm:^7.1.1": version: 7.1.1 resolution: "@astrojs/markdown-remark@npm:7.1.1" dependencies: @@ -145,7 +155,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.5": version: 7.29.0 resolution: "@babel/code-frame@npm:7.29.0" dependencies: @@ -181,6 +191,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.22.5": + version: 7.29.2 + resolution: "@babel/runtime@npm:7.29.2" + checksum: 10c0/30b80a0140d16467792e1bbeb06f655b0dab70407da38dfac7fedae9c859f9ae9d846ef14ad77bd3814c064295fe9b1bc551f1541ea14646ae9f22b71a8bc17a + languageName: node + linkType: hard + "@babel/runtime@npm:^7.23.2": version: 7.28.3 resolution: "@babel/runtime@npm:7.28.3" @@ -1245,6 +1262,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/momoa@npm:^2.0.3": + version: 2.0.4 + resolution: "@humanwhocodes/momoa@npm:2.0.4" + checksum: 10c0/ff081fb5239eb23ae40c59bd51e8128d34b043be3b7c2adb2522cdff51b01ec3129e57d5a24a1eb3a082159d5b41fddfbaffc4cf46cae4fe11a51393f60424fd + languageName: node + linkType: hard + "@img/colour@npm:^1.0.0": version: 1.0.0 resolution: "@img/colour@npm:1.0.0" @@ -1853,6 +1877,45 @@ __metadata: languageName: node linkType: hard +"@readme/better-ajv-errors@npm:^2.3.2": + version: 2.4.0 + resolution: "@readme/better-ajv-errors@npm:2.4.0" + dependencies: + "@babel/code-frame": "npm:^7.22.5" + "@babel/runtime": "npm:^7.22.5" + "@humanwhocodes/momoa": "npm:^2.0.3" + jsonpointer: "npm:^5.0.0" + leven: "npm:^3.1.0" + picocolors: "npm:^1.1.1" + peerDependencies: + ajv: 4.11.8 - 8 + checksum: 10c0/3ab79bc93ac5ae93bc1b5ab381fa7c2ccd7247eedcfe3e769d1e0545dcf3af1d7453b87388de6983cfe1af04d6b361f76d56b8e8a1cf7191304947fcdaa730ea + languageName: node + linkType: hard + +"@readme/openapi-parser@npm:^4.1.2": + version: 4.1.2 + resolution: "@readme/openapi-parser@npm:4.1.2" + dependencies: + "@apidevtools/json-schema-ref-parser": "npm:^13.0.5" + "@readme/better-ajv-errors": "npm:^2.3.2" + "@readme/openapi-schemas": "npm:^3.1.0" + "@types/json-schema": "npm:^7.0.15" + ajv: "npm:^8.12.0" + ajv-draft-04: "npm:^1.0.0" + peerDependencies: + openapi-types: ">=7" + checksum: 10c0/1a7a797158722735c67b9486bad13bba08cd47c0fd5af001d54a7fe49b7c37f5e2cf276bd516647917bff60c5627c0ede18053f3317554ed19b6208263f61c15 + languageName: node + linkType: hard + +"@readme/openapi-schemas@npm:^3.1.0": + version: 3.1.0 + resolution: "@readme/openapi-schemas@npm:3.1.0" + checksum: 10c0/88d28d181b463b296c98bc288f2fc8975c302ec488edd1018ce8843c3eedbf3bb423ced934c6fd09bce4a0203fe9ea050bf2b3fa39a1bf665e41f87224dd71c5 + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.3.0": version: 5.3.0 resolution: "@rollup/pluginutils@npm:5.3.0" @@ -2240,6 +2303,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + "@types/katex@npm:^0.16.0": version: 0.16.8 resolution: "@types/katex@npm:0.16.8" @@ -2384,6 +2454,18 @@ __metadata: languageName: node linkType: hard +"ajv-draft-04@npm:^1.0.0": + version: 1.0.0 + resolution: "ajv-draft-04@npm:1.0.0" + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10c0/6044310bd38c17d77549fd326bd40ce1506fa10b0794540aa130180808bf94117fac8c9b448c621512bea60e4a947278f6a978e87f10d342950c15b33ddd9271 + languageName: node + linkType: hard + "ajv@npm:8.18.0": version: 8.18.0 resolution: "ajv@npm:8.18.0" @@ -2396,6 +2478,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.12.0": + version: 8.20.0 + resolution: "ajv@npm:8.20.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10c0/5df9a1c8f83863cde1bd3a9ddb426f599718f88e3dc9153616c79fb28e0be455335830d7f21d745576519f057b371352daa31047b6a33d7036fe08777d60cf2a + languageName: node + linkType: hard + "ansi-align@npm:^3.0.1": version: 3.0.1 resolution: "ansi-align@npm:3.0.1" @@ -2623,6 +2717,20 @@ __metadata: languageName: node linkType: hard +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 + languageName: node + linkType: hard + +"async-generator-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-generator-function@npm:1.0.0" + checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186 + languageName: node + linkType: hard + "async@npm:~3.2.6": version: 3.2.6 resolution: "async@npm:3.2.6" @@ -2630,6 +2738,13 @@ __metadata: languageName: node linkType: hard +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + "axe-core@npm:~4.11.1": version: 4.11.2 resolution: "axe-core@npm:4.11.2" @@ -2890,6 +3005,16 @@ __metadata: languageName: node linkType: hard +"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 + languageName: node + linkType: hard + "callsites@npm:^3.0.0, callsites@npm:^3.1.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -3171,6 +3296,15 @@ __metadata: languageName: node linkType: hard +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + "comma-separated-tokens@npm:^2.0.0": version: 2.0.3 resolution: "comma-separated-tokens@npm:2.0.3" @@ -3587,6 +3721,13 @@ __metadata: languageName: node linkType: hard +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + "dequal@npm:^2.0.0": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -3665,6 +3806,7 @@ __metadata: version: 0.0.0-use.local resolution: "docs@workspace:." dependencies: + "@astrojs/markdown-remark": "npm:^7.1.1" "@astrojs/starlight": "npm:^0.38.4" astro: "npm:^6.1.10" cspell: "npm:^9.7.0" @@ -3676,6 +3818,7 @@ __metadata: prettier: "npm:^3.8.1" serve: "npm:^14.2.6" sharp: "npm:^0.34.3" + starlight-openapi: "npm:^0.25.0" languageName: unknown linkType: soft @@ -3724,6 +3867,24 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 + languageName: node + linkType: hard + +"duplexer@npm:^0.1.1, duplexer@npm:~0.1.1": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 10c0/c57bcd4bdf7e623abab2df43a7b5b23d18152154529d166c1e0da6bee341d84c432d157d7e97b32fecb1bf3a8b8857dd85ed81a915789f550637ed25b8e64fc2 + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -3849,6 +4010,20 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + "es-module-lexer@npm:^2.0.0": version: 2.1.0 resolution: "es-module-lexer@npm:2.1.0" @@ -3856,6 +4031,27 @@ __metadata: languageName: node linkType: hard +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af + languageName: node + linkType: hard + "esast-util-from-estree@npm:^2.0.0": version: 2.0.0 resolution: "esast-util-from-estree@npm:2.0.0" @@ -4196,6 +4392,21 @@ __metadata: languageName: node linkType: hard +"event-stream@npm:4.0.1": + version: 4.0.1 + resolution: "event-stream@npm:4.0.1" + dependencies: + duplexer: "npm:^0.1.1" + from: "npm:^0.1.7" + map-stream: "npm:0.0.7" + pause-stream: "npm:^0.0.11" + split: "npm:^1.0.1" + stream-combiner: "npm:^0.2.2" + through: "npm:^2.3.8" + checksum: 10c0/cedb3f7ffda81f1524b66c284b4a41bb8407246bd7fe461b89a07807d28753460596e430f1346c135a64c5ba88d2a5d0711d072379b39c2266756125877aebd5 + languageName: node + linkType: hard + "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" @@ -4440,6 +4651,26 @@ __metadata: languageName: node linkType: hard +"form-data@npm:4.0.4": + version: 4.0.4 + resolution: "form-data@npm:4.0.4" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + hasown: "npm:^2.0.2" + mime-types: "npm:^2.1.12" + checksum: 10c0/373525a9a034b9d57073e55eab79e501a714ffac02e7a9b01be1c820780652b16e4101819785e1e18f8d98f0aee866cc654d660a435c378e16a72f2e7cac9695 + languageName: node + linkType: hard + +"from@npm:^0.1.7": + version: 0.1.7 + resolution: "from@npm:0.1.7" + checksum: 10c0/3aab5aea8fe8e1f12a5dee7f390d46a93431ce691b6222dcd5701c5d34378e51ca59b44967da1105a0f90fcdf5d7629d963d51e7ccd79827d19693bdcfb688d4 + languageName: node + linkType: hard + "fs-minipass@npm:^3.0.0": version: 3.0.3 resolution: "fs-minipass@npm:3.0.3" @@ -4482,6 +4713,13 @@ __metadata: languageName: node linkType: hard +"generator-function@npm:^2.0.0": + version: 2.0.1 + resolution: "generator-function@npm:2.0.1" + checksum: 10c0/8a9f59df0f01cfefafdb3b451b80555e5cf6d76487095db91ac461a0e682e4ff7a9dbce15f4ecec191e53586d59eece01949e05a4b4492879600bbbe8e28d6b8 + languageName: node + linkType: hard + "gensequence@npm:^8.0.8": version: 8.0.8 resolution: "gensequence@npm:8.0.8" @@ -4510,6 +4748,44 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.6": + version: 1.3.1 + resolution: "get-intrinsic@npm:1.3.1" + dependencies: + async-function: "npm:^1.0.0" + async-generator-function: "npm:^1.0.0" + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + generator-function: "npm:^2.0.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d + languageName: node + linkType: hard + +"get-own-enumerable-property-symbols@npm:^3.0.0": + version: 3.0.2 + resolution: "get-own-enumerable-property-symbols@npm:3.0.2" + checksum: 10c0/103999855f3d1718c631472437161d76962cbddcd95cc642a34c07bfb661ed41b6c09a9c669ccdff89ee965beb7126b80eec7b2101e20e31e9cc6c4725305e10 + languageName: node + linkType: hard + +"get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c + languageName: node + linkType: hard + "get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -4630,6 +4906,13 @@ __metadata: languageName: node linkType: hard +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead + languageName: node + linkType: hard + "graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -4654,6 +4937,13 @@ __metadata: languageName: node linkType: hard +"har-validator-compiled@npm:^1.0.0": + version: 1.0.0 + resolution: "har-validator-compiled@npm:1.0.0" + checksum: 10c0/d317c2c644b558f00a29eef7176297ab029224805855162fd8c95f897402f749e4acce549de828cc738cc1c741a54944d7928c798dad04f9d5dd074c35c8776f + languageName: node + linkType: hard + "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -4661,6 +4951,22 @@ __metadata: languageName: node linkType: hard +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c + languageName: node + linkType: hard + "hasown@npm:^2.0.0": version: 2.0.2 resolution: "hasown@npm:2.0.2" @@ -4670,6 +4976,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.2": + version: 2.0.3 + resolution: "hasown@npm:2.0.3" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/f5eb28c3fd0d3e4facd821c1eeee3836c37b70ab0b0fc532e8a39976e18fef43652415dadc52f8c7a5ff6d5ac93b7bef128789aa6f90f4e9b9a9083dce74ab38 + languageName: node + linkType: hard + "hast-util-embedded@npm:^3.0.0": version: 3.0.0 resolution: "hast-util-embedded@npm:3.0.0" @@ -5034,6 +5349,22 @@ __metadata: languageName: node linkType: hard +"httpsnippet@npm:^3.0.10": + version: 3.0.10 + resolution: "httpsnippet@npm:3.0.10" + dependencies: + chalk: "npm:^4.1.2" + event-stream: "npm:4.0.1" + form-data: "npm:4.0.4" + har-validator-compiled: "npm:^1.0.0" + stringify-object: "npm:3.3.0" + yargs: "npm:^17.4.0" + bin: + httpsnippet: bin/httpsnippet + checksum: 10c0/ab9c7caeaa65249917cff098a47366bfc265de4d546f20c82ae104083923a442331cd3d1d2644a4797d1f196dba5139a0ad3708891a4827fd87ba42972746f6b + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -5273,6 +5604,13 @@ __metadata: languageName: node linkType: hard +"is-obj@npm:^1.0.1": + version: 1.0.1 + resolution: "is-obj@npm:1.0.1" + checksum: 10c0/5003acba0af7aa47dfe0760e545a89bbac89af37c12092c3efadc755372cdaec034f130e7a3653a59eb3c1843cfc72ca71eaf1a6c3bafe5a0bab3611a47f9945 + languageName: node + linkType: hard + "is-path-inside@npm:^4.0.0": version: 4.0.0 resolution: "is-path-inside@npm:4.0.0" @@ -5294,6 +5632,13 @@ __metadata: languageName: node linkType: hard +"is-regexp@npm:^1.0.0": + version: 1.0.0 + resolution: "is-regexp@npm:1.0.0" + checksum: 10c0/34cacda1901e00f6e44879378f1d2fa96320ea956c1bec27713130aaf1d44f6e7bd963eed28945bfe37e600cb27df1cf5207302680dad8bdd27b9baff8ecf611 + languageName: node + linkType: hard + "is-safe-filename@npm:^0.1.0": version: 0.1.1 resolution: "is-safe-filename@npm:0.1.1" @@ -5399,7 +5744,7 @@ __metadata: languageName: node linkType: hard -"jsonpointer@npm:5.0.1": +"jsonpointer@npm:5.0.1, jsonpointer@npm:^5.0.0": version: 5.0.1 resolution: "jsonpointer@npm:5.0.1" checksum: 10c0/89929e58b400fcb96928c0504fcf4fc3f919d81e9543ceb055df125538470ee25290bb4984251e172e6ef8fcc55761eb998c118da763a82051ad89d4cb073fe7 @@ -5431,6 +5776,13 @@ __metadata: languageName: node linkType: hard +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 10c0/cd778ba3fbab0f4d0500b7e87d1f6e1f041507c56fdcd47e8256a3012c98aaee371d4c15e0a76e0386107af2d42e2b7466160a2d80688aaa03e66e49949f42df + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -5584,6 +5936,13 @@ __metadata: languageName: node linkType: hard +"map-stream@npm:0.0.7": + version: 0.0.7 + resolution: "map-stream@npm:0.0.7" + checksum: 10c0/77da244656dad5013bd147b0eef6f0343a212f14761332b97364fe348d4d70f0b8a0903457d6fc88772ec7c3d4d048b24f8db3aa5c0f77a8ce8bf2391473b8ec + languageName: node + linkType: hard + "markdown-extensions@npm:^2.0.0": version: 2.0.0 resolution: "markdown-extensions@npm:2.0.0" @@ -5679,6 +6038,13 @@ __metadata: languageName: node linkType: hard +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f + languageName: node + linkType: hard + "mdast-util-definitions@npm:^6.0.0": version: 6.0.0 resolution: "mdast-util-definitions@npm:6.0.0" @@ -6464,6 +6830,13 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + "mime-db@npm:>= 1.43.0 < 2": version: 1.54.0 resolution: "mime-db@npm:1.54.0" @@ -6487,6 +6860,15 @@ __metadata: languageName: node linkType: hard +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + "mime@npm:^4.0.0": version: 4.1.0 resolution: "mime@npm:4.1.0" @@ -7186,6 +7568,15 @@ __metadata: languageName: node linkType: hard +"pause-stream@npm:^0.0.11": + version: 0.0.11 + resolution: "pause-stream@npm:0.0.11" + dependencies: + through: "npm:~2.3" + checksum: 10c0/86f12c64cdaaa8e45ebaca4e39a478e1442db8b4beabc280b545bfaf79c0e2f33c51efb554aace5c069cc441c7b924ba484837b345eaa4ba6fc940d62f826802 + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -8363,6 +8754,15 @@ __metadata: languageName: node linkType: hard +"split@npm:^1.0.1": + version: 1.0.1 + resolution: "split@npm:1.0.1" + dependencies: + through: "npm:2" + checksum: 10c0/7f489e7ed5ff8a2e43295f30a5197ffcb2d6202c9cf99357f9690d645b19c812bccf0be3ff336fea5054cda17ac96b91d67147d95dbfc31fbb5804c61962af85 + languageName: node + linkType: hard + "srcset@npm:^5.0.0": version: 5.0.3 resolution: "srcset@npm:5.0.3" @@ -8379,6 +8779,32 @@ __metadata: languageName: node linkType: hard +"starlight-openapi@npm:^0.25.0": + version: 0.25.0 + resolution: "starlight-openapi@npm:0.25.0" + dependencies: + "@readme/openapi-parser": "npm:^4.1.2" + github-slugger: "npm:^2.0.0" + httpsnippet: "npm:^3.0.10" + url-template: "npm:^3.1.1" + peerDependencies: + "@astrojs/markdown-remark": ">=7.0.0" + "@astrojs/starlight": ">=0.38.0" + astro: ">=6.0.0" + checksum: 10c0/e2f00ffc1cd45e1414e31a4fa40e3291ba8904dba8e8c456d3634b2565c7699149079211fff79cce878079b6d5c5fc5f378c1a5b3f4561e45f17f26b88298923 + languageName: node + linkType: hard + +"stream-combiner@npm:^0.2.2": + version: 0.2.2 + resolution: "stream-combiner@npm:0.2.2" + dependencies: + duplexer: "npm:~0.1.1" + through: "npm:~2.3.4" + checksum: 10c0/b5d2782fbfa9251c88e01af1b1f54bc183673a776989dce2842b345be7fc3ce7eb2eade363b3c198ba0e5153a20a96e0014d0d0e884153f885d7ee919f22b639 + languageName: node + linkType: hard + "stream-replace-string@npm:^2.0.0": version: 2.0.0 resolution: "stream-replace-string@npm:2.0.0" @@ -8467,6 +8893,17 @@ __metadata: languageName: node linkType: hard +"stringify-object@npm:3.3.0": + version: 3.3.0 + resolution: "stringify-object@npm:3.3.0" + dependencies: + get-own-enumerable-property-symbols: "npm:^3.0.0" + is-obj: "npm:^1.0.1" + is-regexp: "npm:^1.0.0" + checksum: 10c0/ba8078f84128979ee24b3de9a083489cbd3c62cb8572a061b47d4d82601a8ae4b4d86fa8c54dd955593da56bb7c16a6de51c27221fdc6b7139bb4f29d815f35b + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -8612,6 +9049,13 @@ __metadata: languageName: node linkType: hard +"through@npm:2, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.4": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + "tiny-inflate@npm:^1.0.3": version: 1.0.3 resolution: "tiny-inflate@npm:1.0.3" @@ -9041,6 +9485,13 @@ __metadata: languageName: node linkType: hard +"url-template@npm:^3.1.1": + version: 3.1.1 + resolution: "url-template@npm:3.1.1" + checksum: 10c0/0947f4978665ced04bb0fe456f8a60ca4e1db283ce36da15193ee52c4a5461633dc9b5116ef8cf34bae4a31285ac6e7079f309badf211fe8bd1428d6ac56d28a + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -9371,7 +9822,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.7.2": +"yargs@npm:^17.4.0, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: From 8793247c6677688d13eb857f51990425282bf129 Mon Sep 17 00:00:00 2001 From: Laura Langdon <48335772+LauraLangdon@users.noreply.github.com> Date: Wed, 29 Apr 2026 11:48:06 -0700 Subject: [PATCH 2/2] docs: document API reference workflow in README --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index af1837e..08f8a66 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Public documentation for [Distribute Aid](https://distributeaid.org), built with - [Astro](https://astro.build/) - Web framework - [Starlight](https://starlight.astro.build/) - Documentation theme for Astro +- [starlight-openapi](https://github.com/HiDeoo/starlight-openapi) - API reference docs from OpenAPI specs - [Yarn](https://yarnpkg.com/) - Package manager ## Setup @@ -14,7 +15,7 @@ Public documentation for [Distribute Aid](https://distributeaid.org), built with You'll need the following installed on your machine: -- [Node.js](https://nodejs.org/) version >=20.0.0 <=24.11.0 +- [Node.js](https://nodejs.org/) version >=22.12.0 <=24.11.0 - [Corepack](https://nodejs.org/api/corepack.html) - Ships with Node.js but needs to be enabled ### Enable Corepack @@ -78,6 +79,19 @@ This project uses several tools to maintain code quality. They run automatically - [linkinator](https://github.com/JustinBeckwith/linkinator) - Broken link checker - [pa11y-ci](https://github.com/pa11y/pa11y-ci) - Accessibility testing (WCAG2AA via axe-core) +## API Reference + +The API reference docs are auto-generated from an [OpenAPI spec](./schemas/aggregated-public-information.json) produced by the [aggregated-public-information](https://github.com/distributeaid/aggregated-public-information) Strapi backend. + +To regenerate the spec after API changes: + +```sh +cd path/to/aggregated-public-information +yarn strapi openapi generate --output path/to/docs/schemas/aggregated-public-information.json +``` + +This requires the aggregated-public-information repo to be set up locally with dependencies installed and a `.env` file configured (see that repo's README). + ## Contributing See [CONTRIBUTING.md](./src/content/docs/how-to-DA/CONTRIBUTING.md) for guidelines on how to contribute. Bug reports and feature requests are welcome as GitHub issues.