openapi: 3.2.0 info: title: Huma Platform CMS API version: 1.0.0 description: Huma Platform servers: - url: https://workspace-gcp-uk.api.huma.com/api/integration/v1 description: Base URL declared by the provider in apis.yml (roadmap#122). tags: - name: CMS paths: /api/extensions/v1/cms/{collection}: post: operationId: api_extensions_v1_cms_create_[create_content] summary: Create Content parameters: - in: path name: collection schema: type: string required: true tags: - CMS requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateContentRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateContentRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/CreateContentRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateContentResponseObjectDRF' description: '' /api/extensions/v1/cms/{collection}/{content_id}: get: operationId: api_extensions_v1_cms_retrieve_[retrieve_content] summary: Retrieve Content parameters: - in: path name: authzUser schema: type: string required: true - in: path name: collection schema: type: string required: true - in: path name: contentId schema: type: string required: true - in: path name: content_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CMSContentDTODRF' description: '' put: operationId: api_extensions_v1_cms_update_[update_content] summary: Update Content parameters: - in: path name: collection schema: type: string required: true - in: path name: content_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - CMS requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContentRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateContentRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/UpdateContentRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateContentRequestObjectDRF' description: '' delete: operationId: api_extensions_v1_cms_destroy_[delete_content] summary: Delete Content parameters: - in: path name: authzUser schema: type: string required: true - in: path name: collection schema: type: string required: true - in: path name: contentId schema: type: string required: true - in: path name: content_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '204': description: No response body /api/extensions/v1/cms/{collection}/{content_id}/{version}: get: operationId: api_extensions_v1_cms_retrieve_[retrieve_content_version] summary: Retrieve Content Version parameters: - in: path name: authzUser schema: type: string required: true - in: path name: collection schema: type: string required: true - in: path name: contentId schema: type: string required: true - in: path name: content_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: version schema: type: integer required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CMSContentDTODRF' description: '' /api/extensions/v1/cms/{collection}/{content_id}/publish: post: operationId: api_extensions_v1_cms_publish_create_[publish_draft] summary: Publish Draft parameters: - in: path name: authzUser schema: type: string required: true - in: path name: collection schema: type: string required: true - in: path name: contentId schema: type: string required: true - in: path name: content_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: publisherId schema: type: string required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' /api/extensions/v1/cms/{collection}/schema: get: operationId: api_extensions_v1_cms_schema_retrieve_[retrieve_schema] summary: Retrieve Schema parameters: - in: path name: collection schema: type: string required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/RetrieveSchemaResponseDRF' description: '' /api/extensions/v1/cms/{collection}/search: post: operationId: api_extensions_v1_cms_search_create_[search_content] summary: Search Content parameters: - in: path name: collection schema: type: string required: true tags: - CMS requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchContentRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SearchContentRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/SearchContentRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/SearchContentResponseObjectDRF' description: '' /api/extensions/v1/cms/{collection}/tags: get: operationId: api_extensions_v1_cms_tags_retrieve_[retrieve_collection_tags] summary: Retrieve Collection Tags parameters: - in: path name: collection schema: type: string required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/TagsListResponseDRF' description: '' /api/extensions/v1/cms/collections: get: operationId: api_extensions_v1_cms_collections_retrieve_[list_collections] summary: List Collections tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListCollectionsResponseDRF' description: '' /api/extensions/v1/public_cms/{collection}/{content_id}: get: operationId: api_extensions_v1_public_cms_retrieve_[retrieve_content] description: 'Retrieve Public Content. This endpoint allows users to access specific content items within a public CMS collection. The content is identified by its unique ID within the specified collection.' summary: Retrieve Content parameters: - in: path name: authzUser schema: type: string required: true - in: path name: collection schema: type: string required: true - in: path name: contentId schema: type: string required: true - in: path name: content_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - CMS security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': description: No response body /api/extensions/v1/public_cms/{collection}/search: post: operationId: api_extensions_v1_public_cms_search_create_[search_content] description: 'Search Public Content. Search for content within a public CMS collection using various search parameters.' summary: Search Content parameters: - in: path name: collection schema: type: string required: true tags: - CMS requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchContentRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/SearchContentRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/SearchContentRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PublicContentSearchResponseObjectDRF' description: '' components: schemas: PublicContentSearchResponseObjectDRF: type: object properties: total: type: integer limit: type: integer skip: type: integer items: type: array items: type: string SearchContentResponseObjectDRF: type: object properties: total: type: integer limit: type: integer skip: type: integer items: type: array items: $ref: '#/components/schemas/CMSContentDTODRF' ResultIdResponseObjectDRF: type: object properties: id: type: string SearchContentRequestObjectDRF: type: object properties: collection: type: string search: type: string filters: type: object additionalProperties: {} sort: type: array items: $ref: '#/components/schemas/SortFieldDRF' skip: type: integer limit: type: integer unpublished: type: boolean required: - collection SortFieldDRF: type: object properties: field: type: string direction: type: string required: - direction - field UpdateContentRequestObjectDRF: type: object properties: id: type: string status: type: string data: type: object additionalProperties: {} draftData: type: object additionalProperties: {} schema: type: string tags: type: array items: type: string resources: type: array items: type: string owner: type: string editors: type: array items: type: string viewers: type: array items: type: string version: type: integer updateDateTime: type: string format: date-time publishDateTime: type: string format: date-time createDateTime: type: string format: date-time required: - schema - status CreateContentResponseObjectDRF: type: object properties: id: type: string required: - id CreateContentRequestObjectDRF: type: object properties: id: type: string status: type: string data: type: object additionalProperties: {} draftData: type: object additionalProperties: {} schema: type: string tags: type: array items: type: string resources: type: array items: type: string owner: type: string editors: type: array items: type: string viewers: type: array items: type: string version: type: integer updateDateTime: type: string format: date-time publishDateTime: type: string format: date-time createDateTime: type: string format: date-time required: - resources - schema - status CMSContentDTODRF: type: object properties: id: type: string status: type: string data: type: object additionalProperties: {} draftData: type: object additionalProperties: {} schema: type: string tags: type: array items: type: string resources: type: array items: type: string owner: type: string editors: type: array items: type: string viewers: type: array items: type: string version: type: integer updateDateTime: type: string format: date-time publishDateTime: type: string format: date-time createDateTime: type: string format: date-time required: - resources - schema - status ListCollectionsResponseDRF: type: object properties: collections: type: array items: type: string required: - collections TagsListResponseDRF: type: object properties: tags: type: array items: type: string required: - tags RetrieveSchemaResponseDRF: type: object properties: schema: type: object additionalProperties: {} required: - schema securitySchemes: Hawk_Auth: type: apiKey in: header name: Authorization description: 'Hawk MAC authentication. Paste a full Authorization header value. Example: Authorization: Hawk id="userId:clientId", ts="", nonce="", mac=""[, hash=""][, ext=""] Note: Swagger UI cannot generate Hawk headers. Use your client to compute the MAC (e.g., with mohawk), then paste the full value here.' JWT_Auth: type: http scheme: bearer in: header bearerFormat: JWT description: 'Use HTTP Bearer auth with a JWT. Send the token in the Authorization header: Authorization: Bearer The token should contain standard claims plus projectId and clientId in user claims.' jwtAuth: type: http scheme: bearer bearerFormat: JWT