diff --git a/openapi.yaml b/openapi.yaml index 470815da..d2994a36 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -629,6 +629,218 @@ paths: $ref: '#/components/schemas/ForbiddenResponseDto' tags: - Site + '/v0/sites/{siteId}/collections': + post: + operationId: CollectionController_create_v0 + summary: Create Collection + description: Create a collection for a site. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCollectionBodyDto' + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCollectionResponseDto' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Collection + get: + operationId: CollectionController_list_v0 + summary: List Collections + description: List collections for a site. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + - name: parentId + in: query + required: false + schema: + type: string + format: uuid + - name: pageTypeId + in: query + required: false + schema: + type: string + format: uuid + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ListCollectionsResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Collection + '/v0/sites/{siteId}/collections/{collectionId}': + patch: + operationId: CollectionController_update_v0 + summary: Update Collection + description: Rename or move a collection. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + - name: collectionId + in: path + required: true + schema: + type: string + format: uuid + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateCollectionBodyDto' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateCollectionResponseDto' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Collection + delete: + operationId: CollectionController_delete_v0 + summary: Delete Collection + description: Soft-delete a collection and all its descendant pages. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + - name: collectionId + in: path + required: true + schema: + type: string + format: uuid + responses: + '204': + description: '' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Collection + get: + operationId: CollectionController_get_v0 + summary: Get Collection + description: Get a collection by ID. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + - name: collectionId + in: path + required: true + schema: + type: string + format: uuid + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollectionResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Collection '/v1/sites/{siteId}/pages': post: operationId: PageController_create_v1 @@ -981,6 +1193,29 @@ paths: schema: type: string format: uuid + - name: collectionId + in: query + description: Filter pages by collection ID. + required: false + schema: + type: string + format: uuid + - name: pageTypeId + in: query + description: Filter pages by page type ID. + required: false + schema: + type: string + format: uuid + - name: untyped + in: query + description: 'When true, returns only pages with no page type.' + required: false + schema: + type: string + enum: + - 'true' + - 'false' - name: limit in: query description: 'Maximum number of pages to return. Defaults to 20, maximum is 100.' @@ -1253,22 +1488,237 @@ paths: schema: $ref: '#/components/schemas/NotFoundResponseDto' tags: - - Locale + - Locale + patch: + operationId: SiteLocaleController_updateV2_v2 + summary: Update Locale + description: Updates an existing locale. + parameters: + - name: localeIdOrCode + in: path + description: The locale ID or locale code. + required: true + schema: + type: string + - name: siteId + in: query + description: The site ID required when using a locale code instead of a locale ID. + required: false + schema: + type: string + format: uuid + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSiteLocaleV2RequestBodyDto' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSiteLocaleV2ResponseBodyDto' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '409': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponseDto' + tags: + - Locale + get: + operationId: SiteLocaleController_getV2_v2 + summary: Get Locale + description: Returns a locale by its ID or locale code. + parameters: + - name: localeIdOrCode + in: path + description: The locale ID or locale code. + required: true + schema: + type: string + - name: siteId + in: query + description: The site ID required when using a locale code instead of a locale ID. + required: false + schema: + type: string + format: uuid + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ReadSiteLocaleV2ResponseBodyDto' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + tags: + - Locale + '/v2/locales/{localeIdOrCode}/restore': + post: + operationId: SiteLocaleController_restoreV2_v2 + summary: Restore Locale + description: Restores a previously deleted locale. + parameters: + - name: localeIdOrCode + in: path + description: The locale ID or locale code. + required: true + schema: + type: string + - name: siteId + in: query + description: The site ID required when using a locale code instead of a locale ID. + required: false + schema: + type: string + format: uuid + responses: + '200': + description: Locale successfully restored. + content: + application/json: + schema: + $ref: '#/components/schemas/RestoreSiteLocaleV2ResponseBodyDto' + '400': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + '409': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ConflictResponseDto' + tags: + - Locale + '/v0/sites/{siteId}/page-types': + post: + operationId: PageTypeController_create_v0 + summary: Create Page Type + description: Create a page type for a site. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePageTypeBodyDto' + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePageTypeResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Page Type + get: + operationId: PageTypeController_list_v0 + summary: List Page Types + description: List page types for a site. + parameters: + - name: siteId + in: path + required: true + schema: + type: string + format: uuid + responses: + '200': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetPageTypeResponseDto' + '403': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundResponseDto' + tags: + - Page Type + '/v0/sites/{siteId}/page-types/{pageTypeId}': patch: - operationId: SiteLocaleController_updateV2_v2 - summary: Update Locale - description: Updates an existing locale. + operationId: PageTypeController_update_v0 + summary: Update Page Type + description: Update a page type by ID. parameters: - - name: localeIdOrCode + - name: siteId in: path - description: The locale ID or locale code. required: true schema: type: string - - name: siteId - in: query - description: The site ID required when using a locale code instead of a locale ID. - required: false + format: uuid + - name: pageTypeId + in: path + required: true schema: type: string format: uuid @@ -1277,105 +1727,92 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UpdateSiteLocaleV2RequestBodyDto' + $ref: '#/components/schemas/UpdatePageTypeBodyDto' responses: '200': description: '' content: application/json: schema: - $ref: '#/components/schemas/UpdateSiteLocaleV2ResponseBodyDto' - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/BadRequestResponseDto' + $ref: '#/components/schemas/UpdatePageTypeResponseDto' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ForbiddenResponseDto' - '409': + '404': description: '' content: application/json: schema: - $ref: '#/components/schemas/ConflictResponseDto' + $ref: '#/components/schemas/NotFoundResponseDto' tags: - - Locale - get: - operationId: SiteLocaleController_getV2_v2 - summary: Get Locale - description: Returns a locale by its ID or locale code. + - Page Type + delete: + operationId: PageTypeController_delete_v0 + summary: Delete Page Type + description: Delete a page type by ID. parameters: - - name: localeIdOrCode + - name: siteId in: path - description: The locale ID or locale code. required: true schema: type: string - - name: siteId - in: query - description: The site ID required when using a locale code instead of a locale ID. - required: false + format: uuid + - name: pageTypeId + in: path + required: true schema: type: string format: uuid responses: - '200': + '204': + description: '' + '403': description: '' content: application/json: schema: - $ref: '#/components/schemas/ReadSiteLocaleV2ResponseBodyDto' - '400': + $ref: '#/components/schemas/ForbiddenResponseDto' + '404': description: '' content: application/json: schema: - $ref: '#/components/schemas/BadRequestResponseDto' - '403': + $ref: '#/components/schemas/NotFoundResponseDto' + '409': description: '' content: application/json: schema: - $ref: '#/components/schemas/ForbiddenResponseDto' + $ref: '#/components/schemas/ConflictResponseDto' tags: - - Locale - '/v2/locales/{localeIdOrCode}/restore': - post: - operationId: SiteLocaleController_restoreV2_v2 - summary: Restore Locale - description: Restores a previously deleted locale. + - Page Type + get: + operationId: PageTypeController_get_v0 + summary: Get Page Type + description: Get a page type by ID. parameters: - - name: localeIdOrCode + - name: siteId in: path - description: The locale ID or locale code. required: true schema: type: string - - name: siteId - in: query - description: The site ID required when using a locale code instead of a locale ID. - required: false + format: uuid + - name: pageTypeId + in: path + required: true schema: type: string format: uuid responses: '200': - description: Locale successfully restored. - content: - application/json: - schema: - $ref: '#/components/schemas/RestoreSiteLocaleV2ResponseBodyDto' - '400': description: '' content: application/json: schema: - $ref: '#/components/schemas/BadRequestResponseDto' + $ref: '#/components/schemas/GetPageTypeResponseDto' '403': description: '' content: @@ -1388,14 +1825,8 @@ paths: application/json: schema: $ref: '#/components/schemas/NotFoundResponseDto' - '409': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ConflictResponseDto' tags: - - Locale + - Page Type '/v1/sites/{siteId}/routes': get: operationId: SiteRouteController_list_v1 @@ -2077,11 +2508,15 @@ components: apiKey: type: string format: uuid + collectionId: + type: string + format: uuid required: - id - name - hostUrl - apiKey + - collectionId CreateSiteV2RequestBodyDto: type: object properties: @@ -2148,6 +2583,12 @@ components: - fr-FR - ar-EG - ja-JP + localeManagementMode: + description: Controls whether locales are managed internally via the builder or externally via API. + type: string + enum: + - internal + - external required: - object - id @@ -2155,6 +2596,7 @@ components: - hostOrigin - publicApiKey - defaultLocale + - localeManagementMode BadRequestResponseDto: type: object properties: @@ -2208,11 +2650,15 @@ components: apiKey: type: string format: uuid + collectionId: + type: string + format: uuid required: - id - name - hostUrl - apiKey + - collectionId ReadSiteV2ResponseBodyDto: type: object properties: @@ -2249,6 +2695,12 @@ components: - fr-FR - ar-EG - ja-JP + localeManagementMode: + description: Controls whether locales are managed internally via the builder or externally via API. + type: string + enum: + - internal + - external required: - object - id @@ -2256,6 +2708,7 @@ components: - hostOrigin - publicApiKey - defaultLocale + - localeManagementMode UpdateSiteV1RequestBodyDto: type: object properties: @@ -2287,11 +2740,15 @@ components: apiKey: type: string format: uuid + collectionId: + type: string + format: uuid required: - id - name - hostUrl - apiKey + - collectionId UpdateSiteV2RequestBodyDto: type: object properties: @@ -2304,6 +2761,16 @@ components: type: string format: uri example: 'https://hearthfurniture.com' + defaultLocale: + description: The primary locale of this site. + type: string + example: en-US + examples: + - en + - es + - fr-FR + - ar-EG + - ja-JP additionalProperties: false UpdateSiteV2ResponseBodyDto: type: object @@ -2341,6 +2808,12 @@ components: - fr-FR - ar-EG - ja-JP + localeManagementMode: + description: Controls whether locales are managed internally via the builder or externally via API. + type: string + enum: + - internal + - external required: - object - id @@ -2348,6 +2821,7 @@ components: - hostOrigin - publicApiKey - defaultLocale + - localeManagementMode ListSiteV1ResponseBodyDto: type: object properties: @@ -2372,11 +2846,15 @@ components: apiKey: type: string format: uuid + collectionId: + type: string + format: uuid required: - id - name - hostUrl - apiKey + - collectionId hasMore: type: boolean required: @@ -2428,6 +2906,12 @@ components: - fr-FR - ar-EG - ja-JP + localeManagementMode: + description: Controls whether locales are managed internally via the builder or externally via API. + type: string + enum: + - internal + - external required: - object - id @@ -2435,100 +2919,310 @@ components: - hostOrigin - publicApiKey - defaultLocale + - localeManagementMode hasMore: description: The flag that indicates whether there are more sites available. type: boolean required: - object - - data - - hasMore - DuplicateSiteV1RequestBodyDto: + - data + - hasMore + DuplicateSiteV1RequestBodyDto: + type: object + properties: + name: + description: The name for the new duplicated site + type: string + example: My Duplicated Site + required: + - name + DuplicateSiteV1ResponseBodyDto: + description: The newly created duplicated site with all content and configuration copied from the original + type: object + properties: + id: + type: string + format: uuid + name: + description: The site name. + type: string + example: Hearth Furniture Company + hostUrl: + description: The host URL of the site. The URL should consist of only the origin. + type: string + format: uri + example: 'https://example.com' + nullable: true + apiKey: + type: string + format: uuid + collectionId: + type: string + format: uuid + required: + - id + - name + - hostUrl + - apiKey + - collectionId + DuplicateSiteV2RequestBodyDto: + type: object + properties: + name: + description: The name for the duplicated site. + type: string + example: Hearth Furniture Duplicate + required: + - name + DuplicateSiteV2ResponseBodyDto: + description: The newly created duplicated site with all content and configuration copied from the original + type: object + properties: + object: + description: The type of the object + type: string + example: site + enum: + - site + id: + type: string + format: uuid + name: + description: The site name. + type: string + example: Hearth Furniture Company + hostOrigin: + description: The public URL where your site is hosted. This is the URL that Makeswift uses to render your site for editing. + type: string + format: uri + example: 'https://hearthfurniture.com' + nullable: true + publicApiKey: + description: The publishable API key that a host can use to get page and component data for rendering your site. + type: string + format: uuid + defaultLocale: + description: The primary locale of this site. + type: string + example: en-US + examples: + - en + - es + - fr-FR + - ar-EG + - ja-JP + localeManagementMode: + description: Controls whether locales are managed internally via the builder or externally via API. + type: string + enum: + - internal + - external + required: + - object + - id + - name + - hostOrigin + - publicApiKey + - defaultLocale + - localeManagementMode + CreateCollectionBodyDto: + type: object + properties: + name: + description: The name of the collection. + type: string + parentId: + description: The parent collection ID. + type: string + format: uuid + pageTypeId: + description: The page type to scope this collection to. + type: string + format: uuid + required: + - name + - parentId + CreateCollectionResponseDto: + type: object + properties: + id: + type: string + format: uuid + name: + description: The name of the collection. + type: string + parentId: + description: The parent collection ID. + type: string + format: uuid + nullable: true + pageTypeId: + description: The page type this collection is scoped to. + type: string + format: uuid + nullable: true + isPageTypeRoot: + description: Whether this is the root collection for its page type. + type: boolean + createdAt: + description: When the collection was created. + type: string + format: date-time + updatedAt: + description: When the collection was last updated. + type: string + format: date-time + required: + - id + - name + - parentId + - pageTypeId + - isPageTypeRoot + - createdAt + - updatedAt + NotFoundResponseDto: + type: object + properties: + object: + type: string + enum: + - error + code: + type: string + enum: + - not_found + message: + type: string + required: + - object + - code + - message + UpdateCollectionBodyDto: type: object properties: name: - description: The name for the new duplicated site + description: The new name of the collection. type: string - example: My Duplicated Site - required: - - name - DuplicateSiteV1ResponseBodyDto: - description: The newly created duplicated site with all content and configuration copied from the original + parentId: + description: Move the collection under this parent. + type: string + format: uuid + UpdateCollectionResponseDto: type: object properties: id: type: string format: uuid name: - description: The site name. + description: The name of the collection. type: string - example: Hearth Furniture Company - hostUrl: - description: The host URL of the site. The URL should consist of only the origin. + parentId: + description: The parent collection ID. type: string - format: uri - example: 'https://example.com' + format: uuid nullable: true - apiKey: + pageTypeId: + description: The page type this collection is scoped to. type: string format: uuid - required: - - id - - name - - hostUrl - - apiKey - DuplicateSiteV2RequestBodyDto: - type: object - properties: - name: - description: The name for the duplicated site. + nullable: true + isPageTypeRoot: + description: Whether this is the root collection for its page type. + type: boolean + createdAt: + description: When the collection was created. type: string - example: Hearth Furniture Duplicate + format: date-time + updatedAt: + description: When the collection was last updated. + type: string + format: date-time required: + - id - name - DuplicateSiteV2ResponseBodyDto: - description: The newly created duplicated site with all content and configuration copied from the original + - parentId + - pageTypeId + - isPageTypeRoot + - createdAt + - updatedAt + ListCollectionsResponseDto: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + name: + description: The name of the collection. + type: string + parentId: + description: The parent collection ID. + type: string + format: uuid + nullable: true + pageTypeId: + description: The page type this collection is scoped to. + type: string + format: uuid + nullable: true + isPageTypeRoot: + description: Whether this is the root collection for its page type. + type: boolean + createdAt: + description: When the collection was created. + type: string + format: date-time + updatedAt: + description: When the collection was last updated. + type: string + format: date-time + required: + - id + - name + - parentId + - pageTypeId + - isPageTypeRoot + - createdAt + - updatedAt + GetCollectionResponseDto: type: object properties: - object: - description: The type of the object - type: string - example: site - enum: - - site id: type: string format: uuid name: - description: The site name. + description: The name of the collection. type: string - example: Hearth Furniture Company - hostOrigin: - description: The public URL where your site is hosted. This is the URL that Makeswift uses to render your site for editing. + parentId: + description: The parent collection ID. type: string - format: uri - example: 'https://hearthfurniture.com' + format: uuid nullable: true - publicApiKey: - description: The publishable API key that a host can use to get page and component data for rendering your site. + pageTypeId: + description: The page type this collection is scoped to. type: string format: uuid - defaultLocale: - description: The primary locale of this site. + nullable: true + isPageTypeRoot: + description: Whether this is the root collection for its page type. + type: boolean + createdAt: + description: When the collection was created. type: string - example: en-US - examples: - - en - - es - - fr-FR - - ar-EG - - ja-JP + format: date-time + updatedAt: + description: When the collection was last updated. + type: string + format: date-time required: - - object - id - name - - hostOrigin - - publicApiKey - - defaultLocale + - parentId + - pageTypeId + - isPageTypeRoot + - createdAt + - updatedAt CreatePageV1RequestBodyDto: type: object properties: @@ -2540,6 +3234,14 @@ components: description: The name of the page type: string nullable: true + pageTypeId: + description: The page type ID for the page. + type: string + format: uuid + collectionId: + description: The collection to place the page in. Defaults to the site root collection. + type: string + format: uuid required: - pathname - name @@ -2557,6 +3259,16 @@ components: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -2592,6 +3304,8 @@ components: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -2740,6 +3454,7 @@ components: isOnline: description: The flag that indicates whether the page is online. type: boolean + additionalProperties: false UpdatePageV6ResponseBodyDto: type: object properties: @@ -2861,6 +3576,10 @@ components: isOnline: description: Whether the page is online or offline type: boolean + collectionId: + description: The collection to move the page to. + type: string + format: uuid UpdatePageV1ResponseBodyDto: type: object properties: @@ -2875,6 +3594,16 @@ components: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -2910,6 +3639,8 @@ components: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -2932,6 +3663,16 @@ components: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -2967,6 +3708,8 @@ components: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -2990,10 +3733,20 @@ components: type: string isOnline: type: boolean + pageTypeId: + type: string + format: uuid + nullable: true + collectionId: + type: string + format: uuid + nullable: true required: - id - pathname - isOnline + - pageTypeId + - collectionId hasMore: description: Whether there are more pages available for pagination. type: boolean @@ -3334,23 +4087,6 @@ components: - locale - domain - isDefault - NotFoundResponseDto: - type: object - properties: - object: - type: string - enum: - - error - code: - type: string - enum: - - not_found - message: - type: string - required: - - object - - code - - message ConflictResponseDto: type: object properties: @@ -3475,6 +4211,7 @@ components: type: string format: uri example: 'https://hearthfurniture.com.mx' + nullable: true UpdateSiteLocaleV1ResponseBodyDto: type: object properties: @@ -3512,6 +4249,8 @@ components: type: string format: uri example: 'https://hearthfurniture.com.mx' + nullable: true + additionalProperties: false UpdateSiteLocaleV2ResponseBodyDto: type: object properties: @@ -3635,6 +4374,124 @@ components: - id - locale - domain + CreatePageTypeBodyDto: + type: object + properties: + name: + description: The name of the page type. + type: string + minLength: 1 + isExternal: + description: Whether pages of this type are externally managed. + type: boolean + required: + - name + - isExternal + CreatePageTypeResponseDto: + type: object + properties: + id: + type: string + format: uuid + name: + description: The name of the page type. + type: string + isExternal: + description: Whether pages of this type are externally managed. + type: boolean + rootCollectionId: + description: The ID of the root collection for this page type. + type: string + format: uuid + nullable: true + createdAt: + description: When the page type was created. + type: string + format: date-time + updatedAt: + description: When the page type was last updated. + type: string + format: date-time + required: + - id + - name + - isExternal + - rootCollectionId + - createdAt + - updatedAt + UpdatePageTypeBodyDto: + type: object + properties: + name: + description: The name of the page type. + type: string + minLength: 1 + required: + - name + UpdatePageTypeResponseDto: + type: object + properties: + id: + type: string + format: uuid + name: + description: The name of the page type. + type: string + isExternal: + description: Whether pages of this type are externally managed. + type: boolean + rootCollectionId: + description: The ID of the root collection for this page type. + type: string + format: uuid + nullable: true + createdAt: + description: When the page type was created. + type: string + format: date-time + updatedAt: + description: When the page type was last updated. + type: string + format: date-time + required: + - id + - name + - isExternal + - rootCollectionId + - createdAt + - updatedAt + GetPageTypeResponseDto: + type: object + properties: + id: + type: string + format: uuid + name: + description: The name of the page type. + type: string + isExternal: + description: Whether pages of this type are externally managed. + type: boolean + rootCollectionId: + description: The ID of the root collection for this page type. + type: string + format: uuid + nullable: true + createdAt: + description: When the page type was created. + type: string + format: date-time + updatedAt: + description: When the page type was last updated. + type: string + format: date-time + required: + - id + - name + - isExternal + - rootCollectionId + - createdAt + - updatedAt ListSiteRouteV1ResponseBodyDto: type: object properties: @@ -3817,6 +4674,7 @@ components: description: The route pathname. type: string example: /furniture + additionalProperties: false UpdateSiteRouteV2ResponseBodyDto: description: The route. type: object @@ -3996,6 +4854,10 @@ tags: description: '' - name: Page description: '' + - name: Page Type + description: '' + - name: Collection + description: '' - name: Webhook Management description: '' security: @@ -4028,6 +4890,16 @@ webhooks: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -4063,6 +4935,8 @@ webhooks: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -4104,6 +4978,16 @@ webhooks: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -4139,6 +5023,8 @@ webhooks: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -4180,6 +5066,16 @@ webhooks: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -4215,6 +5111,8 @@ webhooks: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -4256,6 +5154,16 @@ webhooks: description: The name of the page type: string example: About + pageTypeId: + description: The page type ID of the page. + type: string + format: uuid + nullable: true + collectionId: + description: The collection ID of the page. + type: string + format: uuid + nullable: true seoCanonicalUrl: description: The canonical URL of the page type: string @@ -4291,6 +5199,8 @@ webhooks: - id - pathname - name + - pageTypeId + - collectionId - seoCanonicalUrl - seoIsIndexingBlocked - seoSitemapPriority @@ -4339,6 +5249,117 @@ webhooks: - to at: type: number + unstable_diff: + type: object + nullable: true + properties: + components: + items: + type: object + properties: + id: + type: string + locale: + type: string + nullable: true + changeType: + type: string + enum: + - created + - updated + - deleted + required: + - id + - locale + - changeType + type: array + pages: + type: array + items: + type: object + properties: + pageId: + type: string + format: uuid + locale: + type: string + nullable: true + changeType: + type: string + enum: + - created + - updated + - deleted + pathname: + type: string + previousPathname: + type: string + required: + - pageId + - locale + - changeType + - pathname + globalElements: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + locale: + type: string + nullable: true + changeType: + type: string + enum: + - created + - updated + - deleted + required: + - id + - locale + - changeType + swatches: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + changeType: + type: string + enum: + - created + - updated + - deleted + required: + - id + - changeType + typographies: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + changeType: + type: string + enum: + - created + - updated + - deleted + required: + - id + - changeType + required: + - components + - pages + - globalElements + - swatches + - typographies required: - siteId - publish