@umbraco-cms/mcp-dev 17.2.0 → 17.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/vsts/work/1/s/dist/chunk-UHEUCBCR.cjs","../src/umb-management-api/api/client.ts","../src/umb-management-api/api/api/umbracoManagementAPI.ts","../src/umb-management-api/api/temporary-file/index.ts","../src/umb-management-api/umbraco-management-client.ts","../src/umb-management-api/api/umbracoManagementAPI.zod.ts","../src/umb-management-api/tools/culture/get-cultures.ts","../src/umb-management-api/tools/culture/index.ts","../src/umb-management-api/tools/data-type/post/create-data-type.ts","../src/umb-management-api/tools/data-type/delete/delete-data-type.ts","../src/umb-management-api/tools/data-type/get/find-data-type.ts","../src/umb-management-api/tools/data-type/get/get-data-type.ts","../src/umb-management-api/tools/data-type/get/get-data-type-by-id-array.ts","../src/umb-management-api/tools/data-type/get/get-data-type-configuration.ts","../src/umb-management-api/tools/data-type/get/get-data-type-property-editor-template.ts","../src/umb-management-api/tools/data-type/post/property-editor-templates.ts","../src/umb-management-api/tools/data-type/put/update-data-type.ts","../src/umb-management-api/tools/data-type/post/copy-data-type.ts","../src/umb-management-api/tools/data-type/get/is-used-data-type.ts","../src/umb-management-api/tools/data-type/put/move-data-type.ts","../src/umb-management-api/tools/data-type/get/get-references-data-type.ts","../src/umb-management-api/tools/data-type/folders/post/create-folder.ts","../src/umb-management-api/tools/data-type/folders/delete/delete-folder.ts","../src/umb-management-api/tools/data-type/folders/get/get-folder.ts","../src/umb-management-api/tools/data-type/items/get/get-search.ts","../src/umb-management-api/tools/data-type/folders/put/update-folder.ts","../src/umb-management-api/tools/data-type/items/get/get-root.ts","../src/umb-management-api/tools/data-type/items/get/get-children.ts","../src/umb-management-api/tools/data-type/items/get/get-siblings.ts","../src/umb-management-api/tools/data-type/items/get/get-ancestors.ts","../src/umb-management-api/tools/data-type/items/get/get-all.ts","../src/auth/umbraco-auth-policies.ts","../src/umb-management-api/tools/data-type/index.ts","../src/umb-management-api/tools/dictionary/delete/delete-dictionary-item.ts","../src/umb-management-api/tools/dictionary/get/find-dictionary-item.ts","../src/umb-management-api/tools/dictionary/get/get-dictionary-item.ts","../src/umb-management-api/tools/dictionary/get/get-dictionary-by-id-array.ts","../src/umb-management-api/tools/dictionary/post/create-dictionary-item.ts","../src/umb-management-api/tools/dictionary/put/update-dictionary-item.ts","../src/umb-management-api/tools/dictionary/put/move-dictionary-item.ts","../src/umb-management-api/tools/dictionary/items/get/get-root.ts","../src/umb-management-api/tools/dictionary/items/get/get-children.ts","../src/umb-management-api/tools/dictionary/items/get/get-ancestors.ts","../src/umb-management-api/tools/dictionary/index.ts","../src/umb-management-api/tools/document-blueprint/get/get-blueprint.ts","../src/umb-management-api/tools/document-blueprint/delete/delete-blueprint.ts","../src/umb-management-api/tools/document-blueprint/put/update-blueprint.ts","../src/umb-management-api/tools/document-blueprint/post/create-blueprint.ts","../src/umb-management-api/tools/document-blueprint/get/get-ancestors.ts","../src/umb-management-api/tools/document-blueprint/get/get-children.ts","../src/umb-management-api/tools/document-blueprint/get/get-root.ts","../src/umb-management-api/tools/document-blueprint/get/get-siblings.ts","../src/umb-management-api/tools/document-blueprint/get/get-document-blueprint-scaffold.ts","../src/umb-management-api/tools/document-blueprint/post/create-document-blueprint-from-document.ts","../src/umb-management-api/tools/document-blueprint/get/get-document-blueprint-by-id-array.ts","../src/umb-management-api/tools/document-blueprint/put/move-blueprint.ts","../src/umb-management-api/tools/document-blueprint/folders/post/create-folder.ts","../src/umb-management-api/tools/document-blueprint/folders/get/get-folder.ts","../src/umb-management-api/tools/document-blueprint/folders/put/update-folder.ts","../src/umb-management-api/tools/document-blueprint/folders/delete/delete-folder.ts","../src/umb-management-api/tools/document-blueprint/index.ts","../src/umb-management-api/tools/document/constants.ts","../src/umb-management-api/tools/document/delete/delete-document.ts","../src/umb-management-api/tools/document/delete/delete-from-recycle-bin.ts","../src/umb-management-api/tools/document/delete/delete-document-public-access.ts","../src/umb-management-api/tools/document/delete/delete-recycle-bin-item.ts","../src/umb-management-api/tools/document/get/get-document-by-id.ts","../src/umb-management-api/tools/document/get/get-document-domains.ts","../src/umb-management-api/tools/document/get/get-document-notifications.ts","../src/umb-management-api/tools/document/get/get-document-public-access.ts","../src/umb-management-api/tools/document/get/get-document-audit-log.ts","../src/umb-management-api/tools/document/get/get-document-publish.ts","../src/umb-management-api/tools/document/get/get-document-configuration.ts","../src/umb-management-api/tools/document/get/get-document-urls.ts","../src/umb-management-api/tools/document/get/get-document-property-value-template.ts","../src/umb-management-api/tools/document/post/property-value-templates.ts","../src/umb-management-api/tools/document/get/search-document.ts","../src/umb-management-api/tools/document/get/get-collection-document-by-id.ts","../src/umb-management-api/tools/document/get/get-item-document.ts","../src/umb-management-api/tools/document/get/get-document-are-referenced.ts","../src/umb-management-api/tools/document/get/get-document-by-id-referenced-by.ts","../src/umb-management-api/tools/document/get/get-document-by-id-referenced-descendants.ts","../src/umb-management-api/tools/document/get/get-document-available-segment-options.ts","../src/umb-management-api/tools/document/get/get-recycle-bin-document-original-parent.ts","../src/umb-management-api/tools/document/get/get-recycle-bin-document-referenced-by.ts","../src/umb-management-api/tools/document/post/post-document-public-access.ts","../src/umb-management-api/tools/document/post/validate-document.ts","../src/umb-management-api/tools/document/post/copy-document.ts","../src/umb-management-api/tools/document/post/create-document.ts","../src/umb-management-api/tools/document/put/put-document-public-access.ts","../src/umb-management-api/tools/document/put/put-document-domains.ts","../src/umb-management-api/tools/document/put/put-document-notifications.ts","../src/umb-management-api/tools/document/put/publish-document-with-descendants.ts","../src/umb-management-api/tools/document/put/unpublish-document.ts","../src/umb-management-api/tools/document/put/sort-document.ts","../src/umb-management-api/tools/document/put/move-document.ts","../src/umb-management-api/tools/document/put/publish-document.ts","../src/umb-management-api/tools/document/put/empty-recycle-bin.ts","../src/umb-management-api/tools/document/put/restore-from-recycle-bin.ts","../src/umb-management-api/tools/document/put/move-to-recycle-bin.ts","../src/umb-management-api/tools/document/put/update-document.ts","../src/umb-management-api/tools/document/put/update-document-properties.ts","../src/umb-management-api/tools/document/put/helpers/document-type-properties-resolver.ts","../src/umb-management-api/tools/document/put/helpers/property-value-validator.ts","../src/umb-management-api/tools/document/put/helpers/property-matching.ts","../src/umb-management-api/tools/document/put/update-block-property.ts","../src/umb-management-api/tools/document/put/helpers/block-discovery.ts","../src/umb-management-api/tools/document/items/get/get-root.ts","../src/umb-management-api/tools/document/items/get/get-children.ts","../src/umb-management-api/tools/document/items/get/get-ancestors.ts","../src/umb-management-api/tools/document/items/get/get-siblings.ts","../src/umb-management-api/tools/document/items/get/get-recycle-bin-root.ts","../src/umb-management-api/tools/document/items/get/get-recycle-bin-children.ts","../src/umb-management-api/tools/document/items/get/get-recycle-bin-siblings.ts","../src/umb-management-api/tools/document/index.ts","../src/umb-management-api/tools/document-type/post/create-document-type.ts","../src/umb-management-api/tools/document-type/post/helpers/create-container-hierarchy.ts","../src/umb-management-api/tools/document-type/delete/delete-document-type.ts","../src/umb-management-api/tools/document-type/get/get-document-type-by-ids.ts","../src/umb-management-api/tools/document-type/put/update-document-type.ts","../src/umb-management-api/tools/document-type/post/copy-document-type.ts","../src/umb-management-api/tools/document-type/put/move-document-type.ts","../src/umb-management-api/tools/document-type/items/get/get-root.ts","../src/umb-management-api/tools/document-type/items/get/get-children.ts","../src/umb-management-api/tools/document-type/items/get/get-ancestors.ts","../src/umb-management-api/tools/document-type/items/get/get-siblings.ts","../src/umb-management-api/tools/document-type/folders/post/create-folder.ts","../src/umb-management-api/tools/document-type/folders/delete/delete-folder.ts","../src/umb-management-api/tools/document-type/folders/get/get-folder.ts","../src/umb-management-api/tools/document-type/folders/put/update-folder.ts","../src/umb-management-api/tools/document-type/get/get-document-type-blueprint.ts","../src/umb-management-api/tools/document-type/get/get-document-type-composition-references.ts","../src/umb-management-api/tools/document-type/post/get-document-type-available-compositions.ts","../src/umb-management-api/tools/document-type/get/get-document-type-allowed-children.ts","../src/umb-management-api/tools/document-type/get/get-document-type-configuration.ts","../src/umb-management-api/tools/document-type/get/get-document-type-by-id-array.ts","../src/umb-management-api/tools/document-type/templates/get-icons.ts","../src/umb-management-api/tools/document-type/post/create-element-type.ts","../src/umb-management-api/tools/document-type/items/get/get-all.ts","../src/umb-management-api/tools/document-type/index.ts","../src/umb-management-api/tools/document-version/get/get-document-version.ts","../src/umb-management-api/tools/document-version/get/get-document-version-by-id.ts","../src/umb-management-api/tools/document-version/put/update-document-version-prevent-cleanup.ts","../src/umb-management-api/tools/document-version/post/create-document-version-rollback.ts","../src/umb-management-api/tools/document-version/index.ts","../src/umb-management-api/tools/health/get/get-health-check-groups.ts","../src/umb-management-api/tools/health/get/get-health-check-group-by-name.ts","../src/umb-management-api/tools/health/post/run-health-check-group.ts","../src/umb-management-api/tools/health/post/execute-health-check-action.ts","../src/umb-management-api/tools/health/index.ts","../src/umb-management-api/tools/imaging/get/get-imaging-resize-urls.ts","../src/umb-management-api/tools/imaging/index.ts","../src/umb-management-api/tools/indexer/get/get-indexer.ts","../src/umb-management-api/tools/indexer/get/get-indexer-by-index-name.ts","../src/umb-management-api/tools/indexer/post/post-indexer-by-index-name-rebuild.ts","../src/umb-management-api/tools/indexer/index.ts","../src/umb-management-api/tools/language/get/get-language-items.ts","../src/umb-management-api/tools/language/get/get-default-language.ts","../src/umb-management-api/tools/language/get/get-language-by-iso-code.ts","../src/umb-management-api/tools/language/get/get-language.ts","../src/umb-management-api/tools/language/post/create-language.ts","../src/umb-management-api/tools/language/put/update-language.ts","../src/umb-management-api/tools/language/delete/delete-language.ts","../src/umb-management-api/tools/language/index.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-log.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-level.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-saved-search.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-validate-logs-size.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-message-template.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-saved-search-by-name.ts","../src/umb-management-api/tools/log-viewer/get/get-log-viewer-level-count.ts","../src/umb-management-api/tools/log-viewer/post/post-log-viewer-saved-search.ts","../src/umb-management-api/tools/log-viewer/delete/delete-log-viewer-saved-search-by-name.ts","../src/umb-management-api/tools/log-viewer/index.ts","../src/umb-management-api/tools/manifest/get/get-manifest-manifest.ts","../src/umb-management-api/tools/manifest/get/get-manifest-manifest-private.ts","../src/umb-management-api/tools/manifest/get/get-manifest-manifest-public.ts","../src/umb-management-api/tools/manifest/index.ts","../src/umb-management-api/tools/media/post/create-media.ts","../src/umb-management-api/tools/media/post/helpers/media-upload-helpers.ts","../src/umb-management-api/tools/media/post/helpers/validate-file-path.ts","../src/umb-management-api/tools/media/post/create-media-multiple.ts","../src/umb-management-api/tools/media/post/create-media-folder.ts","../src/umb-management-api/tools/media/delete/delete-media.ts","../src/umb-management-api/tools/media/get/get-media-by-id.ts","../src/umb-management-api/tools/media/put/update-media.ts","../src/umb-management-api/tools/media/get/get-media-configuration.ts","../src/umb-management-api/tools/media/get/get-media-urls.ts","../src/umb-management-api/tools/media/post/validate-media.ts","../src/umb-management-api/tools/media/put/validate-media.ts","../src/umb-management-api/tools/media/put/sort-media.ts","../src/umb-management-api/tools/media/get/get-media-by-id-array.ts","../src/umb-management-api/tools/media/put/move-media.ts","../src/umb-management-api/tools/media/items/get/get-ancestors.ts","../src/umb-management-api/tools/media/items/get/get-children.ts","../src/umb-management-api/tools/media/items/get/get-siblings.ts","../src/umb-management-api/tools/media/items/get/get-root.ts","../src/umb-management-api/tools/media/get/get-media-audit-log.ts","../src/umb-management-api/tools/media/items/get/get-recycle-bin-root.ts","../src/umb-management-api/tools/media/items/get/get-recycle-bin-children.ts","../src/umb-management-api/tools/media/items/get/get-recycle-bin-siblings.ts","../src/umb-management-api/tools/media/delete/empty-recycle-bin.ts","../src/umb-management-api/tools/media/put/restore-from-recycle-bin.ts","../src/umb-management-api/tools/media/put/move-to-recycle-bin.ts","../src/umb-management-api/tools/media/delete/delete-from-recycle-bin.ts","../src/umb-management-api/tools/media/delete/delete-recycle-bin-item.ts","../src/umb-management-api/tools/media/get/get-media-are-referenced.ts","../src/umb-management-api/tools/media/get/get-media-by-id-referenced-by.ts","../src/umb-management-api/tools/media/get/get-media-by-id-referenced-descendants.ts","../src/umb-management-api/tools/media/get/get-collection-media.ts","../src/umb-management-api/tools/media/get/get-recycle-bin-media-referenced-by.ts","../src/umb-management-api/tools/media/get/get-recycle-bin-media-original-parent.ts","../src/umb-management-api/tools/media/index.ts","../src/umb-management-api/tools/media-type/get/get-media-type-configuration.ts","../src/umb-management-api/tools/media-type/get/get-media-type-by-id.ts","../src/umb-management-api/tools/media-type/get/get-media-type-by-ids.ts","../src/umb-management-api/tools/media-type/get/get-item-media-type.ts","../src/umb-management-api/tools/media-type/get/get-allowed.ts","../src/umb-management-api/tools/media-type/get/get-media-type-allowed-at-root.ts","../src/umb-management-api/tools/media-type/get/get-media-type-allowed-children.ts","../src/umb-management-api/tools/media-type/get/get-media-type-composition-references.ts","../src/umb-management-api/tools/media-type/items/get/get-root.ts","../src/umb-management-api/tools/media-type/items/get/get-children.ts","../src/umb-management-api/tools/media-type/items/get/get-siblings.ts","../src/umb-management-api/tools/media-type/items/get/get-ancestors.ts","../src/umb-management-api/tools/media-type/items/get/get-media-type-folders.ts","../src/umb-management-api/tools/media-type/folders/get/get-folder.ts","../src/umb-management-api/tools/media-type/folders/post/create-folder.ts","../src/umb-management-api/tools/media-type/folders/delete/delete-folder.ts","../src/umb-management-api/tools/media-type/folders/put/update-folder.ts","../src/umb-management-api/tools/media-type/post/create-media-type.ts","../src/umb-management-api/tools/media-type/post/copy-media-type.ts","../src/umb-management-api/tools/media-type/post/get-media-type-available-compositions.ts","../src/umb-management-api/tools/media-type/put/update-media-type.ts","../src/umb-management-api/tools/media-type/put/move-media-type.ts","../src/umb-management-api/tools/media-type/delete/delete-media-type.ts","../src/umb-management-api/tools/media-type/index.ts","../src/umb-management-api/tools/member/get/get-member.ts","../src/umb-management-api/tools/member/post/create-member.ts","../src/umb-management-api/tools/member/post/validate-member.ts","../src/umb-management-api/tools/member/delete/delete-member.ts","../src/umb-management-api/tools/member/put/update-member.ts","../src/umb-management-api/tools/member/put/validate-member-update.ts","../src/umb-management-api/tools/member/get/find-member.ts","../src/umb-management-api/tools/member/get/get-member-are-referenced.ts","../src/umb-management-api/tools/member/get/get-member-by-id-referenced-by.ts","../src/umb-management-api/tools/member/get/get-member-by-id-referenced-descendants.ts","../src/umb-management-api/tools/member/get/get-item-member-search.ts","../src/umb-management-api/tools/member/index.ts","../src/umb-management-api/tools/member-group/get/get-member-group.ts","../src/umb-management-api/tools/member-group/get/get-member-group-by-id-array.ts","../src/umb-management-api/tools/member-group/get/get-root.ts","../src/umb-management-api/tools/member-group/get/get-all-member-groups.ts","../src/umb-management-api/tools/member-group/post/create-member-group.ts","../src/umb-management-api/tools/member-group/put/update-member-group.ts","../src/umb-management-api/tools/member-group/delete/delete-member-group.ts","../src/umb-management-api/tools/member-group/index.ts","../src/umb-management-api/tools/member-type/post/create-member-type.ts","../src/umb-management-api/tools/member-type/get/get-member-type-by-id-array.ts","../src/umb-management-api/tools/member-type/get/get-member-type-by-id.ts","../src/umb-management-api/tools/member-type/delete/delete-member-type.ts","../src/umb-management-api/tools/member-type/put/update-member-type.ts","../src/umb-management-api/tools/member-type/post/copy-member-type.ts","../src/umb-management-api/tools/member-type/post/get-member-type-available-compositions.ts","../src/umb-management-api/tools/member-type/get/get-member-type-composition-references.ts","../src/umb-management-api/tools/member-type/get/get-member-type-configuration.ts","../src/umb-management-api/tools/member-type/items/get/get-root.ts","../src/umb-management-api/tools/member-type/items/get/get-siblings.ts","../src/umb-management-api/tools/member-type/get/get-item-member-type-search.ts","../src/umb-management-api/tools/member-type/index.ts","../src/umb-management-api/tools/models-builder/get/get-models-builder-dashboard.ts","../src/umb-management-api/tools/models-builder/get/get-models-builder-status.ts","../src/umb-management-api/tools/models-builder/post/post-models-builder-build.ts","../src/umb-management-api/tools/models-builder/index.ts","../src/umb-management-api/tools/partial-view/post/create-partial-view.ts","../src/umb-management-api/tools/partial-view/post/create-partial-view-folder.ts","../src/umb-management-api/tools/partial-view/get/get-partial-view-by-path.ts","../src/umb-management-api/tools/partial-view/get/get-partial-view-folder-by-path.ts","../src/umb-management-api/tools/partial-view/put/update-partial-view.ts","../src/umb-management-api/tools/partial-view/put/rename-partial-view.ts","../src/umb-management-api/tools/partial-view/delete/delete-partial-view.ts","../src/umb-management-api/tools/partial-view/delete/delete-partial-view-folder.ts","../src/umb-management-api/tools/partial-view/get/get-partial-view-snippet.ts","../src/umb-management-api/tools/partial-view/get/get-partial-view-snippet-by-id.ts","../src/umb-management-api/tools/partial-view/items/get/get-ancestors.ts","../src/umb-management-api/tools/partial-view/items/get/get-children.ts","../src/umb-management-api/tools/partial-view/items/get/get-root.ts","../src/umb-management-api/tools/partial-view/items/get/get-search.ts","../src/umb-management-api/tools/partial-view/items/get/get-siblings.ts","../src/umb-management-api/tools/partial-view/index.ts","../src/umb-management-api/tools/property-type/get/get-property-type-is-used.ts","../src/umb-management-api/tools/property-type/index.ts","../src/umb-management-api/tools/redirect/get/get-all-redirects.ts","../src/umb-management-api/tools/redirect/get/get-redirect-by-id.ts","../src/umb-management-api/tools/redirect/delete/delete-redirect.ts","../src/umb-management-api/tools/redirect/get/get-redirect-status.ts","../src/umb-management-api/tools/redirect/post/update-redirect-status.ts","../src/umb-management-api/tools/redirect/index.ts","../src/umb-management-api/tools/relation/get/get-relation-by-relation-type-id.ts","../src/umb-management-api/tools/relation/index.ts","../src/umb-management-api/tools/relation-type/get/get-relation-type.ts","../src/umb-management-api/tools/relation-type/get/get-relation-type-by-id.ts","../src/umb-management-api/tools/relation-type/index.ts","../src/umb-management-api/tools/script/get/get-script-by-path.ts","../src/umb-management-api/tools/script/get/get-script-folder-by-path.ts","../src/umb-management-api/tools/script/get/get-script-items.ts","../src/umb-management-api/tools/script/get/get-script-tree-ancestors.ts","../src/umb-management-api/tools/script/get/get-script-tree-children.ts","../src/umb-management-api/tools/script/get/get-script-tree-root.ts","../src/umb-management-api/tools/script/get/get-script-tree-siblings.ts","../src/umb-management-api/tools/script/post/create-script.ts","../src/umb-management-api/tools/script/post/create-script-folder.ts","../src/umb-management-api/tools/script/put/update-script.ts","../src/umb-management-api/tools/script/put/rename-script.ts","../src/umb-management-api/tools/script/delete/delete-script.ts","../src/umb-management-api/tools/script/delete/delete-script-folder.ts","../src/umb-management-api/tools/script/index.ts","../src/umb-management-api/tools/searcher/get/get-searcher.ts","../src/umb-management-api/tools/searcher/get/get-searcher-by-searcher-name-query.ts","../src/umb-management-api/tools/searcher/index.ts","../src/umb-management-api/tools/server/get/get-server-information.ts","../src/umb-management-api/tools/server/get/get-server-status.ts","../src/umb-management-api/tools/server/get/get-server-configuration.ts","../src/umb-management-api/tools/server/get/get-server-troubleshooting.ts","../src/umb-management-api/tools/server/get/get-server-upgrade-check.ts","../src/umb-management-api/tools/server/index.ts","../src/umb-management-api/tools/static-file/items/get/get-static-files.ts","../src/umb-management-api/tools/static-file/items/get/get-root.ts","../src/umb-management-api/tools/static-file/items/get/get-children.ts","../src/umb-management-api/tools/static-file/items/get/get-ancestors.ts","../src/umb-management-api/tools/static-file/index.ts","../src/umb-management-api/tools/stylesheet/post/create-stylesheet.ts","../src/umb-management-api/tools/stylesheet/post/create-stylesheet-folder.ts","../src/umb-management-api/tools/stylesheet/get/get-stylesheet-by-path.ts","../src/umb-management-api/tools/stylesheet/get/get-stylesheet-folder-by-path.ts","../src/umb-management-api/tools/stylesheet/put/update-stylesheet.ts","../src/umb-management-api/tools/stylesheet/put/rename-stylesheet.ts","../src/umb-management-api/tools/stylesheet/delete/delete-stylesheet.ts","../src/umb-management-api/tools/stylesheet/delete/delete-stylesheet-folder.ts","../src/umb-management-api/tools/stylesheet/items/get/get-ancestors.ts","../src/umb-management-api/tools/stylesheet/items/get/get-children.ts","../src/umb-management-api/tools/stylesheet/items/get/get-root.ts","../src/umb-management-api/tools/stylesheet/items/get/get-search.ts","../src/umb-management-api/tools/stylesheet/items/get/get-siblings.ts","../src/umb-management-api/tools/stylesheet/index.ts","../src/umb-management-api/tools/tag/get/get-tags.ts","../src/umb-management-api/tools/tag/index.ts","../src/umb-management-api/tools/template/post/create-template.ts","../src/umb-management-api/tools/template/get/get-template.ts","../src/umb-management-api/tools/template/get/get-template-configuration.ts","../src/umb-management-api/tools/template/get/get-template-by-id-array.ts","../src/umb-management-api/tools/template/put/update-template.ts","../src/umb-management-api/tools/template/delete/delete-template.ts","../src/umb-management-api/tools/template/post/execute-template-query.ts","../src/umb-management-api/tools/template/get/get-template-query-settings.ts","../src/umb-management-api/tools/template/items/get/get-ancestors.ts","../src/umb-management-api/tools/template/items/get/get-children.ts","../src/umb-management-api/tools/template/items/get/get-root.ts","../src/umb-management-api/tools/template/items/get/get-search.ts","../src/umb-management-api/tools/template/items/get/get-siblings.ts","../src/umb-management-api/tools/template/index.ts","../src/umb-management-api/tools/temporary-file/post/create-temporary-file.ts","../src/umb-management-api/api/temporary-file/types.zod.ts","../src/umb-management-api/tools/temporary-file/get/get-temporary-file.ts","../src/umb-management-api/tools/temporary-file/delete/delete-temporary-file.ts","../src/umb-management-api/tools/temporary-file/get/get-temporary-file-configuration.ts","../src/umb-management-api/tools/temporary-file/index.ts","../src/umb-management-api/tools/user/get/get-user.ts","../src/umb-management-api/tools/user/get/get-user-by-id.ts","../src/umb-management-api/tools/user/get/find-user.ts","../src/umb-management-api/tools/user/get/get-item-user.ts","../src/umb-management-api/tools/user/get/get-user-current.ts","../src/umb-management-api/tools/user/get/get-user-configuration.ts","../src/umb-management-api/tools/user/get/get-user-current-configuration.ts","../src/umb-management-api/tools/user/get/get-user-current-login-providers.ts","../src/umb-management-api/tools/user/get/get-user-current-permissions.ts","../src/umb-management-api/tools/user/get/get-user-current-permissions-document.ts","../src/umb-management-api/tools/user/get/get-user-current-permissions-media.ts","../src/umb-management-api/tools/user/get/get-user-by-id-calculate-start-nodes.ts","../src/umb-management-api/tools/user/post/upload-user-avatar-by-id.ts","../src/umb-management-api/tools/user/post/upload-user-current-avatar.ts","../src/umb-management-api/tools/user/delete/delete-user-avatar-by-id.ts","../src/umb-management-api/tools/user/index.ts","../src/umb-management-api/tools/user-data/post/create-user-data.ts","../src/umb-management-api/tools/user-data/put/update-user-data.ts","../src/umb-management-api/tools/user-data/get/get-user-data.ts","../src/umb-management-api/tools/user-data/get/get-user-data-by-id.ts","../src/umb-management-api/tools/user-data/delete/delete-user-data.ts","../src/umb-management-api/tools/user-data/index.ts","../src/umb-management-api/tools/user-group/get/get-user-group.ts","../src/umb-management-api/tools/user-group/get/get-user-group-by-id-array.ts","../src/umb-management-api/tools/user-group/get/get-user-groups.ts","../src/umb-management-api/tools/user-group/get/get-filter-user-group.ts","../src/umb-management-api/tools/user-group/post/create-user-group.ts","../src/umb-management-api/tools/user-group/put/update-user-group.ts","../src/umb-management-api/tools/user-group/delete/delete-user-group.ts","../src/umb-management-api/tools/user-group/delete/delete-user-groups.ts","../src/umb-management-api/tools/user-group/index.ts","../src/umb-management-api/tools/webhook/get/get-webhook-by-id.ts","../src/umb-management-api/tools/webhook/get/get-webhook-by-id-array.ts","../src/umb-management-api/tools/webhook/get/get-webhook.ts","../src/umb-management-api/tools/webhook/delete/delete-webhook.ts","../src/umb-management-api/tools/webhook/put/update-webhook.ts","../src/umb-management-api/tools/webhook/get/get-webhook-events.ts","../src/umb-management-api/tools/webhook/get/get-all-webhook-logs.ts","../src/umb-management-api/tools/webhook/post/create-webhook.ts","../src/umb-management-api/tools/webhook/get/get-webhook-logs-by-id.ts","../src/umb-management-api/tools/webhook/index.ts","../src/umb-management-api/tools/collection-registry.ts","../src/config/mode-registry.ts","../src/config/slice-registry.ts"],"names":["path","UmbracoManagementClient","withStandardDecorators","CAPTURE_RAW_HTTP_RESPONSE","executeGetApiCall","createToolResult","createToolResultError","executeVoidApiCall","outputSchema","executeGetItemsApiCall","template","inputSchema","resolve","ToolValidationError","fileNameWithExtension","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VECTOR_GRAPHICS","MEDIA_TYPE_ARTICLE","MEDIA_TYPE_AUDIO","MEDIA_TYPE_FILE","MEDIA_TYPE_VIDEO","propertySchema","detectFileExtensionFromBuffer"],"mappings":"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A;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACU,IAAA;AACZ,EAAA;AACY,EAAA;AACK,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACW,EAAA;AACM,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACU,EAAA;AACO,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACa,EAAA;AACI,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AAC2B,YAAA;AACC,YAAA;AACP,YAAA;AACN,YAAA;AACf,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACA,UAAA;AACT,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACU,IAAA;AACZ,EAAA;AACgB,EAAA;AACC,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AAC2B,YAAA;AACC,YAAA;AACP,YAAA;AACN,YAAA;AACf,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACA,UAAA;AACT,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACc,EAAA;AACG,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AAC2B,YAAA;AACC,YAAA;AACP,YAAA;AACN,YAAA;AACf,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACA,UAAA;AACT,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACY,EAAA;AACK,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACsB,EAAA;AACL,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACmB,EAAA;AACF,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACgB,EAAA;AACJ,IAAA;AACZ,EAAA;AACe,EAAA;AACE,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACA,UAAA;AACT,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACe,EAAA;AACE,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACqB,EAAA;AACJ,IAAA;AACE,IAAA;AACN,IAAA;AACb,EAAA;AACgB,EAAA;AACC,IAAA;AACE,IAAA;AACN,IAAA;AACb,EAAA;AACc,EAAA;AACG,IAAA;AACE,IAAA;AACN,IAAA;AACb,EAAA;AACe,EAAA;AACE,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACW,YAAA;AACA,YAAA;AACX,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACiB,EAAA;AACA,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACC,UAAA;AACO,UAAA;AACE,YAAA;AACjB,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACc,EAAA;AACG,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACkB,EAAA;AACD,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACc,EAAA;AACG,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACkB,EAAA;AACD,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACa,EAAA;AACI,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AAC2B,YAAA;AACV,YAAA;AACC,YAAA;AACU,YAAA;AACL,YAAA;AACnB,cAAA;AACgB,gBAAA;AAChB,cAAA;AACF,YAAA;AACc,YAAA;AACA,YAAA;AAChB,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACU,IAAA;AACZ,EAAA;AACc,EAAA;AACG,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACkB,EAAA;AACD,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AAC0B,EAAA;AACT,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AAC2B,YAAA;AACC,YAAA;AACjB,YAAA;AACQ,YAAA;AACH,YAAA;AACK,YAAA;AACN,YAAA;AACf,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACyB,EAAA;AACR,IAAA;AACE,IAAA;AACP,IAAA;AACR,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACE,YAAA;AACE,cAAA;AACF,YAAA;AACA,YAAA;AACE,cAAA;AACA,cAAA;AACA,cAAA;AACF,YAAA;AACA,YAAA;AACE,cAAA;AACA,cAAA;AACA,cAAA;AACF,YAAA;AACA,YAAA;AACE,cAAA;AACA,cAAA;AACF,YAAA;AACA,YAAA;AACE,cAAA;AACA,cAAA;AACF,YAAA;AACA,YAAA;AACE,cAAA;AACA,cAAA;AACF,YAAA;AACA,YAAA;AACE,cAAA;AACA,cAAA;AACF,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACX,MAAA;AACA,MAAA;AACW,QAAA;AACA,QAAA;AACP,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACF;Af+gWwD;AACA;Ac9rXxD;AAEEG;AACAC;AACAJ;AACK;AAGuC;AACD,EAAA;AAC5C;AAK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C7B,EAAA;AACO,EAAA;AACC,EAAA;AACiC,EAAA;AAClC,EAAA;AACG,IAAA;AAChB,EAAA;AACwB,EAAA;AACF,EAAA;AACbE,IAAAA;AAC2BD,MAAAA;AAClC,IAAA;AACF,EAAA;AACF;AAEeD;AxE2xayC;AACA;AyEnzatC;AAClB;AAEEC;AACAM;AACAP;AACK;AAEuB;AACrB,EAAA;AACR;AAE2B;AACpB,EAAA;AACO,EAAA;AAC2B,EAAA;AACb,EAAA;AACd,EAAA;AACG,IAAA;AAChB,EAAA;AACe,EAAA;AACyD,EAAA;AAC/DO,IAAAA;AAC0BN,MAAAA;AACjC,IAAA;AACF,EAAA;AACF;AAEeD;AzEizayC;AACA;A0E/0atC;A1Ei1asC;AACA;A2E50aqB;AAC9D,EAAA;AACE,IAAA;AACN,IAAA;AACG,MAAA;AACe,QAAA;AACnB,UAAA;AACc,YAAA;AACd,UAAA;AACF,QAAA;AACF,MAAA;AACa,MAAA;AACX,QAAA;AACO,UAAA;AACW,UAAA;AACR,UAAA;AACN,YAAA;AACe,cAAA;AACJ,cAAA;AACA,cAAA;AACF,cAAA;AACA,cAAA;AACL,gBAAA;AACO,kBAAA;AACK,kBAAA;AACM,kBAAA;AACR,kBAAA;AACI,kBAAA;AACd,gBAAA;AACF,cAAA;AACF,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACe,MAAA;AACP,MAAA;AACN,QAAA;AACc,UAAA;AACH,UAAA;AACA,UAAA;AACX,QAAA;AACF,MAAA;AACF,IAAA;AACQ,IAAA;AACV,EAAA;AACa,EAAA;AACE,IAAA;AACN,IAAA;AACG,MAAA;AACe,QAAA;AACnB,UAAA;AACc,YAAA;AACA,YAAA;AACH,YAAA;AACF,YAAA;AACL,cAAA;AACO,gBAAA;AACE,gBAAA;AACL,kBAAA;AACc,oBAAA;AACC,oBAAA;AACD,oBAAA;AACH,oBAAA;AACX,kBAAA;AACF,gBAAA;AACF,cAAA;AACF,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACa,MAAA;AACX,QAAA;AACO,UAAA;AACW,UAAA;AACR,UAAA;AACN,YAAA;AAC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ACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAEiC,IAAA;AACnC,EAAA;AACF;AAEsC;AxImzgBkB;AACA;AyIx0hBtC;AACW;AAK7B;AAEEG;AACAC;AACAJ;AAEK;AAGkC;AAC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","file":"/home/vsts/work/1/s/dist/chunk-UHEUCBCR.cjs","sourcesContent":[null,"/**\n * Orval mutator — delegates to the SDK's UmbracoManagementClient.\n *\n * Orval cannot resolve npm package paths at generation time,\n * so this local file acts as the mutator target. The generated\n * code imports from here, which delegates to the SDK at runtime.\n */\nimport { UmbracoManagementClient as sdkClient } from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const UmbracoManagementClient = <T>(\n config: { url: string; method: string; data?: unknown; params?: Record<string, unknown>; headers?: Record<string, string>; [key: string]: unknown },\n options?: { returnFullResponse?: boolean; validateStatus?: (status: number) => boolean; [key: string]: unknown },\n): Promise<T> => {\n return sdkClient<T>(config, options);\n};\n\nexport type SecondParameter<T extends (...args: any) => any> = Parameters<T>[1];\n","/**\n * Generated by orval v7.21.0 🍺\n * Do not edit manually.\n * Umbraco Management API\n * This shows all APIs available in this version of Umbraco - including all the legacy apis that are available for backward compatibility\n * OpenAPI spec version: Latest\n */\nimport type {\n AvailableDocumentTypeCompositionResponseModel,\n AvailableMediaTypeCompositionResponseModel,\n AvailableMemberTypeCompositionResponseModel,\n CalculatedUserStartNodesResponseModel,\n ChangePasswordCurrentUserRequestModel,\n ChangePasswordUserRequestModel,\n CopyDataTypeRequestModel,\n CopyDocumentRequestModel,\n CopyDocumentTypeRequestModel,\n CopyMediaTypeRequestModel,\n CopyMemberTypeRequestModel,\n CreateDataTypeRequestModel,\n CreateDictionaryItemRequestModel,\n CreateDocumentBlueprintFromDocumentRequestModel,\n CreateDocumentBlueprintRequestModel,\n CreateDocumentRequestModel,\n CreateDocumentTypeRequestModel,\n CreateDocumentTypeTemplateRequestModel,\n CreateFolderRequestModel,\n CreateInitialPasswordUserRequestModel,\n CreateLanguageRequestModel,\n CreateMediaRequestModel,\n CreateMediaTypeRequestModel,\n CreateMemberGroupRequestModel,\n CreateMemberRequestModel,\n CreateMemberTypeRequestModel,\n CreatePackageRequestModel,\n CreatePartialViewFolderRequestModel,\n CreatePartialViewRequestModel,\n CreateScriptFolderRequestModel,\n CreateScriptRequestModel,\n CreateStylesheetFolderRequestModel,\n CreateStylesheetRequestModel,\n CreateTemplateRequestModel,\n CreateUserClientCredentialsRequestModel,\n CreateUserDataRequestModel,\n CreateUserGroupRequestModel,\n CreateUserRequestModel,\n CreateWebhookRequestModel,\n CurrentUserConfigurationResponseModel,\n CurrentUserResponseModel,\n DataTypeItemResponseModel,\n DataTypeResponseModel,\n DataTypeTreeItemResponseModel,\n DatabaseInstallRequestModel,\n DatatypeConfigurationResponseModel,\n DeleteUserCurrent2faByProviderNameParams,\n DeleteUserGroupsRequestModel,\n DeleteUsersRequestModel,\n DictionaryItemItemResponseModel,\n DictionaryItemResponseModel,\n DisableUserRequestModel,\n DocumentBlueprintItemResponseModel,\n DocumentBlueprintResponseModel,\n DocumentBlueprintTreeItemResponseModel,\n DocumentConfigurationResponseModel,\n DocumentItemResponseModel,\n DocumentNotificationResponseModel,\n DocumentResponseModel,\n DocumentTreeItemResponseModel,\n DocumentTypeCompositionRequestModel,\n DocumentTypeCompositionResponseModel,\n DocumentTypeConfigurationResponseModel,\n DocumentTypeItemResponseModel,\n DocumentTypeResponseModel,\n DocumentTypeTreeItemResponseModel,\n DocumentUrlInfoModel,\n DocumentUrlInfoResponseModel,\n DocumentVersionResponseModel,\n DomainsResponseModel,\n DynamicRootRequestModel,\n DynamicRootResponseModel,\n EnableTwoFactorRequestModel,\n EnableUserRequestModel,\n EntityImportAnalysisResponseModel,\n FileSystemTreeItemPresentationModel,\n FolderResponseModel,\n GetCollectionDocumentByIdParams,\n GetCollectionMediaParams,\n GetCultureParams,\n GetDataTypeByIdReferencedByParams,\n GetDictionaryByIdExportParams,\n GetDictionaryParams,\n GetDocumentAreReferencedParams,\n GetDocumentByIdAuditLogParams,\n GetDocumentByIdAvailableSegmentOptionsParams,\n GetDocumentByIdPreviewUrlParams,\n GetDocumentByIdReferencedByParams,\n GetDocumentByIdReferencedDescendantsParams,\n GetDocumentTypeAllowedAtRootParams,\n GetDocumentTypeByIdAllowedChildrenParams,\n GetDocumentTypeByIdBlueprintParams,\n GetDocumentUrlsParams,\n GetDocumentVersionParams,\n GetFilterDataTypeParams,\n GetFilterMemberParams,\n GetFilterUserGroupParams,\n GetFilterUserParams,\n GetHealthCheckGroupParams,\n GetHelpParams,\n GetImagingResizeUrlsParams,\n GetImportAnalyzeParams,\n GetIndexerParams,\n GetItemDataTypeParams,\n GetItemDataTypeSearchParams,\n GetItemDictionaryParams,\n GetItemDocumentBlueprintParams,\n GetItemDocumentParams,\n GetItemDocumentSearchParams,\n GetItemDocumentTypeParams,\n GetItemDocumentTypeSearchParams,\n GetItemLanguageParams,\n GetItemMediaParams,\n GetItemMediaSearchParams,\n GetItemMediaTypeAllowedParams,\n GetItemMediaTypeFoldersParams,\n GetItemMediaTypeParams,\n GetItemMediaTypeSearchParams,\n GetItemMemberGroupParams,\n GetItemMemberParams,\n GetItemMemberSearchParams,\n GetItemMemberTypeParams,\n GetItemMemberTypeSearchParams,\n GetItemPartialViewParams,\n GetItemRelationTypeParams,\n GetItemScriptParams,\n GetItemStaticFileParams,\n GetItemStylesheetParams,\n GetItemTemplateParams,\n GetItemTemplateSearchParams,\n GetItemUserGroupParams,\n GetItemUserParams,\n GetItemWebhookParams,\n GetLanguageParams,\n GetLogViewerLevelCountParams,\n GetLogViewerLevelParams,\n GetLogViewerLogParams,\n GetLogViewerMessageTemplateParams,\n GetLogViewerSavedSearchParams,\n GetLogViewerValidateLogsSizeParams,\n GetMediaAreReferencedParams,\n GetMediaByIdAuditLogParams,\n GetMediaByIdReferencedByParams,\n GetMediaByIdReferencedDescendantsParams,\n GetMediaTypeAllowedAtRootParams,\n GetMediaTypeByIdAllowedChildrenParams,\n GetMediaUrlsParams,\n GetMemberAreReferencedParams,\n GetMemberByIdReferencedByParams,\n GetMemberByIdReferencedDescendantsParams,\n GetMemberGroupParams,\n GetObjectTypesParams,\n GetOembedQueryParams,\n GetPackageCreatedParams,\n GetPackageMigrationStatusParams,\n GetPartialViewSnippetParams,\n GetPropertyTypeIsUsedParams,\n GetRecycleBinDocumentChildrenParams,\n GetRecycleBinDocumentReferencedByParams,\n GetRecycleBinDocumentRootParams,\n GetRecycleBinDocumentSiblingsParams,\n GetRecycleBinMediaChildrenParams,\n GetRecycleBinMediaReferencedByParams,\n GetRecycleBinMediaRootParams,\n GetRecycleBinMediaSiblingsParams,\n GetRedirectManagementByIdParams,\n GetRedirectManagementParams,\n GetRelationByRelationTypeIdParams,\n GetRelationTypeParams,\n GetSearcherBySearcherNameQueryParams,\n GetSearcherParams,\n GetSegmentParams,\n GetTagParams,\n GetTelemetryParams,\n GetTreeDataTypeAncestorsParams,\n GetTreeDataTypeChildrenParams,\n GetTreeDataTypeRootParams,\n GetTreeDataTypeSiblingsParams,\n GetTreeDictionaryAncestorsParams,\n GetTreeDictionaryChildrenParams,\n GetTreeDictionaryRootParams,\n GetTreeDocumentAncestorsParams,\n GetTreeDocumentBlueprintAncestorsParams,\n GetTreeDocumentBlueprintChildrenParams,\n GetTreeDocumentBlueprintRootParams,\n GetTreeDocumentBlueprintSiblingsParams,\n GetTreeDocumentChildrenParams,\n GetTreeDocumentRootParams,\n GetTreeDocumentSiblingsParams,\n GetTreeDocumentTypeAncestorsParams,\n GetTreeDocumentTypeChildrenParams,\n GetTreeDocumentTypeRootParams,\n GetTreeDocumentTypeSiblingsParams,\n GetTreeMediaAncestorsParams,\n GetTreeMediaChildrenParams,\n GetTreeMediaRootParams,\n GetTreeMediaSiblingsParams,\n GetTreeMediaTypeAncestorsParams,\n GetTreeMediaTypeChildrenParams,\n GetTreeMediaTypeRootParams,\n GetTreeMediaTypeSiblingsParams,\n GetTreeMemberGroupRootParams,\n GetTreeMemberTypeAncestorsParams,\n GetTreeMemberTypeChildrenParams,\n GetTreeMemberTypeRootParams,\n GetTreeMemberTypeSiblingsParams,\n GetTreePartialViewAncestorsParams,\n GetTreePartialViewChildrenParams,\n GetTreePartialViewRootParams,\n GetTreePartialViewSiblingsParams,\n GetTreeScriptAncestorsParams,\n GetTreeScriptChildrenParams,\n GetTreeScriptRootParams,\n GetTreeScriptSiblingsParams,\n GetTreeStaticFileAncestorsParams,\n GetTreeStaticFileChildrenParams,\n GetTreeStaticFileRootParams,\n GetTreeStylesheetAncestorsParams,\n GetTreeStylesheetChildrenParams,\n GetTreeStylesheetRootParams,\n GetTreeStylesheetSiblingsParams,\n GetTreeTemplateAncestorsParams,\n GetTreeTemplateChildrenParams,\n GetTreeTemplateRootParams,\n GetTreeTemplateSiblingsParams,\n GetUserCurrentPermissionsDocumentParams,\n GetUserCurrentPermissionsMediaParams,\n GetUserCurrentPermissionsParams,\n GetUserDataParams,\n GetUserGroupParams,\n GetUserParams,\n GetWebhookByIdLogsParams,\n GetWebhookEventsParams,\n GetWebhookLogsParams,\n GetWebhookParams,\n HealthCheckActionRequestModel,\n HealthCheckGroupPresentationModel,\n HealthCheckGroupWithResultResponseModel,\n HealthCheckResultResponseModel,\n ImportDictionaryRequestModel,\n ImportDocumentTypeRequestModel,\n ImportMediaTypeRequestModel,\n ImportMemberTypeRequestModel,\n IndexResponseModel,\n InstallRequestModel,\n InstallSettingsResponseModel,\n InviteUserRequestModel,\n LanguageItemResponseModel,\n LanguageResponseModel,\n LogLevelCountsReponseModel,\n ManifestResponseModel,\n MediaConfigurationResponseModel,\n MediaItemResponseModel,\n MediaResponseModel,\n MediaTreeItemResponseModel,\n MediaTypeCompositionRequestModel,\n MediaTypeCompositionResponseModel,\n MediaTypeConfigurationResponseModel,\n MediaTypeItemResponseModel,\n MediaTypeResponseModel,\n MediaTypeTreeItemResponseModel,\n MediaUrlInfoResponseModel,\n MemberConfigurationResponseModel,\n MemberGroupItemResponseModel,\n MemberGroupResponseModel,\n MemberItemResponseModel,\n MemberResponseModel,\n MemberTypeCompositionRequestModel,\n MemberTypeCompositionResponseModel,\n MemberTypeConfigurationResponseModel,\n MemberTypeItemResponseModel,\n MemberTypeResponseModel,\n MemberTypeTreeItemResponseModel,\n ModelsBuilderResponseModel,\n MoveDataTypeRequestModel,\n MoveDictionaryRequestModel,\n MoveDocumentBlueprintRequestModel,\n MoveDocumentRequestModel,\n MoveDocumentTypeRequestModel,\n MoveMediaRequestModel,\n MoveMediaTypeRequestModel,\n MoveMemberTypeRequestModel,\n NamedEntityTreeItemResponseModel,\n NewsDashboardResponseModel,\n NoopSetupTwoFactorModel,\n OEmbedResponseModel,\n OutOfDateStatusResponseModel,\n PackageConfigurationResponseModel,\n PackageDefinitionResponseModel,\n PagedAllowedDocumentTypeModel,\n PagedAllowedMediaTypeModel,\n PagedAuditLogResponseModel,\n PagedCultureReponseModel,\n PagedDataTypeItemResponseModel,\n PagedDataTypeTreeItemResponseModel,\n PagedDictionaryOverviewResponseModel,\n PagedDocumentBlueprintTreeItemResponseModel,\n PagedDocumentCollectionResponseModel,\n PagedDocumentRecycleBinItemResponseModel,\n PagedDocumentTreeItemResponseModel,\n PagedDocumentTypeBlueprintItemResponseModel,\n PagedDocumentTypeTreeItemResponseModel,\n PagedDocumentVersionItemResponseModel,\n PagedFileSystemTreeItemPresentationModel,\n PagedHealthCheckGroupResponseModel,\n PagedHelpPageResponseModel,\n PagedIReferenceResponseModel,\n PagedIndexResponseModel,\n PagedLanguageResponseModel,\n PagedLogMessageResponseModel,\n PagedLogTemplateResponseModel,\n PagedLoggerResponseModel,\n PagedMediaCollectionResponseModel,\n PagedMediaRecycleBinItemResponseModel,\n PagedMediaTreeItemResponseModel,\n PagedMediaTypeTreeItemResponseModel,\n PagedMemberGroupResponseModel,\n PagedMemberResponseModel,\n PagedMemberTypeTreeItemResponseModel,\n PagedModelDataTypeItemResponseModel,\n PagedModelDocumentItemResponseModel,\n PagedModelDocumentTypeItemResponseModel,\n PagedModelMediaItemResponseModel,\n PagedModelMediaTypeItemResponseModel,\n PagedModelMemberItemResponseModel,\n PagedModelMemberTypeItemResponseModel,\n PagedModelTemplateItemResponseModel,\n PagedNamedEntityTreeItemResponseModel,\n PagedObjectTypeResponseModel,\n PagedPackageDefinitionResponseModel,\n PagedPackageMigrationStatusResponseModel,\n PagedPartialViewSnippetItemResponseModel,\n PagedRedirectUrlResponseModel,\n PagedReferenceByIdModel,\n PagedRelationResponseModel,\n PagedRelationTypeResponseModel,\n PagedSavedLogSearchResponseModel,\n PagedSearchResultResponseModel,\n PagedSearcherResponseModel,\n PagedSegmentResponseModel,\n PagedTagResponseModel,\n PagedTelemetryResponseModel,\n PagedUserDataResponseModel,\n PagedUserGroupResponseModel,\n PagedUserResponseModel,\n PagedWebhookEventModel,\n PagedWebhookLogResponseModel,\n PagedWebhookResponseModel,\n PartialViewFolderResponseModel,\n PartialViewItemResponseModel,\n PartialViewResponseModel,\n PartialViewSnippetResponseModel,\n PostDocumentVersionByIdRollbackParams,\n PostRedirectManagementStatusParams,\n ProfilingStatusRequestModel,\n ProfilingStatusResponseModel,\n PublicAccessRequestModel,\n PublicAccessResponseModel,\n PublishDocumentRequestModel,\n PublishDocumentWithDescendantsRequestModel,\n PublishWithDescendantsResultModel,\n PublishedDocumentResponseModel,\n PutDocumentVersionByIdPreventCleanupParams,\n RebuildStatusModel,\n RedirectUrlStatusResponseModel,\n ReferenceByIdModel,\n RelationTypeItemResponseModel,\n RelationTypeResponseModel,\n RenamePartialViewRequestModel,\n RenameScriptRequestModel,\n RenameStylesheetRequestModel,\n ResendInviteUserRequestModel,\n ResetPasswordRequestModel,\n ResetPasswordTokenRequestModel,\n ResetPasswordUserResponseModel,\n SavedLogSearchRequestModel,\n SavedLogSearchResponseModel,\n ScriptFolderResponseModel,\n ScriptItemResponseModel,\n ScriptResponseModel,\n SecurityConfigurationResponseModel,\n ServerConfigurationResponseModel,\n ServerInformationResponseModel,\n ServerStatusResponseModel,\n ServerTroubleshootingResponseModel,\n SetAvatarRequestModel,\n SortingRequestModel,\n StaticFileItemResponseModel,\n StylesheetFolderResponseModel,\n StylesheetItemResponseModel,\n StylesheetResponseModel,\n SubsetDataTypeTreeItemResponseModel,\n SubsetDocumentBlueprintTreeItemResponseModel,\n SubsetDocumentRecycleBinItemResponseModel,\n SubsetDocumentTreeItemResponseModel,\n SubsetDocumentTypeTreeItemResponseModel,\n SubsetFileSystemTreeItemPresentationModel,\n SubsetMediaRecycleBinItemResponseModel,\n SubsetMediaTreeItemResponseModel,\n SubsetMediaTypeTreeItemResponseModel,\n SubsetMemberTypeTreeItemResponseModel,\n SubsetNamedEntityTreeItemResponseModel,\n TelemetryRequestModel,\n TelemetryResponseModel,\n TemplateConfigurationResponseModel,\n TemplateItemResponseModel,\n TemplateQueryExecuteModel,\n TemplateQueryResultResponseModel,\n TemplateQuerySettingsResponseModel,\n TemplateResponseModel,\n UnlockUsersRequestModel,\n UnpublishDocumentRequestModel,\n UpdateDataTypeRequestModel,\n UpdateDictionaryItemRequestModel,\n UpdateDocumentBlueprintRequestModel,\n UpdateDocumentNotificationsRequestModel,\n UpdateDocumentRequestModel,\n UpdateDocumentTypeRequestModel,\n UpdateDomainsRequestModel,\n UpdateFolderResponseModel,\n UpdateLanguageRequestModel,\n UpdateMediaRequestModel,\n UpdateMediaTypeRequestModel,\n UpdateMemberGroupRequestModel,\n UpdateMemberRequestModel,\n UpdateMemberTypeRequestModel,\n UpdatePackageRequestModel,\n UpdatePartialViewRequestModel,\n UpdateScriptRequestModel,\n UpdateStylesheetRequestModel,\n UpdateTemplateRequestModel,\n UpdateUserDataRequestModel,\n UpdateUserGroupRequestModel,\n UpdateUserGroupsOnUserRequestModel,\n UpdateUserRequestModel,\n UpdateWebhookRequestModel,\n UpgradeCheckResponseModel,\n UpgradeSettingsResponseModel,\n UserConfigurationResponseModel,\n UserDataModel,\n UserExternalLoginProviderModel,\n UserGroupItemResponseModel,\n UserGroupResponseModel,\n UserItemResponseModel,\n UserPermissionsResponseModel,\n UserResponseModel,\n UserTwoFactorProviderModel,\n ValidateUpdateDocumentRequestModel,\n VerifyInviteUserRequestModel,\n VerifyInviteUserResponseModel,\n VerifyResetPasswordResponseModel,\n VerifyResetPasswordTokenRequestModel,\n WebhookItemResponseModel,\n WebhookResponseModel\n} from '../schemas/index.js';\n\nimport { UmbracoManagementClient } from '../client.js';\n\n// https://stackoverflow.com/questions/49579094/typescript-conditional-types-filter-out-readonly-properties-pick-only-requir/49579497#49579497\ntype IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <\nT,\n>() => T extends Y ? 1 : 2\n? A\n: B;\n\ntype WritableKeys<T> = {\n[P in keyof T]-?: IfEquals<\n { [Q in P]: T[P] },\n { -readonly [Q in P]: T[P] },\n P\n>;\n}[keyof T];\n\ntype UnionToIntersection<U> =\n (U extends any ? (k: U)=>void : never) extends ((k: infer I)=>void) ? I : never;\ntype DistributeReadOnlyOverUnions<T> = T extends any ? NonReadonly<T> : never;\n\ntype Writable<T> = Pick<T, WritableKeys<T>>;\ntype NonReadonly<T> = [T] extends [UnionToIntersection<T>] ? {\n [P in keyof Writable<T>]: T[P] extends object\n ? NonReadonly<NonNullable<T[P]>>\n : T[P];\n} : DistributeReadOnlyOverUnions<T>;\n\n\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\n\n export const getUmbracoManagementAPI = () => {\nconst getCulture = (\n params?: GetCultureParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedCultureReponseModel>>,) => {\n return UmbracoManagementClient<PagedCultureReponseModel>(\n {url: `/umbraco/management/api/v1/culture`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDataType = (\n createDataTypeRequestModel: CreateDataTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDataTypeRequestModel\n },\n options);\n }\n \nconst getDataTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DataTypeResponseModel>>,) => {\n return UmbracoManagementClient<DataTypeResponseModel>(\n {url: `/umbraco/management/api/v1/data-type/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDataTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDataTypeById = (\n id: string,\n updateDataTypeRequestModel: UpdateDataTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDataTypeRequestModel\n },\n options);\n }\n \nconst postDataTypeByIdCopy = (\n id: string,\n copyDataTypeRequestModel: CopyDataTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/${id}/copy`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: copyDataTypeRequestModel\n },\n options);\n }\n \nconst getDataTypeByIdIsUsed = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<boolean>>,) => {\n return UmbracoManagementClient<boolean>(\n {url: `/umbraco/management/api/v1/data-type/${id}/is-used`, method: 'GET'\n },\n options);\n }\n \nconst putDataTypeByIdMove = (\n id: string,\n moveDataTypeRequestModel: MoveDataTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveDataTypeRequestModel\n },\n options);\n }\n \nconst getDataTypeByIdReferencedBy = (\n id: string,\n params?: GetDataTypeByIdReferencedByParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIReferenceResponseModel>>,) => {\n return UmbracoManagementClient<PagedIReferenceResponseModel>(\n {url: `/umbraco/management/api/v1/data-type/${id}/referenced-by`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDataTypeConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<DatatypeConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<DatatypeConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/data-type/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postDataTypeFolder = (\n createFolderRequestModel: CreateFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createFolderRequestModel\n },\n options);\n }\n \nconst getDataTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<FolderResponseModel>>,) => {\n return UmbracoManagementClient<FolderResponseModel>(\n {url: `/umbraco/management/api/v1/data-type/folder/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDataTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/folder/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDataTypeFolderById = (\n id: string,\n updateFolderResponseModel: UpdateFolderResponseModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/data-type/folder/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateFolderResponseModel\n },\n options);\n }\n \nconst getFilterDataType = (\n params?: GetFilterDataTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDataTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDataTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/filter/data-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemDataType = (\n params?: GetItemDataTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DataTypeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DataTypeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/data-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemDataTypeSearch = (\n params?: GetItemDataTypeSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelDataTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelDataTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/data-type/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDataTypeAncestors = (\n params?: GetTreeDataTypeAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DataTypeTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DataTypeTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/data-type/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDataTypeChildren = (\n params?: GetTreeDataTypeChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDataTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDataTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/data-type/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDataTypeRoot = (\n params?: GetTreeDataTypeRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDataTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDataTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/data-type/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDataTypeSiblings = (\n params?: GetTreeDataTypeSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetDataTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetDataTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/data-type/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDictionary = (\n params?: GetDictionaryParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDictionaryOverviewResponseModel>>,) => {\n return UmbracoManagementClient<PagedDictionaryOverviewResponseModel>(\n {url: `/umbraco/management/api/v1/dictionary`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDictionary = (\n createDictionaryItemRequestModel: CreateDictionaryItemRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/dictionary`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDictionaryItemRequestModel\n },\n options);\n }\n \nconst getDictionaryById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DictionaryItemResponseModel>>,) => {\n return UmbracoManagementClient<DictionaryItemResponseModel>(\n {url: `/umbraco/management/api/v1/dictionary/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDictionaryById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/dictionary/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDictionaryById = (\n id: string,\n updateDictionaryItemRequestModel: UpdateDictionaryItemRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/dictionary/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDictionaryItemRequestModel\n },\n options);\n }\n \nconst getDictionaryByIdExport = (\n id: string,\n params?: GetDictionaryByIdExportParams,\n options?: SecondParameter<typeof UmbracoManagementClient<Blob>>,) => {\n return UmbracoManagementClient<Blob>(\n {url: `/umbraco/management/api/v1/dictionary/${id}/export`, method: 'GET',\n params,\n responseType: 'blob'\n },\n options);\n }\n \nconst putDictionaryByIdMove = (\n id: string,\n moveDictionaryRequestModel: MoveDictionaryRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/dictionary/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveDictionaryRequestModel\n },\n options);\n }\n \nconst postDictionaryImport = (\n importDictionaryRequestModel: ImportDictionaryRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/dictionary/import`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: importDictionaryRequestModel\n },\n options);\n }\n \nconst getItemDictionary = (\n params?: GetItemDictionaryParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DictionaryItemItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DictionaryItemItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/dictionary`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDictionaryAncestors = (\n params?: GetTreeDictionaryAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<NamedEntityTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<NamedEntityTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/dictionary/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDictionaryChildren = (\n params?: GetTreeDictionaryChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/dictionary/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDictionaryRoot = (\n params?: GetTreeDictionaryRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/dictionary/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocumentBlueprint = (\n createDocumentBlueprintRequestModel: CreateDocumentBlueprintRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDocumentBlueprintRequestModel\n },\n options);\n }\n \nconst getDocumentBlueprintById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentBlueprintResponseModel>>,) => {\n return UmbracoManagementClient<DocumentBlueprintResponseModel>(\n {url: `/umbraco/management/api/v1/document-blueprint/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDocumentBlueprintById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDocumentBlueprintById = (\n id: string,\n updateDocumentBlueprintRequestModel: UpdateDocumentBlueprintRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDocumentBlueprintRequestModel\n },\n options);\n }\n \nconst putDocumentBlueprintByIdMove = (\n id: string,\n moveDocumentBlueprintRequestModel: MoveDocumentBlueprintRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveDocumentBlueprintRequestModel\n },\n options);\n }\n \nconst getDocumentBlueprintByIdScaffold = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentBlueprintResponseModel>>,) => {\n return UmbracoManagementClient<DocumentBlueprintResponseModel>(\n {url: `/umbraco/management/api/v1/document-blueprint/${id}/scaffold`, method: 'GET'\n },\n options);\n }\n \nconst postDocumentBlueprintFolder = (\n createFolderRequestModel: CreateFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createFolderRequestModel\n },\n options);\n }\n \nconst getDocumentBlueprintFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<FolderResponseModel>>,) => {\n return UmbracoManagementClient<FolderResponseModel>(\n {url: `/umbraco/management/api/v1/document-blueprint/folder/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDocumentBlueprintFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/folder/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDocumentBlueprintFolderById = (\n id: string,\n updateFolderResponseModel: UpdateFolderResponseModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/folder/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateFolderResponseModel\n },\n options);\n }\n \nconst postDocumentBlueprintFromDocument = (\n createDocumentBlueprintFromDocumentRequestModel: CreateDocumentBlueprintFromDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-blueprint/from-document`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDocumentBlueprintFromDocumentRequestModel\n },\n options);\n }\n \nconst getItemDocumentBlueprint = (\n params?: GetItemDocumentBlueprintParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentBlueprintItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentBlueprintItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/document-blueprint`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentBlueprintAncestors = (\n params?: GetTreeDocumentBlueprintAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentBlueprintTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentBlueprintTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/document-blueprint/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentBlueprintChildren = (\n params?: GetTreeDocumentBlueprintChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentBlueprintTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentBlueprintTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document-blueprint/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentBlueprintRoot = (\n params?: GetTreeDocumentBlueprintRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentBlueprintTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentBlueprintTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document-blueprint/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentBlueprintSiblings = (\n params?: GetTreeDocumentBlueprintSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetDocumentBlueprintTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetDocumentBlueprintTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document-blueprint/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocumentType = (\n createDocumentTypeRequestModel: CreateDocumentTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDocumentTypeRequestModel\n },\n options);\n }\n \nconst getDocumentTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentTypeResponseModel>>,) => {\n return UmbracoManagementClient<DocumentTypeResponseModel>(\n {url: `/umbraco/management/api/v1/document-type/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDocumentTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDocumentTypeById = (\n id: string,\n updateDocumentTypeRequestModel: UpdateDocumentTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDocumentTypeRequestModel\n },\n options);\n }\n \nconst getDocumentTypeByIdAllowedChildren = (\n id: string,\n params?: GetDocumentTypeByIdAllowedChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedAllowedDocumentTypeModel>>,) => {\n return UmbracoManagementClient<PagedAllowedDocumentTypeModel>(\n {url: `/umbraco/management/api/v1/document-type/${id}/allowed-children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDocumentTypeByIdBlueprint = (\n id: string,\n params?: GetDocumentTypeByIdBlueprintParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentTypeBlueprintItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentTypeBlueprintItemResponseModel>(\n {url: `/umbraco/management/api/v1/document-type/${id}/blueprint`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDocumentTypeByIdCompositionReferences = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentTypeCompositionResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentTypeCompositionResponseModel[]>(\n {url: `/umbraco/management/api/v1/document-type/${id}/composition-references`, method: 'GET'\n },\n options);\n }\n \nconst postDocumentTypeByIdCopy = (\n id: string,\n copyDocumentTypeRequestModel: CopyDocumentTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/${id}/copy`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: copyDocumentTypeRequestModel\n },\n options);\n }\n \nconst getDocumentTypeByIdExport = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<Blob>>,) => {\n return UmbracoManagementClient<Blob>(\n {url: `/umbraco/management/api/v1/document-type/${id}/export`, method: 'GET',\n responseType: 'blob'\n },\n options);\n }\n \nconst putDocumentTypeByIdImport = (\n id: string,\n importDocumentTypeRequestModel: ImportDocumentTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/${id}/import`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: importDocumentTypeRequestModel\n },\n options);\n }\n \nconst putDocumentTypeByIdMove = (\n id: string,\n moveDocumentTypeRequestModel: MoveDocumentTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveDocumentTypeRequestModel\n },\n options);\n }\n \nconst postDocumentTypeByIdTemplate = (\n id: string,\n createDocumentTypeTemplateRequestModel: CreateDocumentTypeTemplateRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/${id}/template`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDocumentTypeTemplateRequestModel\n },\n options);\n }\n \nconst getDocumentTypeAllowedAtRoot = (\n params?: GetDocumentTypeAllowedAtRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedAllowedDocumentTypeModel>>,) => {\n return UmbracoManagementClient<PagedAllowedDocumentTypeModel>(\n {url: `/umbraco/management/api/v1/document-type/allowed-at-root`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocumentTypeAvailableCompositions = (\n documentTypeCompositionRequestModel: DocumentTypeCompositionRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<AvailableDocumentTypeCompositionResponseModel[]>>,) => {\n return UmbracoManagementClient<AvailableDocumentTypeCompositionResponseModel[]>(\n {url: `/umbraco/management/api/v1/document-type/available-compositions`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: documentTypeCompositionRequestModel\n },\n options);\n }\n \nconst getDocumentTypeConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<DocumentTypeConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<DocumentTypeConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/document-type/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postDocumentTypeFolder = (\n createFolderRequestModel: CreateFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createFolderRequestModel\n },\n options);\n }\n \nconst getDocumentTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<FolderResponseModel>>,) => {\n return UmbracoManagementClient<FolderResponseModel>(\n {url: `/umbraco/management/api/v1/document-type/folder/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDocumentTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/folder/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDocumentTypeFolderById = (\n id: string,\n updateFolderResponseModel: UpdateFolderResponseModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/folder/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateFolderResponseModel\n },\n options);\n }\n \nconst postDocumentTypeImport = (\n importDocumentTypeRequestModel: ImportDocumentTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-type/import`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: importDocumentTypeRequestModel\n },\n options);\n }\n \nconst getItemDocumentType = (\n params?: GetItemDocumentTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentTypeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentTypeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/document-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemDocumentTypeSearch = (\n params?: GetItemDocumentTypeSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelDocumentTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelDocumentTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/document-type/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentTypeAncestors = (\n params?: GetTreeDocumentTypeAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentTypeTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentTypeTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/document-type/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentTypeChildren = (\n params?: GetTreeDocumentTypeChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document-type/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentTypeRoot = (\n params?: GetTreeDocumentTypeRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document-type/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentTypeSiblings = (\n params?: GetTreeDocumentTypeSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetDocumentTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetDocumentTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document-type/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDocumentVersion = (\n params: GetDocumentVersionParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentVersionItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentVersionItemResponseModel>(\n {url: `/umbraco/management/api/v1/document-version`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDocumentVersionById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentVersionResponseModel>>,) => {\n return UmbracoManagementClient<DocumentVersionResponseModel>(\n {url: `/umbraco/management/api/v1/document-version/${id}`, method: 'GET'\n },\n options);\n }\n \nconst putDocumentVersionByIdPreventCleanup = (\n id: string,\n params?: PutDocumentVersionByIdPreventCleanupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-version/${id}/prevent-cleanup`, method: 'PUT',\n params\n },\n options);\n }\n \nconst postDocumentVersionByIdRollback = (\n id: string,\n params?: PostDocumentVersionByIdRollbackParams,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document-version/${id}/rollback`, method: 'POST',\n params\n },\n options);\n }\n \nconst getCollectionDocumentById = (\n id: string,\n params?: GetCollectionDocumentByIdParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentCollectionResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentCollectionResponseModel>(\n {url: `/umbraco/management/api/v1/collection/document/${id}`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocument = (\n createDocumentRequestModel: CreateDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDocumentRequestModel\n },\n options);\n }\n \nconst getDocumentById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentResponseModel>>,) => {\n return UmbracoManagementClient<DocumentResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteDocumentById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putDocumentById = (\n id: string,\n updateDocumentRequestModel: UpdateDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDocumentRequestModel\n },\n options);\n }\n \nconst getDocumentByIdAuditLog = (\n id: string,\n params?: GetDocumentByIdAuditLogParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedAuditLogResponseModel>>,) => {\n return UmbracoManagementClient<PagedAuditLogResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}/audit-log`, method: 'GET',\n params\n },\n options);\n }\n \n/**\n * @deprecated\n */\nconst getDocumentByIdAvailableSegmentOptions = (\n id: string,\n params?: GetDocumentByIdAvailableSegmentOptionsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedSegmentResponseModel>>,) => {\n return UmbracoManagementClient<PagedSegmentResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}/available-segment-options`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocumentByIdCopy = (\n id: string,\n copyDocumentRequestModel: CopyDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/copy`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: copyDocumentRequestModel\n },\n options);\n }\n \nconst getDocumentByIdDomains = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DomainsResponseModel>>,) => {\n return UmbracoManagementClient<DomainsResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}/domains`, method: 'GET'\n },\n options);\n }\n \nconst putDocumentByIdDomains = (\n id: string,\n updateDomainsRequestModel: UpdateDomainsRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/domains`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDomainsRequestModel\n },\n options);\n }\n \nconst putDocumentByIdMove = (\n id: string,\n moveDocumentRequestModel: MoveDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveDocumentRequestModel\n },\n options);\n }\n \nconst putDocumentByIdMoveToRecycleBin = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/move-to-recycle-bin`, method: 'PUT'\n },\n options);\n }\n \nconst getDocumentByIdNotifications = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentNotificationResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentNotificationResponseModel[]>(\n {url: `/umbraco/management/api/v1/document/${id}/notifications`, method: 'GET'\n },\n options);\n }\n \nconst putDocumentByIdNotifications = (\n id: string,\n updateDocumentNotificationsRequestModel: UpdateDocumentNotificationsRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/notifications`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateDocumentNotificationsRequestModel\n },\n options);\n }\n \nconst getDocumentByIdPreviewUrl = (\n id: string,\n params?: GetDocumentByIdPreviewUrlParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentUrlInfoModel>>,) => {\n return UmbracoManagementClient<DocumentUrlInfoModel>(\n {url: `/umbraco/management/api/v1/document/${id}/preview-url`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocumentByIdPublicAccess = (\n id: string,\n publicAccessRequestModel: PublicAccessRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/public-access`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: publicAccessRequestModel\n },\n options);\n }\n \nconst deleteDocumentByIdPublicAccess = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/public-access`, method: 'DELETE'\n },\n options);\n }\n \nconst getDocumentByIdPublicAccess = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PublicAccessResponseModel>>,) => {\n return UmbracoManagementClient<PublicAccessResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}/public-access`, method: 'GET'\n },\n options);\n }\n \nconst putDocumentByIdPublicAccess = (\n id: string,\n publicAccessRequestModel: PublicAccessRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/public-access`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: publicAccessRequestModel\n },\n options);\n }\n \nconst putDocumentByIdPublish = (\n id: string,\n publishDocumentRequestModel: PublishDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/publish`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: publishDocumentRequestModel\n },\n options);\n }\n \nconst putDocumentByIdPublishWithDescendants = (\n id: string,\n publishDocumentWithDescendantsRequestModel: PublishDocumentWithDescendantsRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<PublishWithDescendantsResultModel>>,) => {\n return UmbracoManagementClient<PublishWithDescendantsResultModel>(\n {url: `/umbraco/management/api/v1/document/${id}/publish-with-descendants`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: publishDocumentWithDescendantsRequestModel\n },\n options);\n }\n \nconst getDocumentByIdPublishWithDescendantsResultByTaskId = (\n id: string,\n taskId: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PublishWithDescendantsResultModel>>,) => {\n return UmbracoManagementClient<PublishWithDescendantsResultModel>(\n {url: `/umbraco/management/api/v1/document/${id}/publish-with-descendants/result/${taskId}`, method: 'GET'\n },\n options);\n }\n \nconst getDocumentByIdPublished = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PublishedDocumentResponseModel>>,) => {\n return UmbracoManagementClient<PublishedDocumentResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}/published`, method: 'GET'\n },\n options);\n }\n \nconst getDocumentByIdReferencedBy = (\n id: string,\n params?: GetDocumentByIdReferencedByParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIReferenceResponseModel>>,) => {\n return UmbracoManagementClient<PagedIReferenceResponseModel>(\n {url: `/umbraco/management/api/v1/document/${id}/referenced-by`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDocumentByIdReferencedDescendants = (\n id: string,\n params?: GetDocumentByIdReferencedDescendantsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedReferenceByIdModel>>,) => {\n return UmbracoManagementClient<PagedReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/document/${id}/referenced-descendants`, method: 'GET',\n params\n },\n options);\n }\n \nconst putDocumentByIdUnpublish = (\n id: string,\n unpublishDocumentRequestModel: UnpublishDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/${id}/unpublish`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: unpublishDocumentRequestModel\n },\n options);\n }\n \nconst putUmbracoManagementApiV11DocumentByIdValidate11 = (\n id: string,\n validateUpdateDocumentRequestModel: ValidateUpdateDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1.1/document/${id}/validate`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: validateUpdateDocumentRequestModel\n },\n options);\n }\n \nconst getDocumentAreReferenced = (\n params?: GetDocumentAreReferencedParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedReferenceByIdModel>>,) => {\n return UmbracoManagementClient<PagedReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/document/are-referenced`, method: 'GET',\n params\n },\n options);\n }\n \nconst getDocumentConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<DocumentConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<DocumentConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/document/configuration`, method: 'GET'\n },\n options);\n }\n \nconst putDocumentSort = (\n sortingRequestModel: SortingRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/sort`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: sortingRequestModel\n },\n options);\n }\n \nconst getDocumentUrls = (\n params?: GetDocumentUrlsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentUrlInfoResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentUrlInfoResponseModel[]>(\n {url: `/umbraco/management/api/v1/document/urls`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDocumentValidate = (\n createDocumentRequestModel: CreateDocumentRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/document/validate`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createDocumentRequestModel\n },\n options);\n }\n \nconst getItemDocument = (\n params?: GetItemDocumentParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/document`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemDocumentSearch = (\n params?: GetItemDocumentSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelDocumentItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelDocumentItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/document/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst deleteRecycleBinDocument = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/recycle-bin/document`, method: 'DELETE'\n },\n options);\n }\n \nconst deleteRecycleBinDocumentById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst getRecycleBinDocumentByIdOriginalParent = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<ReferenceByIdModel>>,) => {\n return UmbracoManagementClient<ReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/${id}/original-parent`, method: 'GET'\n },\n options);\n }\n \nconst putRecycleBinDocumentByIdRestore = (\n id: string,\n moveMediaRequestModel: MoveMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/${id}/restore`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveMediaRequestModel\n },\n options);\n }\n \nconst getRecycleBinDocumentChildren = (\n params?: GetRecycleBinDocumentChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentRecycleBinItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentRecycleBinItemResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRecycleBinDocumentReferencedBy = (\n params?: GetRecycleBinDocumentReferencedByParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIReferenceResponseModel>>,) => {\n return UmbracoManagementClient<PagedIReferenceResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/referenced-by`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRecycleBinDocumentRoot = (\n params?: GetRecycleBinDocumentRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentRecycleBinItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentRecycleBinItemResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRecycleBinDocumentSiblings = (\n params?: GetRecycleBinDocumentSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetDocumentRecycleBinItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetDocumentRecycleBinItemResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/document/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentAncestors = (\n params?: GetTreeDocumentAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<DocumentTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<DocumentTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/document/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentChildren = (\n params?: GetTreeDocumentChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentRoot = (\n params?: GetTreeDocumentRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedDocumentTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedDocumentTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeDocumentSiblings = (\n params?: GetTreeDocumentSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetDocumentTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetDocumentTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/document/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst postDynamicRootQuery = (\n dynamicRootRequestModel: DynamicRootRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<DynamicRootResponseModel>>,) => {\n return UmbracoManagementClient<DynamicRootResponseModel>(\n {url: `/umbraco/management/api/v1/dynamic-root/query`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: dynamicRootRequestModel\n },\n options);\n }\n \nconst getDynamicRootSteps = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<string[]>>,) => {\n return UmbracoManagementClient<string[]>(\n {url: `/umbraco/management/api/v1/dynamic-root/steps`, method: 'GET'\n },\n options);\n }\n \nconst getHealthCheckGroup = (\n params?: GetHealthCheckGroupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedHealthCheckGroupResponseModel>>,) => {\n return UmbracoManagementClient<PagedHealthCheckGroupResponseModel>(\n {url: `/umbraco/management/api/v1/health-check-group`, method: 'GET',\n params\n },\n options);\n }\n \nconst getHealthCheckGroupByName = (\n name: string,\n options?: SecondParameter<typeof UmbracoManagementClient<HealthCheckGroupPresentationModel>>,) => {\n return UmbracoManagementClient<HealthCheckGroupPresentationModel>(\n {url: `/umbraco/management/api/v1/health-check-group/${name}`, method: 'GET'\n },\n options);\n }\n \nconst postHealthCheckGroupByNameCheck = (\n name: string,\n options?: SecondParameter<typeof UmbracoManagementClient<HealthCheckGroupWithResultResponseModel>>,) => {\n return UmbracoManagementClient<HealthCheckGroupWithResultResponseModel>(\n {url: `/umbraco/management/api/v1/health-check-group/${name}/check`, method: 'POST'\n },\n options);\n }\n \nconst postHealthCheckExecuteAction = (\n healthCheckActionRequestModel: HealthCheckActionRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<HealthCheckResultResponseModel>>,) => {\n return UmbracoManagementClient<HealthCheckResultResponseModel>(\n {url: `/umbraco/management/api/v1/health-check/execute-action`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: healthCheckActionRequestModel\n },\n options);\n }\n \n/**\n * @deprecated\n */\nconst getHelp = (\n params?: GetHelpParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedHelpPageResponseModel>>,) => {\n return UmbracoManagementClient<PagedHelpPageResponseModel>(\n {url: `/umbraco/management/api/v1/help`, method: 'GET',\n params\n },\n options);\n }\n \nconst getImagingResizeUrls = (\n params?: GetImagingResizeUrlsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaUrlInfoResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaUrlInfoResponseModel[]>(\n {url: `/umbraco/management/api/v1/imaging/resize/urls`, method: 'GET',\n params\n },\n options);\n }\n \nconst getImportAnalyze = (\n params?: GetImportAnalyzeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<EntityImportAnalysisResponseModel>>,) => {\n return UmbracoManagementClient<EntityImportAnalysisResponseModel>(\n {url: `/umbraco/management/api/v1/import/analyze`, method: 'GET',\n params\n },\n options);\n }\n \nconst getIndexer = (\n params?: GetIndexerParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIndexResponseModel>>,) => {\n return UmbracoManagementClient<PagedIndexResponseModel>(\n {url: `/umbraco/management/api/v1/indexer`, method: 'GET',\n params\n },\n options);\n }\n \nconst getIndexerByIndexName = (\n indexName: string,\n options?: SecondParameter<typeof UmbracoManagementClient<IndexResponseModel>>,) => {\n return UmbracoManagementClient<IndexResponseModel>(\n {url: `/umbraco/management/api/v1/indexer/${indexName}`, method: 'GET'\n },\n options);\n }\n \nconst postIndexerByIndexNameRebuild = (\n indexName: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/indexer/${indexName}/rebuild`, method: 'POST'\n },\n options);\n }\n \nconst getInstallSettings = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<InstallSettingsResponseModel>>,) => {\n return UmbracoManagementClient<InstallSettingsResponseModel>(\n {url: `/umbraco/management/api/v1/install/settings`, method: 'GET'\n },\n options);\n }\n \nconst postInstallSetup = (\n installRequestModel: InstallRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/install/setup`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: installRequestModel\n },\n options);\n }\n \nconst postInstallValidateDatabase = (\n databaseInstallRequestModel: DatabaseInstallRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/install/validate-database`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: databaseInstallRequestModel\n },\n options);\n }\n \nconst getItemLanguage = (\n params?: GetItemLanguageParams,\n options?: SecondParameter<typeof UmbracoManagementClient<LanguageItemResponseModel[]>>,) => {\n return UmbracoManagementClient<LanguageItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/language`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemLanguageDefault = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<LanguageItemResponseModel>>,) => {\n return UmbracoManagementClient<LanguageItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/language/default`, method: 'GET'\n },\n options);\n }\n \nconst getLanguage = (\n params?: GetLanguageParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedLanguageResponseModel>>,) => {\n return UmbracoManagementClient<PagedLanguageResponseModel>(\n {url: `/umbraco/management/api/v1/language`, method: 'GET',\n params\n },\n options);\n }\n \nconst postLanguage = (\n createLanguageRequestModel: CreateLanguageRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/language`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createLanguageRequestModel\n },\n options);\n }\n \nconst getLanguageByIsoCode = (\n isoCode: string,\n options?: SecondParameter<typeof UmbracoManagementClient<LanguageResponseModel>>,) => {\n return UmbracoManagementClient<LanguageResponseModel>(\n {url: `/umbraco/management/api/v1/language/${isoCode}`, method: 'GET'\n },\n options);\n }\n \nconst deleteLanguageByIsoCode = (\n isoCode: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/language/${isoCode}`, method: 'DELETE'\n },\n options);\n }\n \nconst putLanguageByIsoCode = (\n isoCode: string,\n updateLanguageRequestModel: UpdateLanguageRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/language/${isoCode}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateLanguageRequestModel\n },\n options);\n }\n \nconst getLogViewerLevel = (\n params?: GetLogViewerLevelParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedLoggerResponseModel>>,) => {\n return UmbracoManagementClient<PagedLoggerResponseModel>(\n {url: `/umbraco/management/api/v1/log-viewer/level`, method: 'GET',\n params\n },\n options);\n }\n \nconst getLogViewerLevelCount = (\n params?: GetLogViewerLevelCountParams,\n options?: SecondParameter<typeof UmbracoManagementClient<LogLevelCountsReponseModel>>,) => {\n return UmbracoManagementClient<LogLevelCountsReponseModel>(\n {url: `/umbraco/management/api/v1/log-viewer/level-count`, method: 'GET',\n params\n },\n options);\n }\n \nconst getLogViewerLog = (\n params?: GetLogViewerLogParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedLogMessageResponseModel>>,) => {\n return UmbracoManagementClient<PagedLogMessageResponseModel>(\n {url: `/umbraco/management/api/v1/log-viewer/log`, method: 'GET',\n params\n },\n options);\n }\n \nconst getLogViewerMessageTemplate = (\n params?: GetLogViewerMessageTemplateParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedLogTemplateResponseModel>>,) => {\n return UmbracoManagementClient<PagedLogTemplateResponseModel>(\n {url: `/umbraco/management/api/v1/log-viewer/message-template`, method: 'GET',\n params\n },\n options);\n }\n \nconst getLogViewerSavedSearch = (\n params?: GetLogViewerSavedSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedSavedLogSearchResponseModel>>,) => {\n return UmbracoManagementClient<PagedSavedLogSearchResponseModel>(\n {url: `/umbraco/management/api/v1/log-viewer/saved-search`, method: 'GET',\n params\n },\n options);\n }\n \nconst postLogViewerSavedSearch = (\n savedLogSearchRequestModel: SavedLogSearchRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/log-viewer/saved-search`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: savedLogSearchRequestModel\n },\n options);\n }\n \nconst getLogViewerSavedSearchByName = (\n name: string,\n options?: SecondParameter<typeof UmbracoManagementClient<SavedLogSearchResponseModel>>,) => {\n return UmbracoManagementClient<SavedLogSearchResponseModel>(\n {url: `/umbraco/management/api/v1/log-viewer/saved-search/${name}`, method: 'GET'\n },\n options);\n }\n \nconst deleteLogViewerSavedSearchByName = (\n name: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/log-viewer/saved-search/${name}`, method: 'DELETE'\n },\n options);\n }\n \nconst getLogViewerValidateLogsSize = (\n params?: GetLogViewerValidateLogsSizeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/log-viewer/validate-logs-size`, method: 'GET',\n params\n },\n options);\n }\n \nconst getManifestManifest = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ManifestResponseModel[]>>,) => {\n return UmbracoManagementClient<ManifestResponseModel[]>(\n {url: `/umbraco/management/api/v1/manifest/manifest`, method: 'GET'\n },\n options);\n }\n \nconst getManifestManifestPrivate = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ManifestResponseModel[]>>,) => {\n return UmbracoManagementClient<ManifestResponseModel[]>(\n {url: `/umbraco/management/api/v1/manifest/manifest/private`, method: 'GET'\n },\n options);\n }\n \nconst getManifestManifestPublic = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ManifestResponseModel[]>>,) => {\n return UmbracoManagementClient<ManifestResponseModel[]>(\n {url: `/umbraco/management/api/v1/manifest/manifest/public`, method: 'GET'\n },\n options);\n }\n \nconst getItemMediaType = (\n params?: GetItemMediaTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaTypeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaTypeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/media-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMediaTypeAllowed = (\n params?: GetItemMediaTypeAllowedParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelMediaTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelMediaTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/media-type/allowed`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMediaTypeFolders = (\n params?: GetItemMediaTypeFoldersParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelMediaTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelMediaTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/media-type/folders`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMediaTypeSearch = (\n params?: GetItemMediaTypeSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelMediaTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelMediaTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/media-type/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMediaType = (\n createMediaTypeRequestModel: CreateMediaTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMediaTypeRequestModel\n },\n options);\n }\n \nconst getMediaTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaTypeResponseModel>>,) => {\n return UmbracoManagementClient<MediaTypeResponseModel>(\n {url: `/umbraco/management/api/v1/media-type/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMediaTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMediaTypeById = (\n id: string,\n updateMediaTypeRequestModel: UpdateMediaTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMediaTypeRequestModel\n },\n options);\n }\n \nconst getMediaTypeByIdAllowedChildren = (\n id: string,\n params?: GetMediaTypeByIdAllowedChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedAllowedMediaTypeModel>>,) => {\n return UmbracoManagementClient<PagedAllowedMediaTypeModel>(\n {url: `/umbraco/management/api/v1/media-type/${id}/allowed-children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getMediaTypeByIdCompositionReferences = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaTypeCompositionResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaTypeCompositionResponseModel[]>(\n {url: `/umbraco/management/api/v1/media-type/${id}/composition-references`, method: 'GET'\n },\n options);\n }\n \nconst postMediaTypeByIdCopy = (\n id: string,\n copyMediaTypeRequestModel: CopyMediaTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/${id}/copy`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: copyMediaTypeRequestModel\n },\n options);\n }\n \nconst getMediaTypeByIdExport = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<Blob>>,) => {\n return UmbracoManagementClient<Blob>(\n {url: `/umbraco/management/api/v1/media-type/${id}/export`, method: 'GET',\n responseType: 'blob'\n },\n options);\n }\n \nconst putMediaTypeByIdImport = (\n id: string,\n importMediaTypeRequestModel: ImportMediaTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/${id}/import`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: importMediaTypeRequestModel\n },\n options);\n }\n \nconst putMediaTypeByIdMove = (\n id: string,\n moveMediaTypeRequestModel: MoveMediaTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveMediaTypeRequestModel\n },\n options);\n }\n \nconst getMediaTypeAllowedAtRoot = (\n params?: GetMediaTypeAllowedAtRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedAllowedMediaTypeModel>>,) => {\n return UmbracoManagementClient<PagedAllowedMediaTypeModel>(\n {url: `/umbraco/management/api/v1/media-type/allowed-at-root`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMediaTypeAvailableCompositions = (\n mediaTypeCompositionRequestModel: MediaTypeCompositionRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<AvailableMediaTypeCompositionResponseModel[]>>,) => {\n return UmbracoManagementClient<AvailableMediaTypeCompositionResponseModel[]>(\n {url: `/umbraco/management/api/v1/media-type/available-compositions`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: mediaTypeCompositionRequestModel\n },\n options);\n }\n \nconst getMediaTypeConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<MediaTypeConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<MediaTypeConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/media-type/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postMediaTypeFolder = (\n createFolderRequestModel: CreateFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createFolderRequestModel\n },\n options);\n }\n \nconst getMediaTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<FolderResponseModel>>,) => {\n return UmbracoManagementClient<FolderResponseModel>(\n {url: `/umbraco/management/api/v1/media-type/folder/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMediaTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/folder/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMediaTypeFolderById = (\n id: string,\n updateFolderResponseModel: UpdateFolderResponseModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/folder/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateFolderResponseModel\n },\n options);\n }\n \nconst postMediaTypeImport = (\n importMediaTypeRequestModel: ImportMediaTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media-type/import`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: importMediaTypeRequestModel\n },\n options);\n }\n \nconst getTreeMediaTypeAncestors = (\n params?: GetTreeMediaTypeAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaTypeTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaTypeTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/media-type/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaTypeChildren = (\n params?: GetTreeMediaTypeChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/media-type/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaTypeRoot = (\n params?: GetTreeMediaTypeRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/media-type/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaTypeSiblings = (\n params?: GetTreeMediaTypeSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetMediaTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetMediaTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/media-type/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getCollectionMedia = (\n params?: GetCollectionMediaParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaCollectionResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaCollectionResponseModel>(\n {url: `/umbraco/management/api/v1/collection/media`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMedia = (\n params?: GetItemMediaParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/media`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMediaSearch = (\n params?: GetItemMediaSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelMediaItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelMediaItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/media/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMedia = (\n createMediaRequestModel: CreateMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMediaRequestModel\n },\n options);\n }\n \nconst getMediaById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaResponseModel>>,) => {\n return UmbracoManagementClient<MediaResponseModel>(\n {url: `/umbraco/management/api/v1/media/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMediaById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMediaById = (\n id: string,\n updateMediaRequestModel: UpdateMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMediaRequestModel\n },\n options);\n }\n \nconst getMediaByIdAuditLog = (\n id: string,\n params?: GetMediaByIdAuditLogParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedAuditLogResponseModel>>,) => {\n return UmbracoManagementClient<PagedAuditLogResponseModel>(\n {url: `/umbraco/management/api/v1/media/${id}/audit-log`, method: 'GET',\n params\n },\n options);\n }\n \nconst putMediaByIdMove = (\n id: string,\n moveMediaRequestModel: MoveMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveMediaRequestModel\n },\n options);\n }\n \nconst putMediaByIdMoveToRecycleBin = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/${id}/move-to-recycle-bin`, method: 'PUT'\n },\n options);\n }\n \nconst getMediaByIdReferencedBy = (\n id: string,\n params?: GetMediaByIdReferencedByParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIReferenceResponseModel>>,) => {\n return UmbracoManagementClient<PagedIReferenceResponseModel>(\n {url: `/umbraco/management/api/v1/media/${id}/referenced-by`, method: 'GET',\n params\n },\n options);\n }\n \nconst getMediaByIdReferencedDescendants = (\n id: string,\n params?: GetMediaByIdReferencedDescendantsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedReferenceByIdModel>>,) => {\n return UmbracoManagementClient<PagedReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/media/${id}/referenced-descendants`, method: 'GET',\n params\n },\n options);\n }\n \nconst putMediaByIdValidate = (\n id: string,\n updateMediaRequestModel: UpdateMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/${id}/validate`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMediaRequestModel\n },\n options);\n }\n \nconst getMediaAreReferenced = (\n params?: GetMediaAreReferencedParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedReferenceByIdModel>>,) => {\n return UmbracoManagementClient<PagedReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/media/are-referenced`, method: 'GET',\n params\n },\n options);\n }\n \n/**\n * @deprecated\n */\nconst getMediaConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<MediaConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<MediaConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/media/configuration`, method: 'GET'\n },\n options);\n }\n \nconst putMediaSort = (\n sortingRequestModel: SortingRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/sort`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: sortingRequestModel\n },\n options);\n }\n \nconst getMediaUrls = (\n params?: GetMediaUrlsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaUrlInfoResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaUrlInfoResponseModel[]>(\n {url: `/umbraco/management/api/v1/media/urls`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMediaValidate = (\n createMediaRequestModel: CreateMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/media/validate`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMediaRequestModel\n },\n options);\n }\n \nconst deleteRecycleBinMedia = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/recycle-bin/media`, method: 'DELETE'\n },\n options);\n }\n \nconst deleteRecycleBinMediaById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst getRecycleBinMediaByIdOriginalParent = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<ReferenceByIdModel>>,) => {\n return UmbracoManagementClient<ReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/${id}/original-parent`, method: 'GET'\n },\n options);\n }\n \nconst putRecycleBinMediaByIdRestore = (\n id: string,\n moveMediaRequestModel: MoveMediaRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/${id}/restore`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveMediaRequestModel\n },\n options);\n }\n \nconst getRecycleBinMediaChildren = (\n params?: GetRecycleBinMediaChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaRecycleBinItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaRecycleBinItemResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRecycleBinMediaReferencedBy = (\n params?: GetRecycleBinMediaReferencedByParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIReferenceResponseModel>>,) => {\n return UmbracoManagementClient<PagedIReferenceResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/referenced-by`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRecycleBinMediaRoot = (\n params?: GetRecycleBinMediaRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaRecycleBinItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaRecycleBinItemResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRecycleBinMediaSiblings = (\n params?: GetRecycleBinMediaSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetMediaRecycleBinItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetMediaRecycleBinItemResponseModel>(\n {url: `/umbraco/management/api/v1/recycle-bin/media/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaAncestors = (\n params?: GetTreeMediaAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MediaTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MediaTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/media/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaChildren = (\n params?: GetTreeMediaChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/media/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaRoot = (\n params?: GetTreeMediaRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMediaTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMediaTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/media/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMediaSiblings = (\n params?: GetTreeMediaSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetMediaTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetMediaTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/media/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMemberGroup = (\n params?: GetItemMemberGroupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberGroupItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MemberGroupItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/member-group`, method: 'GET',\n params\n },\n options);\n }\n \nconst getMemberGroup = (\n params?: GetMemberGroupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMemberGroupResponseModel>>,) => {\n return UmbracoManagementClient<PagedMemberGroupResponseModel>(\n {url: `/umbraco/management/api/v1/member-group`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMemberGroup = (\n createMemberGroupRequestModel: CreateMemberGroupRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-group`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMemberGroupRequestModel\n },\n options);\n }\n \nconst getMemberGroupById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberGroupResponseModel>>,) => {\n return UmbracoManagementClient<MemberGroupResponseModel>(\n {url: `/umbraco/management/api/v1/member-group/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMemberGroupById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-group/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMemberGroupById = (\n id: string,\n updateMemberGroupRequestModel: UpdateMemberGroupRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-group/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMemberGroupRequestModel\n },\n options);\n }\n \nconst getTreeMemberGroupRoot = (\n params?: GetTreeMemberGroupRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/member-group/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMemberType = (\n params?: GetItemMemberTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberTypeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MemberTypeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/member-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMemberTypeSearch = (\n params?: GetItemMemberTypeSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelMemberTypeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelMemberTypeItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/member-type/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMemberType = (\n createMemberTypeRequestModel: CreateMemberTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMemberTypeRequestModel\n },\n options);\n }\n \nconst getMemberTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberTypeResponseModel>>,) => {\n return UmbracoManagementClient<MemberTypeResponseModel>(\n {url: `/umbraco/management/api/v1/member-type/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMemberTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMemberTypeById = (\n id: string,\n updateMemberTypeRequestModel: UpdateMemberTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMemberTypeRequestModel\n },\n options);\n }\n \nconst getMemberTypeByIdCompositionReferences = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberTypeCompositionResponseModel[]>>,) => {\n return UmbracoManagementClient<MemberTypeCompositionResponseModel[]>(\n {url: `/umbraco/management/api/v1/member-type/${id}/composition-references`, method: 'GET'\n },\n options);\n }\n \nconst postMemberTypeByIdCopy = (\n id: string,\n copyMemberTypeRequestModel: CopyMemberTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/${id}/copy`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: copyMemberTypeRequestModel\n },\n options);\n }\n \nconst getMemberTypeByIdExport = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<Blob>>,) => {\n return UmbracoManagementClient<Blob>(\n {url: `/umbraco/management/api/v1/member-type/${id}/export`, method: 'GET',\n responseType: 'blob'\n },\n options);\n }\n \nconst putMemberTypeByIdImport = (\n id: string,\n importMemberTypeRequestModel: ImportMemberTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/${id}/import`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: importMemberTypeRequestModel\n },\n options);\n }\n \nconst putMemberTypeByIdMove = (\n id: string,\n moveMemberTypeRequestModel: MoveMemberTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/${id}/move`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: moveMemberTypeRequestModel\n },\n options);\n }\n \nconst postMemberTypeAvailableCompositions = (\n memberTypeCompositionRequestModel: MemberTypeCompositionRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<AvailableMemberTypeCompositionResponseModel[]>>,) => {\n return UmbracoManagementClient<AvailableMemberTypeCompositionResponseModel[]>(\n {url: `/umbraco/management/api/v1/member-type/available-compositions`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: memberTypeCompositionRequestModel\n },\n options);\n }\n \nconst getMemberTypeConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<MemberTypeConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<MemberTypeConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/member-type/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postMemberTypeFolder = (\n createFolderRequestModel: CreateFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createFolderRequestModel\n },\n options);\n }\n \nconst getMemberTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<FolderResponseModel>>,) => {\n return UmbracoManagementClient<FolderResponseModel>(\n {url: `/umbraco/management/api/v1/member-type/folder/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMemberTypeFolderById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/folder/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMemberTypeFolderById = (\n id: string,\n updateFolderResponseModel: UpdateFolderResponseModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/folder/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateFolderResponseModel\n },\n options);\n }\n \nconst postMemberTypeImport = (\n importMemberTypeRequestModel: ImportMemberTypeRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member-type/import`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: importMemberTypeRequestModel\n },\n options);\n }\n \nconst getTreeMemberTypeAncestors = (\n params?: GetTreeMemberTypeAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberTypeTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MemberTypeTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/member-type/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMemberTypeChildren = (\n params?: GetTreeMemberTypeChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMemberTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMemberTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/member-type/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMemberTypeRoot = (\n params?: GetTreeMemberTypeRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMemberTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedMemberTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/member-type/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeMemberTypeSiblings = (\n params?: GetTreeMemberTypeSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetMemberTypeTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetMemberTypeTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/member-type/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getFilterMember = (\n params?: GetFilterMemberParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedMemberResponseModel>>,) => {\n return UmbracoManagementClient<PagedMemberResponseModel>(\n {url: `/umbraco/management/api/v1/filter/member`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMember = (\n params?: GetItemMemberParams,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberItemResponseModel[]>>,) => {\n return UmbracoManagementClient<MemberItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/member`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemMemberSearch = (\n params?: GetItemMemberSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelMemberItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelMemberItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/member/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst postMember = (\n createMemberRequestModel: CreateMemberRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMemberRequestModel\n },\n options);\n }\n \nconst getMemberById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<MemberResponseModel>>,) => {\n return UmbracoManagementClient<MemberResponseModel>(\n {url: `/umbraco/management/api/v1/member/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteMemberById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putMemberById = (\n id: string,\n updateMemberRequestModel: UpdateMemberRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMemberRequestModel\n },\n options);\n }\n \nconst getMemberByIdReferencedBy = (\n id: string,\n params?: GetMemberByIdReferencedByParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedIReferenceResponseModel>>,) => {\n return UmbracoManagementClient<PagedIReferenceResponseModel>(\n {url: `/umbraco/management/api/v1/member/${id}/referenced-by`, method: 'GET',\n params\n },\n options);\n }\n \nconst getMemberByIdReferencedDescendants = (\n id: string,\n params?: GetMemberByIdReferencedDescendantsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedReferenceByIdModel>>,) => {\n return UmbracoManagementClient<PagedReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/member/${id}/referenced-descendants`, method: 'GET',\n params\n },\n options);\n }\n \nconst putMemberByIdValidate = (\n id: string,\n updateMemberRequestModel: UpdateMemberRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member/${id}/validate`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateMemberRequestModel\n },\n options);\n }\n \nconst getMemberAreReferenced = (\n params?: GetMemberAreReferencedParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedReferenceByIdModel>>,) => {\n return UmbracoManagementClient<PagedReferenceByIdModel>(\n {url: `/umbraco/management/api/v1/member/are-referenced`, method: 'GET',\n params\n },\n options);\n }\n \nconst getMemberConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<MemberConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<MemberConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/member/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postMemberValidate = (\n createMemberRequestModel: CreateMemberRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/member/validate`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createMemberRequestModel\n },\n options);\n }\n \nconst postModelsBuilderBuild = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/models-builder/build`, method: 'POST'\n },\n options);\n }\n \nconst getModelsBuilderDashboard = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ModelsBuilderResponseModel>>,) => {\n return UmbracoManagementClient<ModelsBuilderResponseModel>(\n {url: `/umbraco/management/api/v1/models-builder/dashboard`, method: 'GET'\n },\n options);\n }\n \nconst getModelsBuilderStatus = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<OutOfDateStatusResponseModel>>,) => {\n return UmbracoManagementClient<OutOfDateStatusResponseModel>(\n {url: `/umbraco/management/api/v1/models-builder/status`, method: 'GET'\n },\n options);\n }\n \nconst getNewsDashboard = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<NewsDashboardResponseModel>>,) => {\n return UmbracoManagementClient<NewsDashboardResponseModel>(\n {url: `/umbraco/management/api/v1/news-dashboard`, method: 'GET'\n },\n options);\n }\n \nconst getObjectTypes = (\n params?: GetObjectTypesParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedObjectTypeResponseModel>>,) => {\n return UmbracoManagementClient<PagedObjectTypeResponseModel>(\n {url: `/umbraco/management/api/v1/object-types`, method: 'GET',\n params\n },\n options);\n }\n \nconst getOembedQuery = (\n params?: GetOembedQueryParams,\n options?: SecondParameter<typeof UmbracoManagementClient<OEmbedResponseModel>>,) => {\n return UmbracoManagementClient<OEmbedResponseModel>(\n {url: `/umbraco/management/api/v1/oembed/query`, method: 'GET',\n params\n },\n options);\n }\n \nconst postPackageByNameRunMigration = (\n name: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/package/${name}/run-migration`, method: 'POST'\n },\n options);\n }\n \nconst getPackageConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<PackageConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<PackageConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/package/configuration`, method: 'GET'\n },\n options);\n }\n \nconst getPackageCreated = (\n params?: GetPackageCreatedParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedPackageDefinitionResponseModel>>,) => {\n return UmbracoManagementClient<PagedPackageDefinitionResponseModel>(\n {url: `/umbraco/management/api/v1/package/created`, method: 'GET',\n params\n },\n options);\n }\n \nconst postPackageCreated = (\n createPackageRequestModel: CreatePackageRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/package/created`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createPackageRequestModel\n },\n options);\n }\n \nconst getPackageCreatedById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PackageDefinitionResponseModel>>,) => {\n return UmbracoManagementClient<PackageDefinitionResponseModel>(\n {url: `/umbraco/management/api/v1/package/created/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deletePackageCreatedById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/package/created/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putPackageCreatedById = (\n id: string,\n updatePackageRequestModel: NonReadonly<UpdatePackageRequestModel>,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/package/created/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updatePackageRequestModel\n },\n options);\n }\n \nconst getPackageCreatedByIdDownload = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<Blob>>,) => {\n return UmbracoManagementClient<Blob>(\n {url: `/umbraco/management/api/v1/package/created/${id}/download`, method: 'GET',\n responseType: 'blob'\n },\n options);\n }\n \nconst getPackageMigrationStatus = (\n params?: GetPackageMigrationStatusParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedPackageMigrationStatusResponseModel>>,) => {\n return UmbracoManagementClient<PagedPackageMigrationStatusResponseModel>(\n {url: `/umbraco/management/api/v1/package/migration-status`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemPartialView = (\n params?: GetItemPartialViewParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PartialViewItemResponseModel[]>>,) => {\n return UmbracoManagementClient<PartialViewItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/partial-view`, method: 'GET',\n params\n },\n options);\n }\n \nconst postPartialView = (\n createPartialViewRequestModel: CreatePartialViewRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/partial-view`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createPartialViewRequestModel\n },\n options);\n }\n \nconst getPartialViewByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PartialViewResponseModel>>,) => {\n return UmbracoManagementClient<PartialViewResponseModel>(\n {url: `/umbraco/management/api/v1/partial-view/${path}`, method: 'GET'\n },\n options);\n }\n \nconst deletePartialViewByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/partial-view/${path}`, method: 'DELETE'\n },\n options);\n }\n \nconst putPartialViewByPath = (\n path: string,\n updatePartialViewRequestModel: UpdatePartialViewRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/partial-view/${path}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updatePartialViewRequestModel\n },\n options);\n }\n \nconst putPartialViewByPathRename = (\n path: string,\n renamePartialViewRequestModel: RenamePartialViewRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/partial-view/${path}/rename`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: renamePartialViewRequestModel\n },\n options);\n }\n \nconst postPartialViewFolder = (\n createPartialViewFolderRequestModel: CreatePartialViewFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/partial-view/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createPartialViewFolderRequestModel\n },\n options);\n }\n \nconst getPartialViewFolderByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PartialViewFolderResponseModel>>,) => {\n return UmbracoManagementClient<PartialViewFolderResponseModel>(\n {url: `/umbraco/management/api/v1/partial-view/folder/${path}`, method: 'GET'\n },\n options);\n }\n \nconst deletePartialViewFolderByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/partial-view/folder/${path}`, method: 'DELETE'\n },\n options);\n }\n \nconst getPartialViewSnippet = (\n params?: GetPartialViewSnippetParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedPartialViewSnippetItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedPartialViewSnippetItemResponseModel>(\n {url: `/umbraco/management/api/v1/partial-view/snippet`, method: 'GET',\n params\n },\n options);\n }\n \nconst getPartialViewSnippetById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<PartialViewSnippetResponseModel>>,) => {\n return UmbracoManagementClient<PartialViewSnippetResponseModel>(\n {url: `/umbraco/management/api/v1/partial-view/snippet/${id}`, method: 'GET'\n },\n options);\n }\n \nconst getTreePartialViewAncestors = (\n params?: GetTreePartialViewAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>>,) => {\n return UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>(\n {url: `/umbraco/management/api/v1/tree/partial-view/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreePartialViewChildren = (\n params?: GetTreePartialViewChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/partial-view/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreePartialViewRoot = (\n params?: GetTreePartialViewRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/partial-view/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreePartialViewSiblings = (\n params?: GetTreePartialViewSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<SubsetFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/partial-view/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst deletePreview = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/preview`, method: 'DELETE'\n },\n options);\n }\n \n/**\n * @deprecated\n */\nconst postPreview = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/preview`, method: 'POST'\n },\n options);\n }\n \nconst getProfilingStatus = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ProfilingStatusResponseModel>>,) => {\n return UmbracoManagementClient<ProfilingStatusResponseModel>(\n {url: `/umbraco/management/api/v1/profiling/status`, method: 'GET'\n },\n options);\n }\n \nconst putProfilingStatus = (\n profilingStatusRequestModel: ProfilingStatusRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/profiling/status`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: profilingStatusRequestModel\n },\n options);\n }\n \nconst getPropertyTypeIsUsed = (\n params?: GetPropertyTypeIsUsedParams,\n options?: SecondParameter<typeof UmbracoManagementClient<boolean>>,) => {\n return UmbracoManagementClient<boolean>(\n {url: `/umbraco/management/api/v1/property-type/is-used`, method: 'GET',\n params\n },\n options);\n }\n \nconst postPublishedCacheRebuild = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/published-cache/rebuild`, method: 'POST'\n },\n options);\n }\n \nconst getPublishedCacheRebuildStatus = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<RebuildStatusModel>>,) => {\n return UmbracoManagementClient<RebuildStatusModel>(\n {url: `/umbraco/management/api/v1/published-cache/rebuild/status`, method: 'GET'\n },\n options);\n }\n \nconst postPublishedCacheReload = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/published-cache/reload`, method: 'POST'\n },\n options);\n }\n \nconst getRedirectManagement = (\n params?: GetRedirectManagementParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedRedirectUrlResponseModel>>,) => {\n return UmbracoManagementClient<PagedRedirectUrlResponseModel>(\n {url: `/umbraco/management/api/v1/redirect-management`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRedirectManagementById = (\n id: string,\n params?: GetRedirectManagementByIdParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedRedirectUrlResponseModel>>,) => {\n return UmbracoManagementClient<PagedRedirectUrlResponseModel>(\n {url: `/umbraco/management/api/v1/redirect-management/${id}`, method: 'GET',\n params\n },\n options);\n }\n \nconst deleteRedirectManagementById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/redirect-management/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst getRedirectManagementStatus = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<RedirectUrlStatusResponseModel>>,) => {\n return UmbracoManagementClient<RedirectUrlStatusResponseModel>(\n {url: `/umbraco/management/api/v1/redirect-management/status`, method: 'GET'\n },\n options);\n }\n \nconst postRedirectManagementStatus = (\n params?: PostRedirectManagementStatusParams,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/redirect-management/status`, method: 'POST',\n params\n },\n options);\n }\n \nconst getItemRelationType = (\n params?: GetItemRelationTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<RelationTypeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<RelationTypeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/relation-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRelationType = (\n params?: GetRelationTypeParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedRelationTypeResponseModel>>,) => {\n return UmbracoManagementClient<PagedRelationTypeResponseModel>(\n {url: `/umbraco/management/api/v1/relation-type`, method: 'GET',\n params\n },\n options);\n }\n \nconst getRelationTypeById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<RelationTypeResponseModel>>,) => {\n return UmbracoManagementClient<RelationTypeResponseModel>(\n {url: `/umbraco/management/api/v1/relation-type/${id}`, method: 'GET'\n },\n options);\n }\n \nconst getRelationByRelationTypeId = (\n id: string,\n params?: GetRelationByRelationTypeIdParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedRelationResponseModel>>,) => {\n return UmbracoManagementClient<PagedRelationResponseModel>(\n {url: `/umbraco/management/api/v1/relation/type/${id}`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemScript = (\n params?: GetItemScriptParams,\n options?: SecondParameter<typeof UmbracoManagementClient<ScriptItemResponseModel[]>>,) => {\n return UmbracoManagementClient<ScriptItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/script`, method: 'GET',\n params\n },\n options);\n }\n \nconst postScript = (\n createScriptRequestModel: CreateScriptRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/script`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createScriptRequestModel\n },\n options);\n }\n \nconst getScriptByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<ScriptResponseModel>>,) => {\n return UmbracoManagementClient<ScriptResponseModel>(\n {url: `/umbraco/management/api/v1/script/${path}`, method: 'GET'\n },\n options);\n }\n \nconst deleteScriptByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/script/${path}`, method: 'DELETE'\n },\n options);\n }\n \nconst putScriptByPath = (\n path: string,\n updateScriptRequestModel: UpdateScriptRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/script/${path}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateScriptRequestModel\n },\n options);\n }\n \nconst putScriptByPathRename = (\n path: string,\n renameScriptRequestModel: RenameScriptRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/script/${path}/rename`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: renameScriptRequestModel\n },\n options);\n }\n \nconst postScriptFolder = (\n createScriptFolderRequestModel: CreateScriptFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/script/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createScriptFolderRequestModel\n },\n options);\n }\n \nconst getScriptFolderByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<ScriptFolderResponseModel>>,) => {\n return UmbracoManagementClient<ScriptFolderResponseModel>(\n {url: `/umbraco/management/api/v1/script/folder/${path}`, method: 'GET'\n },\n options);\n }\n \nconst deleteScriptFolderByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/script/folder/${path}`, method: 'DELETE'\n },\n options);\n }\n \nconst getTreeScriptAncestors = (\n params?: GetTreeScriptAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>>,) => {\n return UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>(\n {url: `/umbraco/management/api/v1/tree/script/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeScriptChildren = (\n params?: GetTreeScriptChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/script/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeScriptRoot = (\n params?: GetTreeScriptRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/script/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeScriptSiblings = (\n params?: GetTreeScriptSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<SubsetFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/script/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getSearcher = (\n params?: GetSearcherParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedSearcherResponseModel>>,) => {\n return UmbracoManagementClient<PagedSearcherResponseModel>(\n {url: `/umbraco/management/api/v1/searcher`, method: 'GET',\n params\n },\n options);\n }\n \nconst getSearcherBySearcherNameQuery = (\n searcherName: string,\n params?: GetSearcherBySearcherNameQueryParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedSearchResultResponseModel>>,) => {\n return UmbracoManagementClient<PagedSearchResultResponseModel>(\n {url: `/umbraco/management/api/v1/searcher/${searcherName}/query`, method: 'GET',\n params\n },\n options);\n }\n \nconst getSecurityConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<SecurityConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<SecurityConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/security/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postSecurityForgotPassword = (\n resetPasswordRequestModel: ResetPasswordRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/security/forgot-password`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: resetPasswordRequestModel\n },\n options);\n }\n \nconst postSecurityForgotPasswordReset = (\n resetPasswordTokenRequestModel: ResetPasswordTokenRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/security/forgot-password/reset`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: resetPasswordTokenRequestModel\n },\n options);\n }\n \nconst postSecurityForgotPasswordVerify = (\n verifyResetPasswordTokenRequestModel: VerifyResetPasswordTokenRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<VerifyResetPasswordResponseModel>>,) => {\n return UmbracoManagementClient<VerifyResetPasswordResponseModel>(\n {url: `/umbraco/management/api/v1/security/forgot-password/verify`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: verifyResetPasswordTokenRequestModel\n },\n options);\n }\n \nconst getSegment = (\n params?: GetSegmentParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedSegmentResponseModel>>,) => {\n return UmbracoManagementClient<PagedSegmentResponseModel>(\n {url: `/umbraco/management/api/v1/segment`, method: 'GET',\n params\n },\n options);\n }\n \nconst getServerConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ServerConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<ServerConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/server/configuration`, method: 'GET'\n },\n options);\n }\n \nconst getServerInformation = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ServerInformationResponseModel>>,) => {\n return UmbracoManagementClient<ServerInformationResponseModel>(\n {url: `/umbraco/management/api/v1/server/information`, method: 'GET'\n },\n options);\n }\n \nconst getServerStatus = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ServerStatusResponseModel>>,) => {\n return UmbracoManagementClient<ServerStatusResponseModel>(\n {url: `/umbraco/management/api/v1/server/status`, method: 'GET'\n },\n options);\n }\n \nconst getServerTroubleshooting = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<ServerTroubleshootingResponseModel>>,) => {\n return UmbracoManagementClient<ServerTroubleshootingResponseModel>(\n {url: `/umbraco/management/api/v1/server/troubleshooting`, method: 'GET'\n },\n options);\n }\n \n/**\n * @deprecated\n */\nconst getServerUpgradeCheck = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<UpgradeCheckResponseModel>>,) => {\n return UmbracoManagementClient<UpgradeCheckResponseModel>(\n {url: `/umbraco/management/api/v1/server/upgrade-check`, method: 'GET'\n },\n options);\n }\n \nconst getItemStaticFile = (\n params?: GetItemStaticFileParams,\n options?: SecondParameter<typeof UmbracoManagementClient<StaticFileItemResponseModel[]>>,) => {\n return UmbracoManagementClient<StaticFileItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/static-file`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeStaticFileAncestors = (\n params?: GetTreeStaticFileAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>>,) => {\n return UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>(\n {url: `/umbraco/management/api/v1/tree/static-file/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeStaticFileChildren = (\n params?: GetTreeStaticFileChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/static-file/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeStaticFileRoot = (\n params?: GetTreeStaticFileRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/static-file/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemStylesheet = (\n params?: GetItemStylesheetParams,\n options?: SecondParameter<typeof UmbracoManagementClient<StylesheetItemResponseModel[]>>,) => {\n return UmbracoManagementClient<StylesheetItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/stylesheet`, method: 'GET',\n params\n },\n options);\n }\n \nconst postStylesheet = (\n createStylesheetRequestModel: CreateStylesheetRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/stylesheet`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createStylesheetRequestModel\n },\n options);\n }\n \nconst getStylesheetByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<StylesheetResponseModel>>,) => {\n return UmbracoManagementClient<StylesheetResponseModel>(\n {url: `/umbraco/management/api/v1/stylesheet/${path}`, method: 'GET'\n },\n options);\n }\n \nconst deleteStylesheetByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/stylesheet/${path}`, method: 'DELETE'\n },\n options);\n }\n \nconst putStylesheetByPath = (\n path: string,\n updateStylesheetRequestModel: UpdateStylesheetRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/stylesheet/${path}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateStylesheetRequestModel\n },\n options);\n }\n \nconst putStylesheetByPathRename = (\n path: string,\n renameStylesheetRequestModel: RenameStylesheetRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/stylesheet/${path}/rename`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: renameStylesheetRequestModel\n },\n options);\n }\n \nconst postStylesheetFolder = (\n createStylesheetFolderRequestModel: CreateStylesheetFolderRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/stylesheet/folder`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createStylesheetFolderRequestModel\n },\n options);\n }\n \nconst getStylesheetFolderByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<StylesheetFolderResponseModel>>,) => {\n return UmbracoManagementClient<StylesheetFolderResponseModel>(\n {url: `/umbraco/management/api/v1/stylesheet/folder/${path}`, method: 'GET'\n },\n options);\n }\n \nconst deleteStylesheetFolderByPath = (\n path: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/stylesheet/folder/${path}`, method: 'DELETE'\n },\n options);\n }\n \nconst getTreeStylesheetAncestors = (\n params?: GetTreeStylesheetAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>>,) => {\n return UmbracoManagementClient<FileSystemTreeItemPresentationModel[]>(\n {url: `/umbraco/management/api/v1/tree/stylesheet/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeStylesheetChildren = (\n params?: GetTreeStylesheetChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/stylesheet/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeStylesheetRoot = (\n params?: GetTreeStylesheetRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<PagedFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/stylesheet/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeStylesheetSiblings = (\n params?: GetTreeStylesheetSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetFileSystemTreeItemPresentationModel>>,) => {\n return UmbracoManagementClient<SubsetFileSystemTreeItemPresentationModel>(\n {url: `/umbraco/management/api/v1/tree/stylesheet/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTag = (\n params?: GetTagParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedTagResponseModel>>,) => {\n return UmbracoManagementClient<PagedTagResponseModel>(\n {url: `/umbraco/management/api/v1/tag`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTelemetry = (\n params?: GetTelemetryParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedTelemetryResponseModel>>,) => {\n return UmbracoManagementClient<PagedTelemetryResponseModel>(\n {url: `/umbraco/management/api/v1/telemetry`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTelemetryLevel = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<TelemetryResponseModel>>,) => {\n return UmbracoManagementClient<TelemetryResponseModel>(\n {url: `/umbraco/management/api/v1/telemetry/level`, method: 'GET'\n },\n options);\n }\n \nconst postTelemetryLevel = (\n telemetryRequestModel: TelemetryRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/telemetry/level`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: telemetryRequestModel\n },\n options);\n }\n \nconst getItemTemplate = (\n params?: GetItemTemplateParams,\n options?: SecondParameter<typeof UmbracoManagementClient<TemplateItemResponseModel[]>>,) => {\n return UmbracoManagementClient<TemplateItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/template`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemTemplateSearch = (\n params?: GetItemTemplateSearchParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedModelTemplateItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedModelTemplateItemResponseModel>(\n {url: `/umbraco/management/api/v1/item/template/search`, method: 'GET',\n params\n },\n options);\n }\n \nconst postTemplate = (\n createTemplateRequestModel: CreateTemplateRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/template`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createTemplateRequestModel\n },\n options);\n }\n \nconst getTemplateById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<TemplateResponseModel>>,) => {\n return UmbracoManagementClient<TemplateResponseModel>(\n {url: `/umbraco/management/api/v1/template/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteTemplateById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/template/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putTemplateById = (\n id: string,\n updateTemplateRequestModel: UpdateTemplateRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/template/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateTemplateRequestModel\n },\n options);\n }\n \nconst getTemplateConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<TemplateConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<TemplateConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/template/configuration`, method: 'GET'\n },\n options);\n }\n \nconst postTemplateQueryExecute = (\n templateQueryExecuteModel: TemplateQueryExecuteModel,\n options?: SecondParameter<typeof UmbracoManagementClient<TemplateQueryResultResponseModel>>,) => {\n return UmbracoManagementClient<TemplateQueryResultResponseModel>(\n {url: `/umbraco/management/api/v1/template/query/execute`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: templateQueryExecuteModel\n },\n options);\n }\n \nconst getTemplateQuerySettings = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<TemplateQuerySettingsResponseModel>>,) => {\n return UmbracoManagementClient<TemplateQuerySettingsResponseModel>(\n {url: `/umbraco/management/api/v1/template/query/settings`, method: 'GET'\n },\n options);\n }\n \nconst getTreeTemplateAncestors = (\n params?: GetTreeTemplateAncestorsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<NamedEntityTreeItemResponseModel[]>>,) => {\n return UmbracoManagementClient<NamedEntityTreeItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/tree/template/ancestors`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeTemplateChildren = (\n params?: GetTreeTemplateChildrenParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/template/children`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeTemplateRoot = (\n params?: GetTreeTemplateRootParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<PagedNamedEntityTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/template/root`, method: 'GET',\n params\n },\n options);\n }\n \nconst getTreeTemplateSiblings = (\n params?: GetTreeTemplateSiblingsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<SubsetNamedEntityTreeItemResponseModel>>,) => {\n return UmbracoManagementClient<SubsetNamedEntityTreeItemResponseModel>(\n {url: `/umbraco/management/api/v1/tree/template/siblings`, method: 'GET',\n params\n },\n options);\n }\n \nconst postUpgradeAuthorize = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/upgrade/authorize`, method: 'POST'\n },\n options);\n }\n \nconst getUpgradeSettings = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<UpgradeSettingsResponseModel>>,) => {\n return UmbracoManagementClient<UpgradeSettingsResponseModel>(\n {url: `/umbraco/management/api/v1/upgrade/settings`, method: 'GET'\n },\n options);\n }\n \nconst postUserData = (\n createUserDataRequestModel: CreateUserDataRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-data`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createUserDataRequestModel\n },\n options);\n }\n \nconst getUserData = (\n params?: GetUserDataParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedUserDataResponseModel>>,) => {\n return UmbracoManagementClient<PagedUserDataResponseModel>(\n {url: `/umbraco/management/api/v1/user-data`, method: 'GET',\n params\n },\n options);\n }\n \nconst putUserData = (\n updateUserDataRequestModel: UpdateUserDataRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-data`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateUserDataRequestModel\n },\n options);\n }\n \nconst getUserDataById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<UserDataModel>>,) => {\n return UmbracoManagementClient<UserDataModel>(\n {url: `/umbraco/management/api/v1/user-data/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteUserDataById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-data/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst getFilterUserGroup = (\n params?: GetFilterUserGroupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedUserGroupResponseModel>>,) => {\n return UmbracoManagementClient<PagedUserGroupResponseModel>(\n {url: `/umbraco/management/api/v1/filter/user-group`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemUserGroup = (\n params?: GetItemUserGroupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<UserGroupItemResponseModel[]>>,) => {\n return UmbracoManagementClient<UserGroupItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/user-group`, method: 'GET',\n params\n },\n options);\n }\n \nconst deleteUserGroup = (\n deleteUserGroupsRequestModel: DeleteUserGroupsRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-group`, method: 'DELETE',\n headers: {'Content-Type': 'application/json', },\n data: deleteUserGroupsRequestModel\n },\n options);\n }\n \nconst postUserGroup = (\n createUserGroupRequestModel: CreateUserGroupRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-group`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createUserGroupRequestModel\n },\n options);\n }\n \nconst getUserGroup = (\n params?: GetUserGroupParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedUserGroupResponseModel>>,) => {\n return UmbracoManagementClient<PagedUserGroupResponseModel>(\n {url: `/umbraco/management/api/v1/user-group`, method: 'GET',\n params\n },\n options);\n }\n \nconst getUserGroupById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<UserGroupResponseModel>>,) => {\n return UmbracoManagementClient<UserGroupResponseModel>(\n {url: `/umbraco/management/api/v1/user-group/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteUserGroupById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-group/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putUserGroupById = (\n id: string,\n updateUserGroupRequestModel: UpdateUserGroupRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-group/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateUserGroupRequestModel\n },\n options);\n }\n \nconst deleteUserGroupByIdUsers = (\n id: string,\n referenceByIdModel: ReferenceByIdModel[],\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-group/${id}/users`, method: 'DELETE',\n headers: {'Content-Type': 'application/json', },\n data: referenceByIdModel\n },\n options);\n }\n \nconst postUserGroupByIdUsers = (\n id: string,\n referenceByIdModel: ReferenceByIdModel[],\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user-group/${id}/users`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: referenceByIdModel\n },\n options);\n }\n \nconst getFilterUser = (\n params?: GetFilterUserParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedUserResponseModel>>,) => {\n return UmbracoManagementClient<PagedUserResponseModel>(\n {url: `/umbraco/management/api/v1/filter/user`, method: 'GET',\n params\n },\n options);\n }\n \nconst getItemUser = (\n params?: GetItemUserParams,\n options?: SecondParameter<typeof UmbracoManagementClient<UserItemResponseModel[]>>,) => {\n return UmbracoManagementClient<UserItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/user`, method: 'GET',\n params\n },\n options);\n }\n \nconst postUser = (\n createUserRequestModel: CreateUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createUserRequestModel\n },\n options);\n }\n \nconst deleteUser = (\n deleteUsersRequestModel: DeleteUsersRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user`, method: 'DELETE',\n headers: {'Content-Type': 'application/json', },\n data: deleteUsersRequestModel\n },\n options);\n }\n \nconst getUser = (\n params?: GetUserParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedUserResponseModel>>,) => {\n return UmbracoManagementClient<PagedUserResponseModel>(\n {url: `/umbraco/management/api/v1/user`, method: 'GET',\n params\n },\n options);\n }\n \nconst getUserById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<UserResponseModel>>,) => {\n return UmbracoManagementClient<UserResponseModel>(\n {url: `/umbraco/management/api/v1/user/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteUserById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putUserById = (\n id: string,\n updateUserRequestModel: UpdateUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateUserRequestModel\n },\n options);\n }\n \nconst getUserById2fa = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<UserTwoFactorProviderModel[]>>,) => {\n return UmbracoManagementClient<UserTwoFactorProviderModel[]>(\n {url: `/umbraco/management/api/v1/user/${id}/2fa`, method: 'GET'\n },\n options);\n }\n \nconst deleteUserById2faByProviderName = (\n id: string,\n providerName: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/${id}/2fa/${providerName}`, method: 'DELETE'\n },\n options);\n }\n \nconst getUserByIdCalculateStartNodes = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<CalculatedUserStartNodesResponseModel>>,) => {\n return UmbracoManagementClient<CalculatedUserStartNodesResponseModel>(\n {url: `/umbraco/management/api/v1/user/${id}/calculate-start-nodes`, method: 'GET'\n },\n options);\n }\n \nconst postUserByIdChangePassword = (\n id: string,\n changePasswordUserRequestModel: ChangePasswordUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/${id}/change-password`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: changePasswordUserRequestModel\n },\n options);\n }\n \nconst postUserByIdClientCredentials = (\n id: string,\n createUserClientCredentialsRequestModel: CreateUserClientCredentialsRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/${id}/client-credentials`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createUserClientCredentialsRequestModel\n },\n options);\n }\n \nconst getUserByIdClientCredentials = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<string[]>>,) => {\n return UmbracoManagementClient<string[]>(\n {url: `/umbraco/management/api/v1/user/${id}/client-credentials`, method: 'GET'\n },\n options);\n }\n \nconst deleteUserByIdClientCredentialsByClientId = (\n id: string,\n clientId: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/${id}/client-credentials/${clientId}`, method: 'DELETE'\n },\n options);\n }\n \nconst postUserByIdResetPassword = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<ResetPasswordUserResponseModel>>,) => {\n return UmbracoManagementClient<ResetPasswordUserResponseModel>(\n {url: `/umbraco/management/api/v1/user/${id}/reset-password`, method: 'POST'\n },\n options);\n }\n \nconst deleteUserAvatarById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/avatar/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst postUserAvatarById = (\n id: string,\n setAvatarRequestModel: SetAvatarRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/avatar/${id}`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: setAvatarRequestModel\n },\n options);\n }\n \nconst getUserConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<UserConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<UserConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/user/configuration`, method: 'GET'\n },\n options);\n }\n \nconst getUserCurrent = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<CurrentUserResponseModel>>,) => {\n return UmbracoManagementClient<CurrentUserResponseModel>(\n {url: `/umbraco/management/api/v1/user/current`, method: 'GET'\n },\n options);\n }\n \nconst getUserCurrent2fa = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<UserTwoFactorProviderModel[]>>,) => {\n return UmbracoManagementClient<UserTwoFactorProviderModel[]>(\n {url: `/umbraco/management/api/v1/user/current/2fa`, method: 'GET'\n },\n options);\n }\n \nconst deleteUserCurrent2faByProviderName = (\n providerName: string,\n params?: DeleteUserCurrent2faByProviderNameParams,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/current/2fa/${providerName}`, method: 'DELETE',\n params\n },\n options);\n }\n \nconst postUserCurrent2faByProviderName = (\n providerName: string,\n enableTwoFactorRequestModel: EnableTwoFactorRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<NoopSetupTwoFactorModel>>,) => {\n return UmbracoManagementClient<NoopSetupTwoFactorModel>(\n {url: `/umbraco/management/api/v1/user/current/2fa/${providerName}`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: enableTwoFactorRequestModel\n },\n options);\n }\n \nconst getUserCurrent2faByProviderName = (\n providerName: string,\n options?: SecondParameter<typeof UmbracoManagementClient<NoopSetupTwoFactorModel>>,) => {\n return UmbracoManagementClient<NoopSetupTwoFactorModel>(\n {url: `/umbraco/management/api/v1/user/current/2fa/${providerName}`, method: 'GET'\n },\n options);\n }\n \nconst postUserCurrentAvatar = (\n setAvatarRequestModel: SetAvatarRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/current/avatar`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: setAvatarRequestModel\n },\n options);\n }\n \nconst postUserCurrentChangePassword = (\n changePasswordCurrentUserRequestModel: ChangePasswordCurrentUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/current/change-password`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: changePasswordCurrentUserRequestModel\n },\n options);\n }\n \nconst getUserCurrentConfiguration = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<CurrentUserConfigurationResponseModel>>,) => {\n return UmbracoManagementClient<CurrentUserConfigurationResponseModel>(\n {url: `/umbraco/management/api/v1/user/current/configuration`, method: 'GET'\n },\n options);\n }\n \nconst getUserCurrentLoginProviders = (\n \n options?: SecondParameter<typeof UmbracoManagementClient<UserExternalLoginProviderModel[]>>,) => {\n return UmbracoManagementClient<UserExternalLoginProviderModel[]>(\n {url: `/umbraco/management/api/v1/user/current/login-providers`, method: 'GET'\n },\n options);\n }\n \nconst getUserCurrentPermissions = (\n params?: GetUserCurrentPermissionsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<UserPermissionsResponseModel>>,) => {\n return UmbracoManagementClient<UserPermissionsResponseModel>(\n {url: `/umbraco/management/api/v1/user/current/permissions`, method: 'GET',\n params\n },\n options);\n }\n \nconst getUserCurrentPermissionsDocument = (\n params?: GetUserCurrentPermissionsDocumentParams,\n options?: SecondParameter<typeof UmbracoManagementClient<UserPermissionsResponseModel[]>>,) => {\n return UmbracoManagementClient<UserPermissionsResponseModel[]>(\n {url: `/umbraco/management/api/v1/user/current/permissions/document`, method: 'GET',\n params\n },\n options);\n }\n \nconst getUserCurrentPermissionsMedia = (\n params?: GetUserCurrentPermissionsMediaParams,\n options?: SecondParameter<typeof UmbracoManagementClient<UserPermissionsResponseModel>>,) => {\n return UmbracoManagementClient<UserPermissionsResponseModel>(\n {url: `/umbraco/management/api/v1/user/current/permissions/media`, method: 'GET',\n params\n },\n options);\n }\n \nconst postUserDisable = (\n disableUserRequestModel: DisableUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/disable`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: disableUserRequestModel\n },\n options);\n }\n \nconst postUserEnable = (\n enableUserRequestModel: EnableUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/enable`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: enableUserRequestModel\n },\n options);\n }\n \nconst postUserInvite = (\n inviteUserRequestModel: InviteUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/invite`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: inviteUserRequestModel\n },\n options);\n }\n \nconst postUserInviteCreatePassword = (\n createInitialPasswordUserRequestModel: CreateInitialPasswordUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/invite/create-password`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createInitialPasswordUserRequestModel\n },\n options);\n }\n \nconst postUserInviteResend = (\n resendInviteUserRequestModel: ResendInviteUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/invite/resend`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: resendInviteUserRequestModel\n },\n options);\n }\n \nconst postUserInviteVerify = (\n verifyInviteUserRequestModel: VerifyInviteUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<VerifyInviteUserResponseModel>>,) => {\n return UmbracoManagementClient<VerifyInviteUserResponseModel>(\n {url: `/umbraco/management/api/v1/user/invite/verify`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: verifyInviteUserRequestModel\n },\n options);\n }\n \nconst postUserSetUserGroups = (\n updateUserGroupsOnUserRequestModel: UpdateUserGroupsOnUserRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/set-user-groups`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: updateUserGroupsOnUserRequestModel\n },\n options);\n }\n \nconst postUserUnlock = (\n unlockUsersRequestModel: UnlockUsersRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/user/unlock`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: unlockUsersRequestModel\n },\n options);\n }\n \nconst getItemWebhook = (\n params?: GetItemWebhookParams,\n options?: SecondParameter<typeof UmbracoManagementClient<WebhookItemResponseModel[]>>,) => {\n return UmbracoManagementClient<WebhookItemResponseModel[]>(\n {url: `/umbraco/management/api/v1/item/webhook`, method: 'GET',\n params\n },\n options);\n }\n \nconst getWebhook = (\n params?: GetWebhookParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedWebhookResponseModel>>,) => {\n return UmbracoManagementClient<PagedWebhookResponseModel>(\n {url: `/umbraco/management/api/v1/webhook`, method: 'GET',\n params\n },\n options);\n }\n \nconst postWebhook = (\n createWebhookRequestModel: CreateWebhookRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/webhook`, method: 'POST',\n headers: {'Content-Type': 'application/json', },\n data: createWebhookRequestModel\n },\n options);\n }\n \nconst getWebhookById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<WebhookResponseModel>>,) => {\n return UmbracoManagementClient<WebhookResponseModel>(\n {url: `/umbraco/management/api/v1/webhook/${id}`, method: 'GET'\n },\n options);\n }\n \nconst deleteWebhookById = (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/webhook/${id}`, method: 'DELETE'\n },\n options);\n }\n \nconst putWebhookById = (\n id: string,\n updateWebhookRequestModel: UpdateWebhookRequestModel,\n options?: SecondParameter<typeof UmbracoManagementClient<void>>,) => {\n return UmbracoManagementClient<void>(\n {url: `/umbraco/management/api/v1/webhook/${id}`, method: 'PUT',\n headers: {'Content-Type': 'application/json', },\n data: updateWebhookRequestModel\n },\n options);\n }\n \nconst getWebhookByIdLogs = (\n id: string,\n params?: GetWebhookByIdLogsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedWebhookLogResponseModel>>,) => {\n return UmbracoManagementClient<PagedWebhookLogResponseModel>(\n {url: `/umbraco/management/api/v1/webhook/${id}/logs`, method: 'GET',\n params\n },\n options);\n }\n \nconst getWebhookEvents = (\n params?: GetWebhookEventsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedWebhookEventModel>>,) => {\n return UmbracoManagementClient<PagedWebhookEventModel>(\n {url: `/umbraco/management/api/v1/webhook/events`, method: 'GET',\n params\n },\n options);\n }\n \nconst getWebhookLogs = (\n params?: GetWebhookLogsParams,\n options?: SecondParameter<typeof UmbracoManagementClient<PagedWebhookLogResponseModel>>,) => {\n return UmbracoManagementClient<PagedWebhookLogResponseModel>(\n {url: `/umbraco/management/api/v1/webhook/logs`, method: 'GET',\n params\n },\n options);\n }\n \nreturn {getCulture,postDataType,getDataTypeById,deleteDataTypeById,putDataTypeById,postDataTypeByIdCopy,getDataTypeByIdIsUsed,putDataTypeByIdMove,getDataTypeByIdReferencedBy,getDataTypeConfiguration,postDataTypeFolder,getDataTypeFolderById,deleteDataTypeFolderById,putDataTypeFolderById,getFilterDataType,getItemDataType,getItemDataTypeSearch,getTreeDataTypeAncestors,getTreeDataTypeChildren,getTreeDataTypeRoot,getTreeDataTypeSiblings,getDictionary,postDictionary,getDictionaryById,deleteDictionaryById,putDictionaryById,getDictionaryByIdExport,putDictionaryByIdMove,postDictionaryImport,getItemDictionary,getTreeDictionaryAncestors,getTreeDictionaryChildren,getTreeDictionaryRoot,postDocumentBlueprint,getDocumentBlueprintById,deleteDocumentBlueprintById,putDocumentBlueprintById,putDocumentBlueprintByIdMove,getDocumentBlueprintByIdScaffold,postDocumentBlueprintFolder,getDocumentBlueprintFolderById,deleteDocumentBlueprintFolderById,putDocumentBlueprintFolderById,postDocumentBlueprintFromDocument,getItemDocumentBlueprint,getTreeDocumentBlueprintAncestors,getTreeDocumentBlueprintChildren,getTreeDocumentBlueprintRoot,getTreeDocumentBlueprintSiblings,postDocumentType,getDocumentTypeById,deleteDocumentTypeById,putDocumentTypeById,getDocumentTypeByIdAllowedChildren,getDocumentTypeByIdBlueprint,getDocumentTypeByIdCompositionReferences,postDocumentTypeByIdCopy,getDocumentTypeByIdExport,putDocumentTypeByIdImport,putDocumentTypeByIdMove,postDocumentTypeByIdTemplate,getDocumentTypeAllowedAtRoot,postDocumentTypeAvailableCompositions,getDocumentTypeConfiguration,postDocumentTypeFolder,getDocumentTypeFolderById,deleteDocumentTypeFolderById,putDocumentTypeFolderById,postDocumentTypeImport,getItemDocumentType,getItemDocumentTypeSearch,getTreeDocumentTypeAncestors,getTreeDocumentTypeChildren,getTreeDocumentTypeRoot,getTreeDocumentTypeSiblings,getDocumentVersion,getDocumentVersionById,putDocumentVersionByIdPreventCleanup,postDocumentVersionByIdRollback,getCollectionDocumentById,postDocument,getDocumentById,deleteDocumentById,putDocumentById,getDocumentByIdAuditLog,getDocumentByIdAvailableSegmentOptions,postDocumentByIdCopy,getDocumentByIdDomains,putDocumentByIdDomains,putDocumentByIdMove,putDocumentByIdMoveToRecycleBin,getDocumentByIdNotifications,putDocumentByIdNotifications,getDocumentByIdPreviewUrl,postDocumentByIdPublicAccess,deleteDocumentByIdPublicAccess,getDocumentByIdPublicAccess,putDocumentByIdPublicAccess,putDocumentByIdPublish,putDocumentByIdPublishWithDescendants,getDocumentByIdPublishWithDescendantsResultByTaskId,getDocumentByIdPublished,getDocumentByIdReferencedBy,getDocumentByIdReferencedDescendants,putDocumentByIdUnpublish,putUmbracoManagementApiV11DocumentByIdValidate11,getDocumentAreReferenced,getDocumentConfiguration,putDocumentSort,getDocumentUrls,postDocumentValidate,getItemDocument,getItemDocumentSearch,deleteRecycleBinDocument,deleteRecycleBinDocumentById,getRecycleBinDocumentByIdOriginalParent,putRecycleBinDocumentByIdRestore,getRecycleBinDocumentChildren,getRecycleBinDocumentReferencedBy,getRecycleBinDocumentRoot,getRecycleBinDocumentSiblings,getTreeDocumentAncestors,getTreeDocumentChildren,getTreeDocumentRoot,getTreeDocumentSiblings,postDynamicRootQuery,getDynamicRootSteps,getHealthCheckGroup,getHealthCheckGroupByName,postHealthCheckGroupByNameCheck,postHealthCheckExecuteAction,getHelp,getImagingResizeUrls,getImportAnalyze,getIndexer,getIndexerByIndexName,postIndexerByIndexNameRebuild,getInstallSettings,postInstallSetup,postInstallValidateDatabase,getItemLanguage,getItemLanguageDefault,getLanguage,postLanguage,getLanguageByIsoCode,deleteLanguageByIsoCode,putLanguageByIsoCode,getLogViewerLevel,getLogViewerLevelCount,getLogViewerLog,getLogViewerMessageTemplate,getLogViewerSavedSearch,postLogViewerSavedSearch,getLogViewerSavedSearchByName,deleteLogViewerSavedSearchByName,getLogViewerValidateLogsSize,getManifestManifest,getManifestManifestPrivate,getManifestManifestPublic,getItemMediaType,getItemMediaTypeAllowed,getItemMediaTypeFolders,getItemMediaTypeSearch,postMediaType,getMediaTypeById,deleteMediaTypeById,putMediaTypeById,getMediaTypeByIdAllowedChildren,getMediaTypeByIdCompositionReferences,postMediaTypeByIdCopy,getMediaTypeByIdExport,putMediaTypeByIdImport,putMediaTypeByIdMove,getMediaTypeAllowedAtRoot,postMediaTypeAvailableCompositions,getMediaTypeConfiguration,postMediaTypeFolder,getMediaTypeFolderById,deleteMediaTypeFolderById,putMediaTypeFolderById,postMediaTypeImport,getTreeMediaTypeAncestors,getTreeMediaTypeChildren,getTreeMediaTypeRoot,getTreeMediaTypeSiblings,getCollectionMedia,getItemMedia,getItemMediaSearch,postMedia,getMediaById,deleteMediaById,putMediaById,getMediaByIdAuditLog,putMediaByIdMove,putMediaByIdMoveToRecycleBin,getMediaByIdReferencedBy,getMediaByIdReferencedDescendants,putMediaByIdValidate,getMediaAreReferenced,getMediaConfiguration,putMediaSort,getMediaUrls,postMediaValidate,deleteRecycleBinMedia,deleteRecycleBinMediaById,getRecycleBinMediaByIdOriginalParent,putRecycleBinMediaByIdRestore,getRecycleBinMediaChildren,getRecycleBinMediaReferencedBy,getRecycleBinMediaRoot,getRecycleBinMediaSiblings,getTreeMediaAncestors,getTreeMediaChildren,getTreeMediaRoot,getTreeMediaSiblings,getItemMemberGroup,getMemberGroup,postMemberGroup,getMemberGroupById,deleteMemberGroupById,putMemberGroupById,getTreeMemberGroupRoot,getItemMemberType,getItemMemberTypeSearch,postMemberType,getMemberTypeById,deleteMemberTypeById,putMemberTypeById,getMemberTypeByIdCompositionReferences,postMemberTypeByIdCopy,getMemberTypeByIdExport,putMemberTypeByIdImport,putMemberTypeByIdMove,postMemberTypeAvailableCompositions,getMemberTypeConfiguration,postMemberTypeFolder,getMemberTypeFolderById,deleteMemberTypeFolderById,putMemberTypeFolderById,postMemberTypeImport,getTreeMemberTypeAncestors,getTreeMemberTypeChildren,getTreeMemberTypeRoot,getTreeMemberTypeSiblings,getFilterMember,getItemMember,getItemMemberSearch,postMember,getMemberById,deleteMemberById,putMemberById,getMemberByIdReferencedBy,getMemberByIdReferencedDescendants,putMemberByIdValidate,getMemberAreReferenced,getMemberConfiguration,postMemberValidate,postModelsBuilderBuild,getModelsBuilderDashboard,getModelsBuilderStatus,getNewsDashboard,getObjectTypes,getOembedQuery,postPackageByNameRunMigration,getPackageConfiguration,getPackageCreated,postPackageCreated,getPackageCreatedById,deletePackageCreatedById,putPackageCreatedById,getPackageCreatedByIdDownload,getPackageMigrationStatus,getItemPartialView,postPartialView,getPartialViewByPath,deletePartialViewByPath,putPartialViewByPath,putPartialViewByPathRename,postPartialViewFolder,getPartialViewFolderByPath,deletePartialViewFolderByPath,getPartialViewSnippet,getPartialViewSnippetById,getTreePartialViewAncestors,getTreePartialViewChildren,getTreePartialViewRoot,getTreePartialViewSiblings,deletePreview,postPreview,getProfilingStatus,putProfilingStatus,getPropertyTypeIsUsed,postPublishedCacheRebuild,getPublishedCacheRebuildStatus,postPublishedCacheReload,getRedirectManagement,getRedirectManagementById,deleteRedirectManagementById,getRedirectManagementStatus,postRedirectManagementStatus,getItemRelationType,getRelationType,getRelationTypeById,getRelationByRelationTypeId,getItemScript,postScript,getScriptByPath,deleteScriptByPath,putScriptByPath,putScriptByPathRename,postScriptFolder,getScriptFolderByPath,deleteScriptFolderByPath,getTreeScriptAncestors,getTreeScriptChildren,getTreeScriptRoot,getTreeScriptSiblings,getSearcher,getSearcherBySearcherNameQuery,getSecurityConfiguration,postSecurityForgotPassword,postSecurityForgotPasswordReset,postSecurityForgotPasswordVerify,getSegment,getServerConfiguration,getServerInformation,getServerStatus,getServerTroubleshooting,getServerUpgradeCheck,getItemStaticFile,getTreeStaticFileAncestors,getTreeStaticFileChildren,getTreeStaticFileRoot,getItemStylesheet,postStylesheet,getStylesheetByPath,deleteStylesheetByPath,putStylesheetByPath,putStylesheetByPathRename,postStylesheetFolder,getStylesheetFolderByPath,deleteStylesheetFolderByPath,getTreeStylesheetAncestors,getTreeStylesheetChildren,getTreeStylesheetRoot,getTreeStylesheetSiblings,getTag,getTelemetry,getTelemetryLevel,postTelemetryLevel,getItemTemplate,getItemTemplateSearch,postTemplate,getTemplateById,deleteTemplateById,putTemplateById,getTemplateConfiguration,postTemplateQueryExecute,getTemplateQuerySettings,getTreeTemplateAncestors,getTreeTemplateChildren,getTreeTemplateRoot,getTreeTemplateSiblings,postUpgradeAuthorize,getUpgradeSettings,postUserData,getUserData,putUserData,getUserDataById,deleteUserDataById,getFilterUserGroup,getItemUserGroup,deleteUserGroup,postUserGroup,getUserGroup,getUserGroupById,deleteUserGroupById,putUserGroupById,deleteUserGroupByIdUsers,postUserGroupByIdUsers,getFilterUser,getItemUser,postUser,deleteUser,getUser,getUserById,deleteUserById,putUserById,getUserById2fa,deleteUserById2faByProviderName,getUserByIdCalculateStartNodes,postUserByIdChangePassword,postUserByIdClientCredentials,getUserByIdClientCredentials,deleteUserByIdClientCredentialsByClientId,postUserByIdResetPassword,deleteUserAvatarById,postUserAvatarById,getUserConfiguration,getUserCurrent,getUserCurrent2fa,deleteUserCurrent2faByProviderName,postUserCurrent2faByProviderName,getUserCurrent2faByProviderName,postUserCurrentAvatar,postUserCurrentChangePassword,getUserCurrentConfiguration,getUserCurrentLoginProviders,getUserCurrentPermissions,getUserCurrentPermissionsDocument,getUserCurrentPermissionsMedia,postUserDisable,postUserEnable,postUserInvite,postUserInviteCreatePassword,postUserInviteResend,postUserInviteVerify,postUserSetUserGroups,postUserUnlock,getItemWebhook,getWebhook,postWebhook,getWebhookById,deleteWebhookById,putWebhookById,getWebhookByIdLogs,getWebhookEvents,getWebhookLogs}};\nexport type GetCultureResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getCulture']>>>\nexport type PostDataTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDataType']>>>\nexport type GetDataTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDataTypeById']>>>\nexport type DeleteDataTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDataTypeById']>>>\nexport type PutDataTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDataTypeById']>>>\nexport type PostDataTypeByIdCopyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDataTypeByIdCopy']>>>\nexport type GetDataTypeByIdIsUsedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDataTypeByIdIsUsed']>>>\nexport type PutDataTypeByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDataTypeByIdMove']>>>\nexport type GetDataTypeByIdReferencedByResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDataTypeByIdReferencedBy']>>>\nexport type GetDataTypeConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDataTypeConfiguration']>>>\nexport type PostDataTypeFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDataTypeFolder']>>>\nexport type GetDataTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDataTypeFolderById']>>>\nexport type DeleteDataTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDataTypeFolderById']>>>\nexport type PutDataTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDataTypeFolderById']>>>\nexport type GetFilterDataTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getFilterDataType']>>>\nexport type GetItemDataTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDataType']>>>\nexport type GetItemDataTypeSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDataTypeSearch']>>>\nexport type GetTreeDataTypeAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDataTypeAncestors']>>>\nexport type GetTreeDataTypeChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDataTypeChildren']>>>\nexport type GetTreeDataTypeRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDataTypeRoot']>>>\nexport type GetTreeDataTypeSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDataTypeSiblings']>>>\nexport type GetDictionaryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDictionary']>>>\nexport type PostDictionaryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDictionary']>>>\nexport type GetDictionaryByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDictionaryById']>>>\nexport type DeleteDictionaryByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDictionaryById']>>>\nexport type PutDictionaryByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDictionaryById']>>>\nexport type GetDictionaryByIdExportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDictionaryByIdExport']>>>\nexport type PutDictionaryByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDictionaryByIdMove']>>>\nexport type PostDictionaryImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDictionaryImport']>>>\nexport type GetItemDictionaryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDictionary']>>>\nexport type GetTreeDictionaryAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDictionaryAncestors']>>>\nexport type GetTreeDictionaryChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDictionaryChildren']>>>\nexport type GetTreeDictionaryRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDictionaryRoot']>>>\nexport type PostDocumentBlueprintResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentBlueprint']>>>\nexport type GetDocumentBlueprintByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentBlueprintById']>>>\nexport type DeleteDocumentBlueprintByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDocumentBlueprintById']>>>\nexport type PutDocumentBlueprintByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentBlueprintById']>>>\nexport type PutDocumentBlueprintByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentBlueprintByIdMove']>>>\nexport type GetDocumentBlueprintByIdScaffoldResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentBlueprintByIdScaffold']>>>\nexport type PostDocumentBlueprintFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentBlueprintFolder']>>>\nexport type GetDocumentBlueprintFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentBlueprintFolderById']>>>\nexport type DeleteDocumentBlueprintFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDocumentBlueprintFolderById']>>>\nexport type PutDocumentBlueprintFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentBlueprintFolderById']>>>\nexport type PostDocumentBlueprintFromDocumentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentBlueprintFromDocument']>>>\nexport type GetItemDocumentBlueprintResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDocumentBlueprint']>>>\nexport type GetTreeDocumentBlueprintAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentBlueprintAncestors']>>>\nexport type GetTreeDocumentBlueprintChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentBlueprintChildren']>>>\nexport type GetTreeDocumentBlueprintRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentBlueprintRoot']>>>\nexport type GetTreeDocumentBlueprintSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentBlueprintSiblings']>>>\nexport type PostDocumentTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentType']>>>\nexport type GetDocumentTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeById']>>>\nexport type DeleteDocumentTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDocumentTypeById']>>>\nexport type PutDocumentTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentTypeById']>>>\nexport type GetDocumentTypeByIdAllowedChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeByIdAllowedChildren']>>>\nexport type GetDocumentTypeByIdBlueprintResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeByIdBlueprint']>>>\nexport type GetDocumentTypeByIdCompositionReferencesResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeByIdCompositionReferences']>>>\nexport type PostDocumentTypeByIdCopyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentTypeByIdCopy']>>>\nexport type GetDocumentTypeByIdExportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeByIdExport']>>>\nexport type PutDocumentTypeByIdImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentTypeByIdImport']>>>\nexport type PutDocumentTypeByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentTypeByIdMove']>>>\nexport type PostDocumentTypeByIdTemplateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentTypeByIdTemplate']>>>\nexport type GetDocumentTypeAllowedAtRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeAllowedAtRoot']>>>\nexport type PostDocumentTypeAvailableCompositionsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentTypeAvailableCompositions']>>>\nexport type GetDocumentTypeConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeConfiguration']>>>\nexport type PostDocumentTypeFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentTypeFolder']>>>\nexport type GetDocumentTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentTypeFolderById']>>>\nexport type DeleteDocumentTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDocumentTypeFolderById']>>>\nexport type PutDocumentTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentTypeFolderById']>>>\nexport type PostDocumentTypeImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentTypeImport']>>>\nexport type GetItemDocumentTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDocumentType']>>>\nexport type GetItemDocumentTypeSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDocumentTypeSearch']>>>\nexport type GetTreeDocumentTypeAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentTypeAncestors']>>>\nexport type GetTreeDocumentTypeChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentTypeChildren']>>>\nexport type GetTreeDocumentTypeRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentTypeRoot']>>>\nexport type GetTreeDocumentTypeSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentTypeSiblings']>>>\nexport type GetDocumentVersionResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentVersion']>>>\nexport type GetDocumentVersionByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentVersionById']>>>\nexport type PutDocumentVersionByIdPreventCleanupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentVersionByIdPreventCleanup']>>>\nexport type PostDocumentVersionByIdRollbackResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentVersionByIdRollback']>>>\nexport type GetCollectionDocumentByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getCollectionDocumentById']>>>\nexport type PostDocumentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocument']>>>\nexport type GetDocumentByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentById']>>>\nexport type DeleteDocumentByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDocumentById']>>>\nexport type PutDocumentByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentById']>>>\nexport type GetDocumentByIdAuditLogResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdAuditLog']>>>\nexport type GetDocumentByIdAvailableSegmentOptionsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdAvailableSegmentOptions']>>>\nexport type PostDocumentByIdCopyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentByIdCopy']>>>\nexport type GetDocumentByIdDomainsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdDomains']>>>\nexport type PutDocumentByIdDomainsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdDomains']>>>\nexport type PutDocumentByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdMove']>>>\nexport type PutDocumentByIdMoveToRecycleBinResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdMoveToRecycleBin']>>>\nexport type GetDocumentByIdNotificationsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdNotifications']>>>\nexport type PutDocumentByIdNotificationsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdNotifications']>>>\nexport type GetDocumentByIdPreviewUrlResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdPreviewUrl']>>>\nexport type PostDocumentByIdPublicAccessResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentByIdPublicAccess']>>>\nexport type DeleteDocumentByIdPublicAccessResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteDocumentByIdPublicAccess']>>>\nexport type GetDocumentByIdPublicAccessResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdPublicAccess']>>>\nexport type PutDocumentByIdPublicAccessResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdPublicAccess']>>>\nexport type PutDocumentByIdPublishResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdPublish']>>>\nexport type PutDocumentByIdPublishWithDescendantsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdPublishWithDescendants']>>>\nexport type GetDocumentByIdPublishWithDescendantsResultByTaskIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdPublishWithDescendantsResultByTaskId']>>>\nexport type GetDocumentByIdPublishedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdPublished']>>>\nexport type GetDocumentByIdReferencedByResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdReferencedBy']>>>\nexport type GetDocumentByIdReferencedDescendantsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentByIdReferencedDescendants']>>>\nexport type PutDocumentByIdUnpublishResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentByIdUnpublish']>>>\nexport type PutUmbracoManagementApiV11DocumentByIdValidate11Result = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putUmbracoManagementApiV11DocumentByIdValidate11']>>>\nexport type GetDocumentAreReferencedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentAreReferenced']>>>\nexport type GetDocumentConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentConfiguration']>>>\nexport type PutDocumentSortResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putDocumentSort']>>>\nexport type GetDocumentUrlsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDocumentUrls']>>>\nexport type PostDocumentValidateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDocumentValidate']>>>\nexport type GetItemDocumentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDocument']>>>\nexport type GetItemDocumentSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemDocumentSearch']>>>\nexport type DeleteRecycleBinDocumentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteRecycleBinDocument']>>>\nexport type DeleteRecycleBinDocumentByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteRecycleBinDocumentById']>>>\nexport type GetRecycleBinDocumentByIdOriginalParentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinDocumentByIdOriginalParent']>>>\nexport type PutRecycleBinDocumentByIdRestoreResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putRecycleBinDocumentByIdRestore']>>>\nexport type GetRecycleBinDocumentChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinDocumentChildren']>>>\nexport type GetRecycleBinDocumentReferencedByResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinDocumentReferencedBy']>>>\nexport type GetRecycleBinDocumentRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinDocumentRoot']>>>\nexport type GetRecycleBinDocumentSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinDocumentSiblings']>>>\nexport type GetTreeDocumentAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentAncestors']>>>\nexport type GetTreeDocumentChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentChildren']>>>\nexport type GetTreeDocumentRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentRoot']>>>\nexport type GetTreeDocumentSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeDocumentSiblings']>>>\nexport type PostDynamicRootQueryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postDynamicRootQuery']>>>\nexport type GetDynamicRootStepsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getDynamicRootSteps']>>>\nexport type GetHealthCheckGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getHealthCheckGroup']>>>\nexport type GetHealthCheckGroupByNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getHealthCheckGroupByName']>>>\nexport type PostHealthCheckGroupByNameCheckResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postHealthCheckGroupByNameCheck']>>>\nexport type PostHealthCheckExecuteActionResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postHealthCheckExecuteAction']>>>\nexport type GetHelpResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getHelp']>>>\nexport type GetImagingResizeUrlsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getImagingResizeUrls']>>>\nexport type GetImportAnalyzeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getImportAnalyze']>>>\nexport type GetIndexerResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getIndexer']>>>\nexport type GetIndexerByIndexNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getIndexerByIndexName']>>>\nexport type PostIndexerByIndexNameRebuildResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postIndexerByIndexNameRebuild']>>>\nexport type GetInstallSettingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getInstallSettings']>>>\nexport type PostInstallSetupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postInstallSetup']>>>\nexport type PostInstallValidateDatabaseResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postInstallValidateDatabase']>>>\nexport type GetItemLanguageResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemLanguage']>>>\nexport type GetItemLanguageDefaultResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemLanguageDefault']>>>\nexport type GetLanguageResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLanguage']>>>\nexport type PostLanguageResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postLanguage']>>>\nexport type GetLanguageByIsoCodeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLanguageByIsoCode']>>>\nexport type DeleteLanguageByIsoCodeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteLanguageByIsoCode']>>>\nexport type PutLanguageByIsoCodeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putLanguageByIsoCode']>>>\nexport type GetLogViewerLevelResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerLevel']>>>\nexport type GetLogViewerLevelCountResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerLevelCount']>>>\nexport type GetLogViewerLogResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerLog']>>>\nexport type GetLogViewerMessageTemplateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerMessageTemplate']>>>\nexport type GetLogViewerSavedSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerSavedSearch']>>>\nexport type PostLogViewerSavedSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postLogViewerSavedSearch']>>>\nexport type GetLogViewerSavedSearchByNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerSavedSearchByName']>>>\nexport type DeleteLogViewerSavedSearchByNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteLogViewerSavedSearchByName']>>>\nexport type GetLogViewerValidateLogsSizeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getLogViewerValidateLogsSize']>>>\nexport type GetManifestManifestResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getManifestManifest']>>>\nexport type GetManifestManifestPrivateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getManifestManifestPrivate']>>>\nexport type GetManifestManifestPublicResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getManifestManifestPublic']>>>\nexport type GetItemMediaTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMediaType']>>>\nexport type GetItemMediaTypeAllowedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMediaTypeAllowed']>>>\nexport type GetItemMediaTypeFoldersResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMediaTypeFolders']>>>\nexport type GetItemMediaTypeSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMediaTypeSearch']>>>\nexport type PostMediaTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMediaType']>>>\nexport type GetMediaTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeById']>>>\nexport type DeleteMediaTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMediaTypeById']>>>\nexport type PutMediaTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaTypeById']>>>\nexport type GetMediaTypeByIdAllowedChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeByIdAllowedChildren']>>>\nexport type GetMediaTypeByIdCompositionReferencesResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeByIdCompositionReferences']>>>\nexport type PostMediaTypeByIdCopyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMediaTypeByIdCopy']>>>\nexport type GetMediaTypeByIdExportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeByIdExport']>>>\nexport type PutMediaTypeByIdImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaTypeByIdImport']>>>\nexport type PutMediaTypeByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaTypeByIdMove']>>>\nexport type GetMediaTypeAllowedAtRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeAllowedAtRoot']>>>\nexport type PostMediaTypeAvailableCompositionsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMediaTypeAvailableCompositions']>>>\nexport type GetMediaTypeConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeConfiguration']>>>\nexport type PostMediaTypeFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMediaTypeFolder']>>>\nexport type GetMediaTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaTypeFolderById']>>>\nexport type DeleteMediaTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMediaTypeFolderById']>>>\nexport type PutMediaTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaTypeFolderById']>>>\nexport type PostMediaTypeImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMediaTypeImport']>>>\nexport type GetTreeMediaTypeAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaTypeAncestors']>>>\nexport type GetTreeMediaTypeChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaTypeChildren']>>>\nexport type GetTreeMediaTypeRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaTypeRoot']>>>\nexport type GetTreeMediaTypeSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaTypeSiblings']>>>\nexport type GetCollectionMediaResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getCollectionMedia']>>>\nexport type GetItemMediaResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMedia']>>>\nexport type GetItemMediaSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMediaSearch']>>>\nexport type PostMediaResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMedia']>>>\nexport type GetMediaByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaById']>>>\nexport type DeleteMediaByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMediaById']>>>\nexport type PutMediaByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaById']>>>\nexport type GetMediaByIdAuditLogResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaByIdAuditLog']>>>\nexport type PutMediaByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaByIdMove']>>>\nexport type PutMediaByIdMoveToRecycleBinResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaByIdMoveToRecycleBin']>>>\nexport type GetMediaByIdReferencedByResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaByIdReferencedBy']>>>\nexport type GetMediaByIdReferencedDescendantsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaByIdReferencedDescendants']>>>\nexport type PutMediaByIdValidateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaByIdValidate']>>>\nexport type GetMediaAreReferencedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaAreReferenced']>>>\nexport type GetMediaConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaConfiguration']>>>\nexport type PutMediaSortResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMediaSort']>>>\nexport type GetMediaUrlsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMediaUrls']>>>\nexport type PostMediaValidateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMediaValidate']>>>\nexport type DeleteRecycleBinMediaResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteRecycleBinMedia']>>>\nexport type DeleteRecycleBinMediaByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteRecycleBinMediaById']>>>\nexport type GetRecycleBinMediaByIdOriginalParentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinMediaByIdOriginalParent']>>>\nexport type PutRecycleBinMediaByIdRestoreResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putRecycleBinMediaByIdRestore']>>>\nexport type GetRecycleBinMediaChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinMediaChildren']>>>\nexport type GetRecycleBinMediaReferencedByResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinMediaReferencedBy']>>>\nexport type GetRecycleBinMediaRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinMediaRoot']>>>\nexport type GetRecycleBinMediaSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRecycleBinMediaSiblings']>>>\nexport type GetTreeMediaAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaAncestors']>>>\nexport type GetTreeMediaChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaChildren']>>>\nexport type GetTreeMediaRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaRoot']>>>\nexport type GetTreeMediaSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMediaSiblings']>>>\nexport type GetItemMemberGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMemberGroup']>>>\nexport type GetMemberGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberGroup']>>>\nexport type PostMemberGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberGroup']>>>\nexport type GetMemberGroupByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberGroupById']>>>\nexport type DeleteMemberGroupByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMemberGroupById']>>>\nexport type PutMemberGroupByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberGroupById']>>>\nexport type GetTreeMemberGroupRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMemberGroupRoot']>>>\nexport type GetItemMemberTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMemberType']>>>\nexport type GetItemMemberTypeSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMemberTypeSearch']>>>\nexport type PostMemberTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberType']>>>\nexport type GetMemberTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberTypeById']>>>\nexport type DeleteMemberTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMemberTypeById']>>>\nexport type PutMemberTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberTypeById']>>>\nexport type GetMemberTypeByIdCompositionReferencesResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberTypeByIdCompositionReferences']>>>\nexport type PostMemberTypeByIdCopyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberTypeByIdCopy']>>>\nexport type GetMemberTypeByIdExportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberTypeByIdExport']>>>\nexport type PutMemberTypeByIdImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberTypeByIdImport']>>>\nexport type PutMemberTypeByIdMoveResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberTypeByIdMove']>>>\nexport type PostMemberTypeAvailableCompositionsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberTypeAvailableCompositions']>>>\nexport type GetMemberTypeConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberTypeConfiguration']>>>\nexport type PostMemberTypeFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberTypeFolder']>>>\nexport type GetMemberTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberTypeFolderById']>>>\nexport type DeleteMemberTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMemberTypeFolderById']>>>\nexport type PutMemberTypeFolderByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberTypeFolderById']>>>\nexport type PostMemberTypeImportResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberTypeImport']>>>\nexport type GetTreeMemberTypeAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMemberTypeAncestors']>>>\nexport type GetTreeMemberTypeChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMemberTypeChildren']>>>\nexport type GetTreeMemberTypeRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMemberTypeRoot']>>>\nexport type GetTreeMemberTypeSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeMemberTypeSiblings']>>>\nexport type GetFilterMemberResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getFilterMember']>>>\nexport type GetItemMemberResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMember']>>>\nexport type GetItemMemberSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemMemberSearch']>>>\nexport type PostMemberResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMember']>>>\nexport type GetMemberByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberById']>>>\nexport type DeleteMemberByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteMemberById']>>>\nexport type PutMemberByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberById']>>>\nexport type GetMemberByIdReferencedByResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberByIdReferencedBy']>>>\nexport type GetMemberByIdReferencedDescendantsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberByIdReferencedDescendants']>>>\nexport type PutMemberByIdValidateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putMemberByIdValidate']>>>\nexport type GetMemberAreReferencedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberAreReferenced']>>>\nexport type GetMemberConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getMemberConfiguration']>>>\nexport type PostMemberValidateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postMemberValidate']>>>\nexport type PostModelsBuilderBuildResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postModelsBuilderBuild']>>>\nexport type GetModelsBuilderDashboardResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getModelsBuilderDashboard']>>>\nexport type GetModelsBuilderStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getModelsBuilderStatus']>>>\nexport type GetNewsDashboardResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getNewsDashboard']>>>\nexport type GetObjectTypesResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getObjectTypes']>>>\nexport type GetOembedQueryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getOembedQuery']>>>\nexport type PostPackageByNameRunMigrationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPackageByNameRunMigration']>>>\nexport type GetPackageConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPackageConfiguration']>>>\nexport type GetPackageCreatedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPackageCreated']>>>\nexport type PostPackageCreatedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPackageCreated']>>>\nexport type GetPackageCreatedByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPackageCreatedById']>>>\nexport type DeletePackageCreatedByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deletePackageCreatedById']>>>\nexport type PutPackageCreatedByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putPackageCreatedById']>>>\nexport type GetPackageCreatedByIdDownloadResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPackageCreatedByIdDownload']>>>\nexport type GetPackageMigrationStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPackageMigrationStatus']>>>\nexport type GetItemPartialViewResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemPartialView']>>>\nexport type PostPartialViewResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPartialView']>>>\nexport type GetPartialViewByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPartialViewByPath']>>>\nexport type DeletePartialViewByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deletePartialViewByPath']>>>\nexport type PutPartialViewByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putPartialViewByPath']>>>\nexport type PutPartialViewByPathRenameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putPartialViewByPathRename']>>>\nexport type PostPartialViewFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPartialViewFolder']>>>\nexport type GetPartialViewFolderByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPartialViewFolderByPath']>>>\nexport type DeletePartialViewFolderByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deletePartialViewFolderByPath']>>>\nexport type GetPartialViewSnippetResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPartialViewSnippet']>>>\nexport type GetPartialViewSnippetByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPartialViewSnippetById']>>>\nexport type GetTreePartialViewAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreePartialViewAncestors']>>>\nexport type GetTreePartialViewChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreePartialViewChildren']>>>\nexport type GetTreePartialViewRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreePartialViewRoot']>>>\nexport type GetTreePartialViewSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreePartialViewSiblings']>>>\nexport type DeletePreviewResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deletePreview']>>>\nexport type PostPreviewResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPreview']>>>\nexport type GetProfilingStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getProfilingStatus']>>>\nexport type PutProfilingStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putProfilingStatus']>>>\nexport type GetPropertyTypeIsUsedResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPropertyTypeIsUsed']>>>\nexport type PostPublishedCacheRebuildResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPublishedCacheRebuild']>>>\nexport type GetPublishedCacheRebuildStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getPublishedCacheRebuildStatus']>>>\nexport type PostPublishedCacheReloadResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postPublishedCacheReload']>>>\nexport type GetRedirectManagementResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRedirectManagement']>>>\nexport type GetRedirectManagementByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRedirectManagementById']>>>\nexport type DeleteRedirectManagementByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteRedirectManagementById']>>>\nexport type GetRedirectManagementStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRedirectManagementStatus']>>>\nexport type PostRedirectManagementStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postRedirectManagementStatus']>>>\nexport type GetItemRelationTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemRelationType']>>>\nexport type GetRelationTypeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRelationType']>>>\nexport type GetRelationTypeByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRelationTypeById']>>>\nexport type GetRelationByRelationTypeIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getRelationByRelationTypeId']>>>\nexport type GetItemScriptResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemScript']>>>\nexport type PostScriptResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postScript']>>>\nexport type GetScriptByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getScriptByPath']>>>\nexport type DeleteScriptByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteScriptByPath']>>>\nexport type PutScriptByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putScriptByPath']>>>\nexport type PutScriptByPathRenameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putScriptByPathRename']>>>\nexport type PostScriptFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postScriptFolder']>>>\nexport type GetScriptFolderByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getScriptFolderByPath']>>>\nexport type DeleteScriptFolderByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteScriptFolderByPath']>>>\nexport type GetTreeScriptAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeScriptAncestors']>>>\nexport type GetTreeScriptChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeScriptChildren']>>>\nexport type GetTreeScriptRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeScriptRoot']>>>\nexport type GetTreeScriptSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeScriptSiblings']>>>\nexport type GetSearcherResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getSearcher']>>>\nexport type GetSearcherBySearcherNameQueryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getSearcherBySearcherNameQuery']>>>\nexport type GetSecurityConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getSecurityConfiguration']>>>\nexport type PostSecurityForgotPasswordResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postSecurityForgotPassword']>>>\nexport type PostSecurityForgotPasswordResetResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postSecurityForgotPasswordReset']>>>\nexport type PostSecurityForgotPasswordVerifyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postSecurityForgotPasswordVerify']>>>\nexport type GetSegmentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getSegment']>>>\nexport type GetServerConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getServerConfiguration']>>>\nexport type GetServerInformationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getServerInformation']>>>\nexport type GetServerStatusResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getServerStatus']>>>\nexport type GetServerTroubleshootingResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getServerTroubleshooting']>>>\nexport type GetServerUpgradeCheckResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getServerUpgradeCheck']>>>\nexport type GetItemStaticFileResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemStaticFile']>>>\nexport type GetTreeStaticFileAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStaticFileAncestors']>>>\nexport type GetTreeStaticFileChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStaticFileChildren']>>>\nexport type GetTreeStaticFileRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStaticFileRoot']>>>\nexport type GetItemStylesheetResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemStylesheet']>>>\nexport type PostStylesheetResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postStylesheet']>>>\nexport type GetStylesheetByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getStylesheetByPath']>>>\nexport type DeleteStylesheetByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteStylesheetByPath']>>>\nexport type PutStylesheetByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putStylesheetByPath']>>>\nexport type PutStylesheetByPathRenameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putStylesheetByPathRename']>>>\nexport type PostStylesheetFolderResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postStylesheetFolder']>>>\nexport type GetStylesheetFolderByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getStylesheetFolderByPath']>>>\nexport type DeleteStylesheetFolderByPathResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteStylesheetFolderByPath']>>>\nexport type GetTreeStylesheetAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStylesheetAncestors']>>>\nexport type GetTreeStylesheetChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStylesheetChildren']>>>\nexport type GetTreeStylesheetRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStylesheetRoot']>>>\nexport type GetTreeStylesheetSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeStylesheetSiblings']>>>\nexport type GetTagResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTag']>>>\nexport type GetTelemetryResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTelemetry']>>>\nexport type GetTelemetryLevelResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTelemetryLevel']>>>\nexport type PostTelemetryLevelResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postTelemetryLevel']>>>\nexport type GetItemTemplateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemTemplate']>>>\nexport type GetItemTemplateSearchResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemTemplateSearch']>>>\nexport type PostTemplateResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postTemplate']>>>\nexport type GetTemplateByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTemplateById']>>>\nexport type DeleteTemplateByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteTemplateById']>>>\nexport type PutTemplateByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putTemplateById']>>>\nexport type GetTemplateConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTemplateConfiguration']>>>\nexport type PostTemplateQueryExecuteResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postTemplateQueryExecute']>>>\nexport type GetTemplateQuerySettingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTemplateQuerySettings']>>>\nexport type GetTreeTemplateAncestorsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeTemplateAncestors']>>>\nexport type GetTreeTemplateChildrenResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeTemplateChildren']>>>\nexport type GetTreeTemplateRootResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeTemplateRoot']>>>\nexport type GetTreeTemplateSiblingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getTreeTemplateSiblings']>>>\nexport type PostUpgradeAuthorizeResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUpgradeAuthorize']>>>\nexport type GetUpgradeSettingsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUpgradeSettings']>>>\nexport type PostUserDataResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserData']>>>\nexport type GetUserDataResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserData']>>>\nexport type PutUserDataResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putUserData']>>>\nexport type GetUserDataByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserDataById']>>>\nexport type DeleteUserDataByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserDataById']>>>\nexport type GetFilterUserGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getFilterUserGroup']>>>\nexport type GetItemUserGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemUserGroup']>>>\nexport type DeleteUserGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserGroup']>>>\nexport type PostUserGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserGroup']>>>\nexport type GetUserGroupResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserGroup']>>>\nexport type GetUserGroupByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserGroupById']>>>\nexport type DeleteUserGroupByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserGroupById']>>>\nexport type PutUserGroupByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putUserGroupById']>>>\nexport type DeleteUserGroupByIdUsersResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserGroupByIdUsers']>>>\nexport type PostUserGroupByIdUsersResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserGroupByIdUsers']>>>\nexport type GetFilterUserResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getFilterUser']>>>\nexport type GetItemUserResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemUser']>>>\nexport type PostUserResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUser']>>>\nexport type DeleteUserResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUser']>>>\nexport type GetUserResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUser']>>>\nexport type GetUserByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserById']>>>\nexport type DeleteUserByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserById']>>>\nexport type PutUserByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putUserById']>>>\nexport type GetUserById2faResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserById2fa']>>>\nexport type DeleteUserById2faByProviderNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserById2faByProviderName']>>>\nexport type GetUserByIdCalculateStartNodesResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserByIdCalculateStartNodes']>>>\nexport type PostUserByIdChangePasswordResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserByIdChangePassword']>>>\nexport type PostUserByIdClientCredentialsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserByIdClientCredentials']>>>\nexport type GetUserByIdClientCredentialsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserByIdClientCredentials']>>>\nexport type DeleteUserByIdClientCredentialsByClientIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserByIdClientCredentialsByClientId']>>>\nexport type PostUserByIdResetPasswordResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserByIdResetPassword']>>>\nexport type DeleteUserAvatarByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserAvatarById']>>>\nexport type PostUserAvatarByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserAvatarById']>>>\nexport type GetUserConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserConfiguration']>>>\nexport type GetUserCurrentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrent']>>>\nexport type GetUserCurrent2faResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrent2fa']>>>\nexport type DeleteUserCurrent2faByProviderNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteUserCurrent2faByProviderName']>>>\nexport type PostUserCurrent2faByProviderNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserCurrent2faByProviderName']>>>\nexport type GetUserCurrent2faByProviderNameResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrent2faByProviderName']>>>\nexport type PostUserCurrentAvatarResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserCurrentAvatar']>>>\nexport type PostUserCurrentChangePasswordResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserCurrentChangePassword']>>>\nexport type GetUserCurrentConfigurationResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrentConfiguration']>>>\nexport type GetUserCurrentLoginProvidersResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrentLoginProviders']>>>\nexport type GetUserCurrentPermissionsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrentPermissions']>>>\nexport type GetUserCurrentPermissionsDocumentResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrentPermissionsDocument']>>>\nexport type GetUserCurrentPermissionsMediaResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getUserCurrentPermissionsMedia']>>>\nexport type PostUserDisableResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserDisable']>>>\nexport type PostUserEnableResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserEnable']>>>\nexport type PostUserInviteResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserInvite']>>>\nexport type PostUserInviteCreatePasswordResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserInviteCreatePassword']>>>\nexport type PostUserInviteResendResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserInviteResend']>>>\nexport type PostUserInviteVerifyResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserInviteVerify']>>>\nexport type PostUserSetUserGroupsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserSetUserGroups']>>>\nexport type PostUserUnlockResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postUserUnlock']>>>\nexport type GetItemWebhookResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getItemWebhook']>>>\nexport type GetWebhookResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getWebhook']>>>\nexport type PostWebhookResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['postWebhook']>>>\nexport type GetWebhookByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getWebhookById']>>>\nexport type DeleteWebhookByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['deleteWebhookById']>>>\nexport type PutWebhookByIdResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['putWebhookById']>>>\nexport type GetWebhookByIdLogsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getWebhookByIdLogs']>>>\nexport type GetWebhookEventsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getWebhookEvents']>>>\nexport type GetWebhookLogsResult = NonNullable<Awaited<ReturnType<ReturnType<typeof getUmbracoManagementAPI>['getWebhookLogs']>>>\n","import {\n PostTemporaryFileBody,\n TemporaryFileResponseModel,\n TemporaryFileConfigurationResponseModel,\n} from \"./schemas/index.js\";\nimport { UmbracoManagementClient } from \"@umbraco-cms/mcp-server-sdk\";\nimport FormData from \"form-data\";\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\nexport const getTemporaryFileAPI = () => ({\n postTemporaryFile: (\n postTemporaryFileBody: PostTemporaryFileBody,\n options?: SecondParameter<typeof UmbracoManagementClient>\n ) => {\n const formData = new FormData();\n formData.append(\"Id\", postTemporaryFileBody.Id);\n formData.append(\"File\", postTemporaryFileBody.File);\n\n const headers = {\n ...formData.getHeaders(),\n ...options?.headers,\n };\n\n return UmbracoManagementClient<void>(\n {\n url: `/umbraco/management/api/v1/temporary-file`,\n method: \"POST\",\n headers: headers,\n data: formData,\n },\n options\n );\n },\n getTemporaryFileById: (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient>\n ) => {\n return UmbracoManagementClient<TemporaryFileResponseModel>(\n { url: `/umbraco/management/api/v1/temporary-file/${id}`, method: \"GET\" },\n options\n );\n },\n\n deleteTemporaryFileById: (\n id: string,\n options?: SecondParameter<typeof UmbracoManagementClient>\n ) => {\n return UmbracoManagementClient<void>(\n {\n url: `/umbraco/management/api/v1/temporary-file/${id}`,\n method: \"DELETE\",\n },\n options\n );\n },\n\n getTemporaryFileConfiguration: (\n options?: SecondParameter<typeof UmbracoManagementClient>\n ) => {\n return UmbracoManagementClient<TemporaryFileConfigurationResponseModel>(\n {\n url: `/umbraco/management/api/v1/temporary-file/configuration`,\n method: \"GET\",\n },\n options\n );\n },\n});\n","import { getUmbracoManagementAPI } from \"@/umb-management-api/api/umbracoManagementAPI.js\";\nimport { getTemporaryFileAPI } from \"@/umb-management-api/temporary-file/index.js\";\n\ntype UmbracoManagementClientType = ReturnType<typeof getUmbracoManagementAPI> &\n ReturnType<typeof getTemporaryFileAPI>;\n\nexport class UmbracoManagementClient {\n private static instance: UmbracoManagementClientType | null = null;\n\n private constructor() {}\n\n public static getClient() {\n if (this.instance === null) {\n this.instance = {\n ...getUmbracoManagementAPI(),\n ...getTemporaryFileAPI(),\n };\n }\n return this.instance;\n }\n}\n","/**\n * Generated by orval v7.21.0 🍺\n * Do not edit manually.\n * Umbraco Management API\n * This shows all APIs available in this version of Umbraco - including all the legacy apis that are available for backward compatibility\n * OpenAPI spec version: Latest\n */\nimport * as zod from 'zod';\n\n\nexport const getCultureQuerySkipDefault = 0;export const getCultureQueryTakeDefault = 100;\n\nexport const getCultureQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getCultureQueryTakeDefault)\n})\n\n\n\n\n\nexport const getCultureResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().min(1),\n \"englishName\": zod.string().min(1)\n}))\n})\n\n\n\n\n\n\nexport const postDataTypeBody = zod.object({\n \"name\": zod.string().min(1),\n \"editorAlias\": zod.string().min(1),\n \"editorUiAlias\": zod.string(),\n \"values\": zod.array(zod.object({\n \"alias\": zod.string(),\n \"value\": zod.unknown().nullish()\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDataTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const getDataTypeByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"editorAlias\": zod.string().min(1),\n \"editorUiAlias\": zod.string(),\n \"values\": zod.array(zod.object({\n \"alias\": zod.string(),\n \"value\": zod.unknown().nullish()\n})),\n \"id\": zod.uuid(),\n \"isDeletable\": zod.boolean(),\n \"canIgnoreStartNodes\": zod.boolean()\n})\n\n\nexport const deleteDataTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDataTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putDataTypeByIdBody = zod.object({\n \"name\": zod.string().min(1),\n \"editorAlias\": zod.string().min(1),\n \"editorUiAlias\": zod.string(),\n \"values\": zod.array(zod.object({\n \"alias\": zod.string(),\n \"value\": zod.unknown().nullish()\n}))\n})\n\n\nexport const postDataTypeByIdCopyParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postDataTypeByIdCopyBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDataTypeByIdIsUsedParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDataTypeByIdIsUsedResponse = zod.boolean()\n\n\nexport const putDataTypeByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDataTypeByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDataTypeByIdReferencedByParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDataTypeByIdReferencedByQuerySkipDefault = 0;export const getDataTypeByIdReferencedByQueryTakeDefault = 20;\n\nexport const getDataTypeByIdReferencedByQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDataTypeByIdReferencedByQueryTakeDefault)\n})\n\nexport const getDataTypeByIdReferencedByResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DefaultReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}),zod.object({\n \"$type\": zod.enum(['DocumentReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"published\": zod.boolean().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}),zod.object({\n \"$type\": zod.enum(['DocumentTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n})]))\n})\n\n\nexport const getDataTypeConfigurationResponse = zod.object({\n \"canBeChanged\": zod.enum(['True', 'False', 'FalseWithHelpText']),\n \"documentListViewId\": zod.uuid(),\n \"mediaListViewId\": zod.uuid()\n})\n\n\n\n\n\nexport const postDataTypeFolderBody = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDataTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getDataTypeFolderByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteDataTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDataTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const putDataTypeFolderByIdBody = zod.object({\n \"name\": zod.string().min(1)\n})\n\n\nexport const getFilterDataTypeQuerySkipDefault = 0;export const getFilterDataTypeQueryTakeDefault = 100;export const getFilterDataTypeQueryNameDefault = \"\";\n\nexport const getFilterDataTypeQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getFilterDataTypeQueryTakeDefault),\n \"name\": zod.string().optional(),\n \"editorUiAlias\": zod.string().optional(),\n \"editorAlias\": zod.string().optional()\n})\n\nexport const getFilterDataTypeResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"editorUiAlias\": zod.string().nullish(),\n \"editorAlias\": zod.string(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getItemDataTypeQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemDataTypeResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"editorUiAlias\": zod.string().nullish(),\n \"editorAlias\": zod.string(),\n \"isDeletable\": zod.boolean()\n})\nexport const getItemDataTypeResponse = zod.array(getItemDataTypeResponseItem)\n\n\nexport const getItemDataTypeSearchQuerySkipDefault = 0;export const getItemDataTypeSearchQueryTakeDefault = 100;\n\nexport const getItemDataTypeSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemDataTypeSearchQueryTakeDefault)\n})\n\nexport const getItemDataTypeSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"editorUiAlias\": zod.string().nullish(),\n \"editorAlias\": zod.string(),\n \"isDeletable\": zod.boolean()\n})),\n \"total\": zod.number()\n})\n\n\nexport const getTreeDataTypeAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeDataTypeAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"editorUiAlias\": zod.string().nullish(),\n \"isDeletable\": zod.boolean()\n})\nexport const getTreeDataTypeAncestorsResponse = zod.array(getTreeDataTypeAncestorsResponseItem)\n\n\nexport const getTreeDataTypeChildrenQuerySkipDefault = 0;export const getTreeDataTypeChildrenQueryTakeDefault = 100;export const getTreeDataTypeChildrenQueryFoldersOnlyDefault = false;\n\nexport const getTreeDataTypeChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDataTypeChildrenQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDataTypeChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"editorUiAlias\": zod.string().nullish(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getTreeDataTypeRootQuerySkipDefault = 0;export const getTreeDataTypeRootQueryTakeDefault = 100;export const getTreeDataTypeRootQueryFoldersOnlyDefault = false;\n\nexport const getTreeDataTypeRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDataTypeRootQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDataTypeRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"editorUiAlias\": zod.string().nullish(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getTreeDataTypeSiblingsQueryFoldersOnlyDefault = false;\n\nexport const getTreeDataTypeSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDataTypeSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"editorUiAlias\": zod.string().nullish(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getDictionaryQuerySkipDefault = 0;export const getDictionaryQueryTakeDefault = 100;\n\nexport const getDictionaryQueryParams = zod.object({\n \"filter\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDictionaryQueryTakeDefault)\n})\n\nexport const getDictionaryResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"translatedIsoCodes\": zod.array(zod.string())\n}))\n})\n\n\n\n\n\n\nexport const postDictionaryBody = zod.object({\n \"name\": zod.string().min(1),\n \"translations\": zod.array(zod.object({\n \"isoCode\": zod.string().min(1),\n \"translation\": zod.string()\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDictionaryByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const getDictionaryByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"translations\": zod.array(zod.object({\n \"isoCode\": zod.string().min(1),\n \"translation\": zod.string()\n})),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteDictionaryByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDictionaryByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putDictionaryByIdBody = zod.object({\n \"name\": zod.string().min(1),\n \"translations\": zod.array(zod.object({\n \"isoCode\": zod.string().min(1),\n \"translation\": zod.string()\n}))\n})\n\n\nexport const getDictionaryByIdExportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDictionaryByIdExportQueryIncludeChildrenDefault = false;\n\nexport const getDictionaryByIdExportQueryParams = zod.object({\n \"includeChildren\": zod.coerce.boolean().optional()\n})\n\nexport const getDictionaryByIdExportResponse = zod.instanceof(File)\n\n\nexport const putDictionaryByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDictionaryByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const postDictionaryImportBody = zod.object({\n \"temporaryFile\": zod.object({\n \"id\": zod.uuid()\n}),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getItemDictionaryQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemDictionaryResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n})\nexport const getItemDictionaryResponse = zod.array(getItemDictionaryResponseItem)\n\n\nexport const getTreeDictionaryAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeDictionaryAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n})\nexport const getTreeDictionaryAncestorsResponse = zod.array(getTreeDictionaryAncestorsResponseItem)\n\n\nexport const getTreeDictionaryChildrenQuerySkipDefault = 0;export const getTreeDictionaryChildrenQueryTakeDefault = 100;\n\nexport const getTreeDictionaryChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDictionaryChildrenQueryTakeDefault)\n})\n\nexport const getTreeDictionaryChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\nexport const getTreeDictionaryRootQuerySkipDefault = 0;export const getTreeDictionaryRootQueryTakeDefault = 100;\n\nexport const getTreeDictionaryRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDictionaryRootQueryTakeDefault)\n})\n\nexport const getTreeDictionaryRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\n\n\n\n\nexport const postDocumentBlueprintBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const getDocumentBlueprintByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getDocumentBlueprintByIdResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed']),\n \"publishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledPublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledUnpublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n}))\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n})\n\n\nexport const deleteDocumentBlueprintByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDocumentBlueprintByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putDocumentBlueprintByIdBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n}))\n})\n\n\nexport const putDocumentBlueprintByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentBlueprintByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDocumentBlueprintByIdScaffoldParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getDocumentBlueprintByIdScaffoldResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed']),\n \"publishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledPublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledUnpublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n}))\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n})\n\n\n\n\n\nexport const postDocumentBlueprintFolderBody = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDocumentBlueprintFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getDocumentBlueprintFolderByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteDocumentBlueprintFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDocumentBlueprintFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const putDocumentBlueprintFolderByIdBody = zod.object({\n \"name\": zod.string().min(1)\n})\n\n\nexport const postDocumentBlueprintFromDocumentBody = zod.object({\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"id\": zod.uuid().nullish(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getItemDocumentBlueprintQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemDocumentBlueprintResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n})\nexport const getItemDocumentBlueprintResponse = zod.array(getItemDocumentBlueprintResponseItem)\n\n\nexport const getTreeDocumentBlueprintAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeDocumentBlueprintAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}).nullish()\n})\nexport const getTreeDocumentBlueprintAncestorsResponse = zod.array(getTreeDocumentBlueprintAncestorsResponseItem)\n\n\nexport const getTreeDocumentBlueprintChildrenQuerySkipDefault = 0;export const getTreeDocumentBlueprintChildrenQueryTakeDefault = 100;export const getTreeDocumentBlueprintChildrenQueryFoldersOnlyDefault = false;\n\nexport const getTreeDocumentBlueprintChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDocumentBlueprintChildrenQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDocumentBlueprintChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}).nullish()\n}))\n})\n\n\nexport const getTreeDocumentBlueprintRootQuerySkipDefault = 0;export const getTreeDocumentBlueprintRootQueryTakeDefault = 100;export const getTreeDocumentBlueprintRootQueryFoldersOnlyDefault = false;\n\nexport const getTreeDocumentBlueprintRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDocumentBlueprintRootQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDocumentBlueprintRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}).nullish()\n}))\n})\n\n\nexport const getTreeDocumentBlueprintSiblingsQueryFoldersOnlyDefault = false;\n\nexport const getTreeDocumentBlueprintSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDocumentBlueprintSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}).nullish()\n}))\n})\n\n\n\n\n\n\n\n\n\n\nexport const postDocumentTypeBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"allowedTemplates\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"defaultTemplate\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"cleanup\": zod.object({\n \"preventCleanup\": zod.boolean(),\n \"keepAllVersionsNewerThanDays\": zod.number().nullish(),\n \"keepLatestVersionPerDayForDays\": zod.number().nullish()\n}),\n \"allowedDocumentTypes\": zod.array(zod.object({\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const getDocumentTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\n\n\n\nexport const getDocumentTypeByIdResponse = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"id\": zod.uuid(),\n \"allowedTemplates\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"defaultTemplate\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"cleanup\": zod.object({\n \"preventCleanup\": zod.boolean(),\n \"keepAllVersionsNewerThanDays\": zod.number().nullish(),\n \"keepLatestVersionPerDayForDays\": zod.number().nullish()\n}),\n \"allowedDocumentTypes\": zod.array(zod.object({\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const deleteDocumentTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDocumentTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\n\n\n\nexport const putDocumentTypeByIdBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"allowedTemplates\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"defaultTemplate\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"cleanup\": zod.object({\n \"preventCleanup\": zod.boolean(),\n \"keepAllVersionsNewerThanDays\": zod.number().nullish(),\n \"keepLatestVersionPerDayForDays\": zod.number().nullish()\n}),\n \"allowedDocumentTypes\": zod.array(zod.object({\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const getDocumentTypeByIdAllowedChildrenParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentTypeByIdAllowedChildrenQuerySkipDefault = 0;export const getDocumentTypeByIdAllowedChildrenQueryTakeDefault = 100;\n\nexport const getDocumentTypeByIdAllowedChildrenQueryParams = zod.object({\n \"parentContentKey\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentTypeByIdAllowedChildrenQueryTakeDefault)\n})\n\nexport const getDocumentTypeByIdAllowedChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}))\n})\n\n\nexport const getDocumentTypeByIdBlueprintParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentTypeByIdBlueprintQuerySkipDefault = 0;export const getDocumentTypeByIdBlueprintQueryTakeDefault = 100;\n\nexport const getDocumentTypeByIdBlueprintQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentTypeByIdBlueprintQueryTakeDefault)\n})\n\nexport const getDocumentTypeByIdBlueprintResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\nexport const getDocumentTypeByIdCompositionReferencesParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentTypeByIdCompositionReferencesResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"icon\": zod.string()\n})\nexport const getDocumentTypeByIdCompositionReferencesResponse = zod.array(getDocumentTypeByIdCompositionReferencesResponseItem)\n\n\nexport const postDocumentTypeByIdCopyParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postDocumentTypeByIdCopyBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDocumentTypeByIdExportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentTypeByIdExportResponse = zod.instanceof(File)\n\n\nexport const putDocumentTypeByIdImportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentTypeByIdImportBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const putDocumentTypeByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentTypeByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const postDocumentTypeByIdTemplateParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const postDocumentTypeByIdTemplateBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"isDefault\": zod.boolean()\n})\n\n\nexport const getDocumentTypeAllowedAtRootQuerySkipDefault = 0;export const getDocumentTypeAllowedAtRootQueryTakeDefault = 100;\n\nexport const getDocumentTypeAllowedAtRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentTypeAllowedAtRootQueryTakeDefault)\n})\n\nexport const getDocumentTypeAllowedAtRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}))\n})\n\n\nexport const postDocumentTypeAvailableCompositionsBody = zod.object({\n \"id\": zod.uuid().nullish(),\n \"currentPropertyAliases\": zod.array(zod.string()),\n \"currentCompositeIds\": zod.array(zod.uuid()),\n \"isElement\": zod.boolean()\n})\n\nexport const postDocumentTypeAvailableCompositionsResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"icon\": zod.string(),\n \"folderPath\": zod.array(zod.string()),\n \"isCompatible\": zod.boolean()\n})\nexport const postDocumentTypeAvailableCompositionsResponse = zod.array(postDocumentTypeAvailableCompositionsResponseItem)\n\n\nexport const getDocumentTypeConfigurationResponse = zod.object({\n \"dataTypesCanBeChanged\": zod.enum(['True', 'False', 'FalseWithHelpText']),\n \"disableTemplates\": zod.boolean(),\n \"useSegments\": zod.boolean(),\n \"reservedFieldNames\": zod.array(zod.string())\n})\n\n\n\n\n\nexport const postDocumentTypeFolderBody = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDocumentTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getDocumentTypeFolderByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteDocumentTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDocumentTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const putDocumentTypeFolderByIdBody = zod.object({\n \"name\": zod.string().min(1)\n})\n\n\nexport const postDocumentTypeImportBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const getItemDocumentTypeQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemDocumentTypeResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isElement\": zod.boolean(),\n \"icon\": zod.string().nullish(),\n \"description\": zod.string().nullish()\n})\nexport const getItemDocumentTypeResponse = zod.array(getItemDocumentTypeResponseItem)\n\n\nexport const getItemDocumentTypeSearchQuerySkipDefault = 0;export const getItemDocumentTypeSearchQueryTakeDefault = 100;\n\nexport const getItemDocumentTypeSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"isElement\": zod.coerce.boolean().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemDocumentTypeSearchQueryTakeDefault)\n})\n\nexport const getItemDocumentTypeSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isElement\": zod.boolean(),\n \"icon\": zod.string().nullish(),\n \"description\": zod.string().nullish()\n})),\n \"total\": zod.number()\n})\n\n\nexport const getTreeDocumentTypeAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeDocumentTypeAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"isElement\": zod.boolean(),\n \"icon\": zod.string()\n})\nexport const getTreeDocumentTypeAncestorsResponse = zod.array(getTreeDocumentTypeAncestorsResponseItem)\n\n\nexport const getTreeDocumentTypeChildrenQuerySkipDefault = 0;export const getTreeDocumentTypeChildrenQueryTakeDefault = 100;export const getTreeDocumentTypeChildrenQueryFoldersOnlyDefault = false;\n\nexport const getTreeDocumentTypeChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDocumentTypeChildrenQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDocumentTypeChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"isElement\": zod.boolean(),\n \"icon\": zod.string()\n}))\n})\n\n\nexport const getTreeDocumentTypeRootQuerySkipDefault = 0;export const getTreeDocumentTypeRootQueryTakeDefault = 100;export const getTreeDocumentTypeRootQueryFoldersOnlyDefault = false;\n\nexport const getTreeDocumentTypeRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDocumentTypeRootQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDocumentTypeRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"isElement\": zod.boolean(),\n \"icon\": zod.string()\n}))\n})\n\n\nexport const getTreeDocumentTypeSiblingsQueryFoldersOnlyDefault = false;\n\nexport const getTreeDocumentTypeSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeDocumentTypeSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"isElement\": zod.boolean(),\n \"icon\": zod.string()\n}))\n})\n\n\nexport const getDocumentVersionQuerySkipDefault = 0;export const getDocumentVersionQueryTakeDefault = 100;\n\nexport const getDocumentVersionQueryParams = zod.object({\n \"documentId\": zod.uuid(),\n \"culture\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentVersionQueryTakeDefault)\n})\n\nexport const getDocumentVersionResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"versionDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"isCurrentPublishedVersion\": zod.boolean(),\n \"isCurrentDraftVersion\": zod.boolean(),\n \"preventCleanup\": zod.boolean()\n}))\n})\n\n\nexport const getDocumentVersionByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getDocumentVersionByIdResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed']),\n \"publishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledPublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledUnpublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n}))\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const putDocumentVersionByIdPreventCleanupParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentVersionByIdPreventCleanupQueryParams = zod.object({\n \"preventCleanup\": zod.coerce.boolean().optional()\n})\n\n\nexport const postDocumentVersionByIdRollbackParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postDocumentVersionByIdRollbackQueryParams = zod.object({\n \"culture\": zod.string().optional()\n})\n\n\nexport const getCollectionDocumentByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getCollectionDocumentByIdQueryOrderByDefault = \"updateDate\";export const getCollectionDocumentByIdQuerySkipDefault = 0;export const getCollectionDocumentByIdQueryTakeDefault = 100;\n\nexport const getCollectionDocumentByIdQueryParams = zod.object({\n \"dataTypeId\": zod.uuid().optional(),\n \"orderBy\": zod.string().default(getCollectionDocumentByIdQueryOrderByDefault),\n \"orderCulture\": zod.string().optional(),\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"filter\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getCollectionDocumentByIdQueryTakeDefault)\n})\n\n\n\n\n\n\nexport const getCollectionDocumentByIdResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed']),\n \"publishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledPublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledUnpublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n}))\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"creator\": zod.string().nullish(),\n \"sortOrder\": zod.number(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"alias\": zod.string(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"isTrashed\": zod.boolean(),\n \"isProtected\": zod.boolean(),\n \"ancestors\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"updater\": zod.string().nullish()\n}))\n})\n\n\n\n\n\n\nexport const postDocumentBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"template\": zod.object({\n \"id\": zod.uuid()\n}).nullable()\n})\n\n\nexport const getDocumentByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getDocumentByIdResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed']),\n \"publishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledPublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledUnpublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n}))\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"template\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isTrashed\": zod.boolean()\n})\n\n\nexport const deleteDocumentByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putDocumentByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putDocumentByIdBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"template\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getDocumentByIdAuditLogParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdAuditLogQuerySkipDefault = 0;export const getDocumentByIdAuditLogQueryTakeDefault = 100;\n\nexport const getDocumentByIdAuditLogQueryParams = zod.object({\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"sinceDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentByIdAuditLogQueryTakeDefault)\n})\n\nexport const getDocumentByIdAuditLogResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"timestamp\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"logType\": zod.enum(['New', 'Save', 'SaveVariant', 'Open', 'Delete', 'Publish', 'PublishVariant', 'SendToPublish', 'SendToPublishVariant', 'Unpublish', 'UnpublishVariant', 'Move', 'Copy', 'AssignDomain', 'PublicAccess', 'Sort', 'Notify', 'System', 'RollBack', 'PackagerInstall', 'PackagerUninstall', 'Custom', 'ContentVersionPreventCleanup', 'ContentVersionEnableCleanup']),\n \"comment\": zod.string().nullish(),\n \"parameters\": zod.string().nullish()\n}))\n})\n\n\n/**\n * @deprecated\n */\nexport const getDocumentByIdAvailableSegmentOptionsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdAvailableSegmentOptionsQuerySkipDefault = 0;export const getDocumentByIdAvailableSegmentOptionsQueryTakeDefault = 100;\n\nexport const getDocumentByIdAvailableSegmentOptionsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentByIdAvailableSegmentOptionsQueryTakeDefault)\n})\n\nexport const getDocumentByIdAvailableSegmentOptionsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"cultures\": zod.array(zod.string()).nullish()\n}))\n})\n\n\nexport const postDocumentByIdCopyParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postDocumentByIdCopyBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"relateToOriginal\": zod.boolean(),\n \"includeDescendants\": zod.boolean()\n})\n\n\nexport const getDocumentByIdDomainsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdDomainsResponse = zod.object({\n \"defaultIsoCode\": zod.string().nullish(),\n \"domains\": zod.array(zod.object({\n \"domainName\": zod.string(),\n \"isoCode\": zod.string()\n}))\n})\n\n\nexport const putDocumentByIdDomainsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdDomainsBody = zod.object({\n \"defaultIsoCode\": zod.string().nullish(),\n \"domains\": zod.array(zod.object({\n \"domainName\": zod.string(),\n \"isoCode\": zod.string()\n}))\n})\n\n\nexport const putDocumentByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const putDocumentByIdMoveToRecycleBinParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getDocumentByIdNotificationsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdNotificationsResponseItem = zod.object({\n \"actionId\": zod.string(),\n \"alias\": zod.string(),\n \"subscribed\": zod.boolean()\n})\nexport const getDocumentByIdNotificationsResponse = zod.array(getDocumentByIdNotificationsResponseItem)\n\n\nexport const putDocumentByIdNotificationsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdNotificationsBody = zod.object({\n \"subscribedActionIds\": zod.array(zod.string())\n})\n\n\nexport const getDocumentByIdPreviewUrlParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdPreviewUrlQueryParams = zod.object({\n \"providerAlias\": zod.string().optional(),\n \"culture\": zod.string().optional(),\n \"segment\": zod.string().optional()\n})\n\nexport const getDocumentByIdPreviewUrlResponse = zod.object({\n \"culture\": zod.string().nullable(),\n \"url\": zod.string().nullable(),\n \"message\": zod.string().nullable(),\n \"provider\": zod.string()\n})\n\n\nexport const postDocumentByIdPublicAccessParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postDocumentByIdPublicAccessBody = zod.object({\n \"loginDocument\": zod.object({\n \"id\": zod.uuid()\n}),\n \"errorDocument\": zod.object({\n \"id\": zod.uuid()\n}),\n \"memberUserNames\": zod.array(zod.string()),\n \"memberGroupNames\": zod.array(zod.string())\n})\n\n\nexport const deleteDocumentByIdPublicAccessParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getDocumentByIdPublicAccessParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdPublicAccessResponse = zod.object({\n \"loginDocument\": zod.object({\n \"id\": zod.uuid()\n}),\n \"errorDocument\": zod.object({\n \"id\": zod.uuid()\n}),\n \"members\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n})),\n \"kind\": zod.enum(['Default', 'Api'])\n})),\n \"groups\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\nexport const putDocumentByIdPublicAccessParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdPublicAccessBody = zod.object({\n \"loginDocument\": zod.object({\n \"id\": zod.uuid()\n}),\n \"errorDocument\": zod.object({\n \"id\": zod.uuid()\n}),\n \"memberUserNames\": zod.array(zod.string()),\n \"memberGroupNames\": zod.array(zod.string())\n})\n\n\nexport const putDocumentByIdPublishParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdPublishBody = zod.object({\n \"publishSchedules\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"schedule\": zod.object({\n \"publishTime\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"unpublishTime\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish()\n}).nullish()\n}))\n})\n\n\nexport const putDocumentByIdPublishWithDescendantsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdPublishWithDescendantsBody = zod.object({\n \"includeUnpublishedDescendants\": zod.boolean(),\n \"cultures\": zod.array(zod.string())\n})\n\nexport const putDocumentByIdPublishWithDescendantsResponse = zod.object({\n \"taskId\": zod.uuid(),\n \"isComplete\": zod.boolean()\n})\n\n\nexport const getDocumentByIdPublishWithDescendantsResultByTaskIdParams = zod.object({\n \"id\": zod.uuid(),\n \"taskId\": zod.uuid()\n})\n\nexport const getDocumentByIdPublishWithDescendantsResultByTaskIdResponse = zod.object({\n \"taskId\": zod.uuid(),\n \"isComplete\": zod.boolean()\n})\n\n\nexport const getDocumentByIdPublishedParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getDocumentByIdPublishedResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed']),\n \"publishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledPublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"scheduledUnpublishDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n}))\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"template\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isTrashed\": zod.boolean()\n})\n\n\nexport const getDocumentByIdReferencedByParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdReferencedByQuerySkipDefault = 0;export const getDocumentByIdReferencedByQueryTakeDefault = 20;\n\nexport const getDocumentByIdReferencedByQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentByIdReferencedByQueryTakeDefault)\n})\n\nexport const getDocumentByIdReferencedByResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DefaultReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}),zod.object({\n \"$type\": zod.enum(['DocumentReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"published\": zod.boolean().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}),zod.object({\n \"$type\": zod.enum(['DocumentTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n})]))\n})\n\n\nexport const getDocumentByIdReferencedDescendantsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getDocumentByIdReferencedDescendantsQuerySkipDefault = 0;export const getDocumentByIdReferencedDescendantsQueryTakeDefault = 20;\n\nexport const getDocumentByIdReferencedDescendantsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentByIdReferencedDescendantsQueryTakeDefault)\n})\n\nexport const getDocumentByIdReferencedDescendantsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const putDocumentByIdUnpublishParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putDocumentByIdUnpublishBody = zod.object({\n \"cultures\": zod.array(zod.string()).nullish()\n})\n\n\nexport const putUmbracoManagementApiV11DocumentByIdValidate11Params = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putUmbracoManagementApiV11DocumentByIdValidate11Body = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"template\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"cultures\": zod.array(zod.string()).nullish()\n})\n\n\nexport const getDocumentAreReferencedQuerySkipDefault = 0;export const getDocumentAreReferencedQueryTakeDefault = 20;\n\nexport const getDocumentAreReferencedQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getDocumentAreReferencedQueryTakeDefault)\n})\n\nexport const getDocumentAreReferencedResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const getDocumentConfigurationResponse = zod.object({\n \"disableDeleteWhenReferenced\": zod.boolean(),\n \"disableUnpublishWhenReferenced\": zod.boolean(),\n \"allowEditInvariantFromNonDefault\": zod.boolean(),\n \"allowNonExistingSegmentsCreation\": zod.boolean()\n})\n\n\nexport const putDocumentSortBody = zod.object({\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sorting\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"sortOrder\": zod.number()\n}))\n})\n\n\nexport const getDocumentUrlsQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getDocumentUrlsResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"urlInfos\": zod.array(zod.object({\n \"culture\": zod.string().nullable(),\n \"url\": zod.string().nullable(),\n \"message\": zod.string().nullable(),\n \"provider\": zod.string()\n}))\n})\nexport const getDocumentUrlsResponse = zod.array(getDocumentUrlsResponseItem)\n\n\n\n\n\n\nexport const postDocumentValidateBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"template\": zod.object({\n \"id\": zod.uuid()\n}).nullable()\n})\n\n\nexport const getItemDocumentQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemDocumentResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"isTrashed\": zod.boolean(),\n \"isProtected\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"hasChildren\": zod.boolean(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n})\nexport const getItemDocumentResponse = zod.array(getItemDocumentResponseItem)\n\n\nexport const getItemDocumentSearchQuerySkipDefault = 0;export const getItemDocumentSearchQueryTakeDefault = 100;\n\nexport const getItemDocumentSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"trashed\": zod.coerce.boolean().optional(),\n \"culture\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemDocumentSearchQueryTakeDefault),\n \"parentId\": zod.uuid().optional(),\n \"allowedDocumentTypes\": zod.array(zod.uuid()).optional(),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getItemDocumentSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"isTrashed\": zod.boolean(),\n \"isProtected\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"hasChildren\": zod.boolean(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n})),\n \"total\": zod.number()\n})\n\n\nexport const deleteRecycleBinDocumentByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getRecycleBinDocumentByIdOriginalParentParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getRecycleBinDocumentByIdOriginalParentResponse = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putRecycleBinDocumentByIdRestoreParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putRecycleBinDocumentByIdRestoreBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getRecycleBinDocumentChildrenQuerySkipDefault = 0;export const getRecycleBinDocumentChildrenQueryTakeDefault = 100;\n\nexport const getRecycleBinDocumentChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRecycleBinDocumentChildrenQueryTakeDefault)\n})\n\nexport const getRecycleBinDocumentChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"hasChildren\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}))\n})\n\n\nexport const getRecycleBinDocumentReferencedByQuerySkipDefault = 0;export const getRecycleBinDocumentReferencedByQueryTakeDefault = 20;\n\nexport const getRecycleBinDocumentReferencedByQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRecycleBinDocumentReferencedByQueryTakeDefault)\n})\n\nexport const getRecycleBinDocumentReferencedByResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DefaultReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}),zod.object({\n \"$type\": zod.enum(['DocumentReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"published\": zod.boolean().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}),zod.object({\n \"$type\": zod.enum(['DocumentTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n})]))\n})\n\n\nexport const getRecycleBinDocumentRootQuerySkipDefault = 0;export const getRecycleBinDocumentRootQueryTakeDefault = 100;\n\nexport const getRecycleBinDocumentRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRecycleBinDocumentRootQueryTakeDefault)\n})\n\nexport const getRecycleBinDocumentRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"hasChildren\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}))\n})\n\n\nexport const getRecycleBinDocumentSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getRecycleBinDocumentSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"hasChildren\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}))\n})\n\n\nexport const getTreeDocumentAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeDocumentAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"isProtected\": zod.boolean(),\n \"ancestors\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n})\nexport const getTreeDocumentAncestorsResponse = zod.array(getTreeDocumentAncestorsResponseItem)\n\n\nexport const getTreeDocumentChildrenQuerySkipDefault = 0;export const getTreeDocumentChildrenQueryTakeDefault = 100;\n\nexport const getTreeDocumentChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDocumentChildrenQueryTakeDefault),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getTreeDocumentChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"isProtected\": zod.boolean(),\n \"ancestors\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}))\n})\n\n\nexport const getTreeDocumentRootQuerySkipDefault = 0;export const getTreeDocumentRootQueryTakeDefault = 100;\n\nexport const getTreeDocumentRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeDocumentRootQueryTakeDefault),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getTreeDocumentRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"isProtected\": zod.boolean(),\n \"ancestors\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}))\n})\n\n\nexport const getTreeDocumentSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getTreeDocumentSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"isProtected\": zod.boolean(),\n \"ancestors\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}))\n})\n\n\nexport const postDynamicRootQueryBody = zod.object({\n \"context\": zod.object({\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}),\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish()\n}),\n \"query\": zod.object({\n \"origin\": zod.object({\n \"alias\": zod.string(),\n \"id\": zod.uuid().nullish()\n}),\n \"steps\": zod.array(zod.object({\n \"alias\": zod.string(),\n \"documentTypeIds\": zod.array(zod.uuid())\n}))\n})\n})\n\nexport const postDynamicRootQueryResponse = zod.object({\n \"roots\": zod.array(zod.uuid())\n})\n\n\nexport const getDynamicRootStepsResponseItem = zod.string()\nexport const getDynamicRootStepsResponse = zod.array(getDynamicRootStepsResponseItem)\n\n\nexport const getHealthCheckGroupQuerySkipDefault = 0;export const getHealthCheckGroupQueryTakeDefault = 100;\n\nexport const getHealthCheckGroupQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getHealthCheckGroupQueryTakeDefault)\n})\n\nexport const getHealthCheckGroupResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string()\n}))\n})\n\n\nexport const getHealthCheckGroupByNameParams = zod.object({\n \"name\": zod.string()\n})\n\nexport const getHealthCheckGroupByNameResponse = zod.object({\n \"name\": zod.string(),\n \"checks\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"description\": zod.string().nullish()\n}))\n})\n\n\nexport const postHealthCheckGroupByNameCheckParams = zod.object({\n \"name\": zod.string()\n})\n\nexport const postHealthCheckGroupByNameCheckResponse = zod.object({\n \"checks\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"results\": zod.array(zod.object({\n \"message\": zod.string(),\n \"resultType\": zod.enum(['Success', 'Warning', 'Error', 'Info']),\n \"actions\": zod.array(zod.object({\n \"healthCheck\": zod.object({\n \"id\": zod.uuid()\n}),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"valueRequired\": zod.boolean(),\n \"providedValue\": zod.string().nullish(),\n \"providedValueValidation\": zod.string().nullish(),\n \"providedValueValidationRegex\": zod.string().nullish(),\n \"actionParameters\": zod.record(zod.string(), zod.unknown()).nullish()\n})).nullish(),\n \"readMoreLink\": zod.string().nullish()\n})).nullish()\n}))\n})\n\n\nexport const postHealthCheckExecuteActionBody = zod.object({\n \"healthCheck\": zod.object({\n \"id\": zod.uuid()\n}),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"valueRequired\": zod.boolean(),\n \"providedValue\": zod.string().nullish(),\n \"providedValueValidation\": zod.string().nullish(),\n \"providedValueValidationRegex\": zod.string().nullish(),\n \"actionParameters\": zod.record(zod.string(), zod.unknown()).nullish()\n})\n\nexport const postHealthCheckExecuteActionResponse = zod.object({\n \"message\": zod.string(),\n \"resultType\": zod.enum(['Success', 'Warning', 'Error', 'Info']),\n \"actions\": zod.array(zod.object({\n \"healthCheck\": zod.object({\n \"id\": zod.uuid()\n}),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"valueRequired\": zod.boolean(),\n \"providedValue\": zod.string().nullish(),\n \"providedValueValidation\": zod.string().nullish(),\n \"providedValueValidationRegex\": zod.string().nullish(),\n \"actionParameters\": zod.record(zod.string(), zod.unknown()).nullish()\n})).nullish(),\n \"readMoreLink\": zod.string().nullish()\n})\n\n\n/**\n * @deprecated\n */\nexport const getHelpQuerySkipDefault = 0;export const getHelpQueryTakeDefault = 100;export const getHelpQueryBaseUrlDefault = \"https://our.umbraco.com\";\n\nexport const getHelpQueryParams = zod.object({\n \"section\": zod.string().optional(),\n \"tree\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getHelpQueryTakeDefault),\n \"baseUrl\": zod.string().default(getHelpQueryBaseUrlDefault)\n})\n\nexport const getHelpResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"url\": zod.string().nullish(),\n \"type\": zod.string().nullish()\n}))\n})\n\n\nexport const getImagingResizeUrlsQueryHeightDefault = 200;export const getImagingResizeUrlsQueryWidthDefault = 200;\n\nexport const getImagingResizeUrlsQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional(),\n \"height\": zod.coerce.number().default(getImagingResizeUrlsQueryHeightDefault),\n \"width\": zod.coerce.number().default(getImagingResizeUrlsQueryWidthDefault),\n \"mode\": zod.enum(['Crop', 'Max', 'Stretch', 'Pad', 'BoxPad', 'Min']).optional()\n})\n\nexport const getImagingResizeUrlsResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"urlInfos\": zod.array(zod.object({\n \"culture\": zod.string().nullable(),\n \"url\": zod.string().nullable()\n}))\n})\nexport const getImagingResizeUrlsResponse = zod.array(getImagingResizeUrlsResponseItem)\n\n\nexport const getImportAnalyzeQueryParams = zod.object({\n \"temporaryFileId\": zod.uuid().optional()\n})\n\nexport const getImportAnalyzeResponse = zod.object({\n \"entityType\": zod.string(),\n \"alias\": zod.string().nullish(),\n \"key\": zod.uuid().nullish()\n})\n\n\nexport const getIndexerQuerySkipDefault = 0;export const getIndexerQueryTakeDefault = 100;\n\nexport const getIndexerQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getIndexerQueryTakeDefault)\n})\n\n\n\n\nexport const getIndexerResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().min(1),\n \"healthStatus\": zod.object({\n \"status\": zod.enum(['Healthy', 'Unhealthy', 'Rebuilding', 'Corrupt']),\n \"message\": zod.string().nullish()\n}),\n \"canRebuild\": zod.boolean(),\n \"searcherName\": zod.string(),\n \"documentCount\": zod.number(),\n \"fieldCount\": zod.number(),\n \"providerProperties\": zod.record(zod.string(), zod.unknown().nullable()).nullish()\n}))\n})\n\n\nexport const getIndexerByIndexNameParams = zod.object({\n \"indexName\": zod.string()\n})\n\n\n\n\nexport const getIndexerByIndexNameResponse = zod.object({\n \"name\": zod.string().min(1),\n \"healthStatus\": zod.object({\n \"status\": zod.enum(['Healthy', 'Unhealthy', 'Rebuilding', 'Corrupt']),\n \"message\": zod.string().nullish()\n}),\n \"canRebuild\": zod.boolean(),\n \"searcherName\": zod.string(),\n \"documentCount\": zod.number(),\n \"fieldCount\": zod.number(),\n \"providerProperties\": zod.record(zod.string(), zod.unknown().nullable()).nullish()\n})\n\n\nexport const postIndexerByIndexNameRebuildParams = zod.object({\n \"indexName\": zod.string()\n})\n\n\n\n\n\n\n\n\n\nexport const getInstallSettingsResponse = zod.object({\n \"user\": zod.object({\n \"minCharLength\": zod.number(),\n \"minNonAlphaNumericLength\": zod.number(),\n \"consentLevels\": zod.array(zod.object({\n \"level\": zod.enum(['Minimal', 'Basic', 'Detailed']),\n \"description\": zod.string().min(1)\n}))\n}),\n \"databases\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"sortOrder\": zod.number(),\n \"displayName\": zod.string().min(1),\n \"defaultDatabaseName\": zod.string().min(1),\n \"providerName\": zod.string().min(1),\n \"isConfigured\": zod.boolean(),\n \"requiresServer\": zod.boolean(),\n \"serverPlaceholder\": zod.string().min(1),\n \"requiresCredentials\": zod.boolean(),\n \"supportsIntegratedAuthentication\": zod.boolean(),\n \"supportsTrustServerCertificate\": zod.boolean(),\n \"requiresConnectionTest\": zod.boolean()\n}))\n})\n\n\nexport const postInstallSetupBodyUserNameMin = 0;\nexport const postInstallSetupBodyUserNameMax = 255;\n\n\n\n\n\n\nexport const postInstallSetupBody = zod.object({\n \"user\": zod.object({\n \"name\": zod.string().min(postInstallSetupBodyUserNameMin).max(postInstallSetupBodyUserNameMax),\n \"email\": zod.email().min(1),\n \"password\": zod.string().min(1),\n \"subscribeToNewsletter\": zod.boolean()\n}),\n \"database\": zod.object({\n \"id\": zod.uuid(),\n \"providerName\": zod.string().min(1),\n \"server\": zod.string().nullish(),\n \"name\": zod.string().nullish(),\n \"username\": zod.string().nullish(),\n \"password\": zod.string().nullish(),\n \"useIntegratedAuthentication\": zod.boolean(),\n \"connectionString\": zod.string().nullish(),\n \"trustServerCertificate\": zod.boolean()\n}),\n \"telemetryLevel\": zod.enum(['Minimal', 'Basic', 'Detailed'])\n})\n\n\n\n\n\nexport const postInstallValidateDatabaseBody = zod.object({\n \"id\": zod.uuid(),\n \"providerName\": zod.string().min(1),\n \"server\": zod.string().nullish(),\n \"name\": zod.string().nullish(),\n \"username\": zod.string().nullish(),\n \"password\": zod.string().nullish(),\n \"useIntegratedAuthentication\": zod.boolean(),\n \"connectionString\": zod.string().nullish(),\n \"trustServerCertificate\": zod.boolean()\n})\n\n\nexport const getItemLanguageQueryParams = zod.object({\n \"isoCode\": zod.array(zod.string()).optional()\n})\n\n\n\n\n\nexport const getItemLanguageResponseItem = zod.object({\n \"name\": zod.string().min(1),\n \"isoCode\": zod.string().min(1)\n})\nexport const getItemLanguageResponse = zod.array(getItemLanguageResponseItem)\n\n\n\n\n\n\nexport const getItemLanguageDefaultResponse = zod.object({\n \"name\": zod.string().min(1),\n \"isoCode\": zod.string().min(1)\n})\n\n\nexport const getLanguageQuerySkipDefault = 0;export const getLanguageQueryTakeDefault = 100;\n\nexport const getLanguageQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getLanguageQueryTakeDefault)\n})\n\n\n\n\n\nexport const getLanguageResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().min(1),\n \"isDefault\": zod.boolean(),\n \"isMandatory\": zod.boolean(),\n \"fallbackIsoCode\": zod.string().nullish(),\n \"isoCode\": zod.string().min(1)\n}))\n})\n\n\n\n\n\n\nexport const postLanguageBody = zod.object({\n \"name\": zod.string().min(1),\n \"isDefault\": zod.boolean(),\n \"isMandatory\": zod.boolean(),\n \"fallbackIsoCode\": zod.string().nullish(),\n \"isoCode\": zod.string().min(1)\n})\n\n\nexport const getLanguageByIsoCodeParams = zod.object({\n \"isoCode\": zod.string()\n})\n\n\n\n\n\nexport const getLanguageByIsoCodeResponse = zod.object({\n \"name\": zod.string().min(1),\n \"isDefault\": zod.boolean(),\n \"isMandatory\": zod.boolean(),\n \"fallbackIsoCode\": zod.string().nullish(),\n \"isoCode\": zod.string().min(1)\n})\n\n\nexport const deleteLanguageByIsoCodeParams = zod.object({\n \"isoCode\": zod.string()\n})\n\n\nexport const putLanguageByIsoCodeParams = zod.object({\n \"isoCode\": zod.string()\n})\n\n\n\n\nexport const putLanguageByIsoCodeBody = zod.object({\n \"name\": zod.string().min(1),\n \"isDefault\": zod.boolean(),\n \"isMandatory\": zod.boolean(),\n \"fallbackIsoCode\": zod.string().nullish()\n})\n\n\nexport const getLogViewerLevelQuerySkipDefault = 0;export const getLogViewerLevelQueryTakeDefault = 100;\n\nexport const getLogViewerLevelQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getLogViewerLevelQueryTakeDefault)\n})\n\nexport const getLogViewerLevelResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"level\": zod.enum(['Verbose', 'Debug', 'Information', 'Warning', 'Error', 'Fatal'])\n}))\n})\n\n\nexport const getLogViewerLevelCountQueryParams = zod.object({\n \"startDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional(),\n \"endDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional()\n})\n\nexport const getLogViewerLevelCountResponse = zod.object({\n \"information\": zod.number(),\n \"debug\": zod.number(),\n \"warning\": zod.number(),\n \"error\": zod.number(),\n \"fatal\": zod.number()\n})\n\n\nexport const getLogViewerLogQuerySkipDefault = 0;export const getLogViewerLogQueryTakeDefault = 100;\n\nexport const getLogViewerLogQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getLogViewerLogQueryTakeDefault),\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"filterExpression\": zod.string().optional(),\n \"logLevel\": zod.array(zod.enum(['Verbose', 'Debug', 'Information', 'Warning', 'Error', 'Fatal'])).optional(),\n \"startDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional(),\n \"endDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional()\n})\n\nexport const getLogViewerLogResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"timestamp\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"level\": zod.enum(['Verbose', 'Debug', 'Information', 'Warning', 'Error', 'Fatal']),\n \"messageTemplate\": zod.string().nullish(),\n \"renderedMessage\": zod.string().nullish(),\n \"properties\": zod.array(zod.object({\n \"name\": zod.string(),\n \"value\": zod.string().nullish()\n})),\n \"exception\": zod.string().nullish()\n}))\n})\n\n\nexport const getLogViewerMessageTemplateQuerySkipDefault = 0;export const getLogViewerMessageTemplateQueryTakeDefault = 100;\n\nexport const getLogViewerMessageTemplateQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getLogViewerMessageTemplateQueryTakeDefault),\n \"startDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional(),\n \"endDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional()\n})\n\nexport const getLogViewerMessageTemplateResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"messageTemplate\": zod.string().nullish(),\n \"count\": zod.number()\n}))\n})\n\n\nexport const getLogViewerSavedSearchQuerySkipDefault = 0;export const getLogViewerSavedSearchQueryTakeDefault = 100;\n\nexport const getLogViewerSavedSearchQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getLogViewerSavedSearchQueryTakeDefault)\n})\n\nexport const getLogViewerSavedSearchResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"query\": zod.string()\n}))\n})\n\n\nexport const postLogViewerSavedSearchBody = zod.object({\n \"name\": zod.string(),\n \"query\": zod.string()\n})\n\n\nexport const getLogViewerSavedSearchByNameParams = zod.object({\n \"name\": zod.string()\n})\n\nexport const getLogViewerSavedSearchByNameResponse = zod.object({\n \"name\": zod.string(),\n \"query\": zod.string()\n})\n\n\nexport const deleteLogViewerSavedSearchByNameParams = zod.object({\n \"name\": zod.string()\n})\n\n\nexport const getLogViewerValidateLogsSizeQueryParams = zod.object({\n \"startDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional(),\n \"endDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional()\n})\n\n\n\n\n\nexport const getManifestManifestResponseItem = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.string().nullish(),\n \"version\": zod.string().nullish(),\n \"extensions\": zod.array(zod.unknown())\n})\nexport const getManifestManifestResponse = zod.array(getManifestManifestResponseItem)\n\n\n\n\n\nexport const getManifestManifestPrivateResponseItem = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.string().nullish(),\n \"version\": zod.string().nullish(),\n \"extensions\": zod.array(zod.unknown())\n})\nexport const getManifestManifestPrivateResponse = zod.array(getManifestManifestPrivateResponseItem)\n\n\n\n\n\nexport const getManifestManifestPublicResponseItem = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.string().nullish(),\n \"version\": zod.string().nullish(),\n \"extensions\": zod.array(zod.unknown())\n})\nexport const getManifestManifestPublicResponse = zod.array(getManifestManifestPublicResponseItem)\n\n\nexport const getItemMediaTypeQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemMediaTypeResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish()\n})\nexport const getItemMediaTypeResponse = zod.array(getItemMediaTypeResponseItem)\n\n\nexport const getItemMediaTypeAllowedQuerySkipDefault = 0;export const getItemMediaTypeAllowedQueryTakeDefault = 100;\n\nexport const getItemMediaTypeAllowedQueryParams = zod.object({\n \"fileExtension\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemMediaTypeAllowedQueryTakeDefault)\n})\n\nexport const getItemMediaTypeAllowedResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish()\n})),\n \"total\": zod.number()\n})\n\n\nexport const getItemMediaTypeFoldersQuerySkipDefault = 0;export const getItemMediaTypeFoldersQueryTakeDefault = 100;\n\nexport const getItemMediaTypeFoldersQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemMediaTypeFoldersQueryTakeDefault)\n})\n\nexport const getItemMediaTypeFoldersResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish()\n})),\n \"total\": zod.number()\n})\n\n\nexport const getItemMediaTypeSearchQuerySkipDefault = 0;export const getItemMediaTypeSearchQueryTakeDefault = 100;\n\nexport const getItemMediaTypeSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemMediaTypeSearchQueryTakeDefault)\n})\n\nexport const getItemMediaTypeSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish()\n})),\n \"total\": zod.number()\n})\n\n\n\n\n\n\n\n\n\n\nexport const postMediaTypeBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"allowedMediaTypes\": zod.array(zod.object({\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n})),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getMediaTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\n\n\n\nexport const getMediaTypeByIdResponse = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"id\": zod.uuid(),\n \"allowedMediaTypes\": zod.array(zod.object({\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n})),\n \"isDeletable\": zod.boolean(),\n \"aliasCanBeChanged\": zod.boolean()\n})\n\n\nexport const deleteMediaTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMediaTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\n\n\n\nexport const putMediaTypeByIdBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"allowedMediaTypes\": zod.array(zod.object({\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const getMediaTypeByIdAllowedChildrenParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMediaTypeByIdAllowedChildrenQuerySkipDefault = 0;export const getMediaTypeByIdAllowedChildrenQueryTakeDefault = 100;\n\nexport const getMediaTypeByIdAllowedChildrenQueryParams = zod.object({\n \"parentContentKey\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMediaTypeByIdAllowedChildrenQueryTakeDefault)\n})\n\nexport const getMediaTypeByIdAllowedChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}))\n})\n\n\nexport const getMediaTypeByIdCompositionReferencesParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMediaTypeByIdCompositionReferencesResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"icon\": zod.string()\n})\nexport const getMediaTypeByIdCompositionReferencesResponse = zod.array(getMediaTypeByIdCompositionReferencesResponseItem)\n\n\nexport const postMediaTypeByIdCopyParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postMediaTypeByIdCopyBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getMediaTypeByIdExportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMediaTypeByIdExportResponse = zod.instanceof(File)\n\n\nexport const putMediaTypeByIdImportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putMediaTypeByIdImportBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const putMediaTypeByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putMediaTypeByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getMediaTypeAllowedAtRootQuerySkipDefault = 0;export const getMediaTypeAllowedAtRootQueryTakeDefault = 100;\n\nexport const getMediaTypeAllowedAtRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMediaTypeAllowedAtRootQueryTakeDefault)\n})\n\nexport const getMediaTypeAllowedAtRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}))\n})\n\n\nexport const postMediaTypeAvailableCompositionsBody = zod.object({\n \"id\": zod.uuid().nullish(),\n \"currentPropertyAliases\": zod.array(zod.string()),\n \"currentCompositeIds\": zod.array(zod.uuid())\n})\n\nexport const postMediaTypeAvailableCompositionsResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"icon\": zod.string(),\n \"folderPath\": zod.array(zod.string()),\n \"isCompatible\": zod.boolean()\n})\nexport const postMediaTypeAvailableCompositionsResponse = zod.array(postMediaTypeAvailableCompositionsResponseItem)\n\n\nexport const getMediaTypeConfigurationResponse = zod.object({\n \"reservedFieldNames\": zod.array(zod.string())\n})\n\n\n\n\n\nexport const postMediaTypeFolderBody = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getMediaTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getMediaTypeFolderByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteMediaTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMediaTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const putMediaTypeFolderByIdBody = zod.object({\n \"name\": zod.string().min(1)\n})\n\n\nexport const postMediaTypeImportBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const getTreeMediaTypeAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeMediaTypeAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string(),\n \"isDeletable\": zod.boolean()\n})\nexport const getTreeMediaTypeAncestorsResponse = zod.array(getTreeMediaTypeAncestorsResponseItem)\n\n\nexport const getTreeMediaTypeChildrenQuerySkipDefault = 0;export const getTreeMediaTypeChildrenQueryTakeDefault = 100;export const getTreeMediaTypeChildrenQueryFoldersOnlyDefault = false;\n\nexport const getTreeMediaTypeChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMediaTypeChildrenQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeMediaTypeChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getTreeMediaTypeRootQuerySkipDefault = 0;export const getTreeMediaTypeRootQueryTakeDefault = 100;export const getTreeMediaTypeRootQueryFoldersOnlyDefault = false;\n\nexport const getTreeMediaTypeRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMediaTypeRootQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeMediaTypeRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getTreeMediaTypeSiblingsQueryFoldersOnlyDefault = false;\n\nexport const getTreeMediaTypeSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeMediaTypeSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string(),\n \"isDeletable\": zod.boolean()\n}))\n})\n\n\nexport const getCollectionMediaQueryOrderByDefault = \"updateDate\";export const getCollectionMediaQuerySkipDefault = 0;export const getCollectionMediaQueryTakeDefault = 100;\n\nexport const getCollectionMediaQueryParams = zod.object({\n \"id\": zod.uuid().optional(),\n \"dataTypeId\": zod.uuid().optional(),\n \"orderBy\": zod.string().default(getCollectionMediaQueryOrderByDefault),\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"filter\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getCollectionMediaQueryTakeDefault)\n})\n\n\n\n\n\n\nexport const getCollectionMediaResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true})\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"creator\": zod.string().nullish(),\n \"sortOrder\": zod.number(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"alias\": zod.string(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n}))\n})\n\n\nexport const getItemMediaQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemMediaResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"isTrashed\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"hasChildren\": zod.boolean(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n})\nexport const getItemMediaResponse = zod.array(getItemMediaResponseItem)\n\n\nexport const getItemMediaSearchQuerySkipDefault = 0;export const getItemMediaSearchQueryTakeDefault = 100;\n\nexport const getItemMediaSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"trashed\": zod.coerce.boolean().optional(),\n \"culture\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemMediaSearchQueryTakeDefault),\n \"parentId\": zod.uuid().optional(),\n \"allowedMediaTypes\": zod.array(zod.uuid()).optional(),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getItemMediaSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"isTrashed\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"hasChildren\": zod.boolean(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n})),\n \"total\": zod.number()\n})\n\n\n\n\n\n\nexport const postMediaBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const getMediaByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getMediaByIdResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true})\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"isTrashed\": zod.boolean(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n})\n\n\nexport const deleteMediaByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMediaByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putMediaByIdBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n}))\n})\n\n\nexport const getMediaByIdAuditLogParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMediaByIdAuditLogQuerySkipDefault = 0;export const getMediaByIdAuditLogQueryTakeDefault = 100;\n\nexport const getMediaByIdAuditLogQueryParams = zod.object({\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"sinceDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMediaByIdAuditLogQueryTakeDefault)\n})\n\nexport const getMediaByIdAuditLogResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"timestamp\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"logType\": zod.enum(['New', 'Save', 'SaveVariant', 'Open', 'Delete', 'Publish', 'PublishVariant', 'SendToPublish', 'SendToPublishVariant', 'Unpublish', 'UnpublishVariant', 'Move', 'Copy', 'AssignDomain', 'PublicAccess', 'Sort', 'Notify', 'System', 'RollBack', 'PackagerInstall', 'PackagerUninstall', 'Custom', 'ContentVersionPreventCleanup', 'ContentVersionEnableCleanup']),\n \"comment\": zod.string().nullish(),\n \"parameters\": zod.string().nullish()\n}))\n})\n\n\nexport const putMediaByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putMediaByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const putMediaByIdMoveToRecycleBinParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getMediaByIdReferencedByParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMediaByIdReferencedByQuerySkipDefault = 0;export const getMediaByIdReferencedByQueryTakeDefault = 20;\n\nexport const getMediaByIdReferencedByQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMediaByIdReferencedByQueryTakeDefault)\n})\n\nexport const getMediaByIdReferencedByResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DefaultReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}),zod.object({\n \"$type\": zod.enum(['DocumentReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"published\": zod.boolean().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}),zod.object({\n \"$type\": zod.enum(['DocumentTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n})]))\n})\n\n\nexport const getMediaByIdReferencedDescendantsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMediaByIdReferencedDescendantsQuerySkipDefault = 0;export const getMediaByIdReferencedDescendantsQueryTakeDefault = 20;\n\nexport const getMediaByIdReferencedDescendantsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMediaByIdReferencedDescendantsQueryTakeDefault)\n})\n\nexport const getMediaByIdReferencedDescendantsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const putMediaByIdValidateParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putMediaByIdValidateBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n}))\n})\n\n\nexport const getMediaAreReferencedQuerySkipDefault = 0;export const getMediaAreReferencedQueryTakeDefault = 20;\n\nexport const getMediaAreReferencedQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMediaAreReferencedQueryTakeDefault)\n})\n\nexport const getMediaAreReferencedResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\n/**\n * @deprecated\n */\nexport const getMediaConfigurationResponse = zod.object({\n \"disableDeleteWhenReferenced\": zod.boolean(),\n \"disableUnpublishWhenReferenced\": zod.boolean()\n})\n\n\nexport const putMediaSortBody = zod.object({\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sorting\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"sortOrder\": zod.number()\n}))\n})\n\n\nexport const getMediaUrlsQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getMediaUrlsResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"urlInfos\": zod.array(zod.object({\n \"culture\": zod.string().nullable(),\n \"url\": zod.string().nullable()\n}))\n})\nexport const getMediaUrlsResponse = zod.array(getMediaUrlsResponseItem)\n\n\n\n\n\n\nexport const postMediaValidateBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const deleteRecycleBinMediaByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getRecycleBinMediaByIdOriginalParentParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getRecycleBinMediaByIdOriginalParentResponse = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putRecycleBinMediaByIdRestoreParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putRecycleBinMediaByIdRestoreBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getRecycleBinMediaChildrenQuerySkipDefault = 0;export const getRecycleBinMediaChildrenQueryTakeDefault = 100;\n\nexport const getRecycleBinMediaChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRecycleBinMediaChildrenQueryTakeDefault)\n})\n\nexport const getRecycleBinMediaChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"hasChildren\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n}))\n})\n\n\nexport const getRecycleBinMediaReferencedByQuerySkipDefault = 0;export const getRecycleBinMediaReferencedByQueryTakeDefault = 20;\n\nexport const getRecycleBinMediaReferencedByQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRecycleBinMediaReferencedByQueryTakeDefault)\n})\n\nexport const getRecycleBinMediaReferencedByResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DefaultReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}),zod.object({\n \"$type\": zod.enum(['DocumentReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"published\": zod.boolean().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}),zod.object({\n \"$type\": zod.enum(['DocumentTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n})]))\n})\n\n\nexport const getRecycleBinMediaRootQuerySkipDefault = 0;export const getRecycleBinMediaRootQueryTakeDefault = 100;\n\nexport const getRecycleBinMediaRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRecycleBinMediaRootQueryTakeDefault)\n})\n\nexport const getRecycleBinMediaRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"hasChildren\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n}))\n})\n\n\nexport const getRecycleBinMediaSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getRecycleBinMediaSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"hasChildren\": zod.boolean(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n}))\n})\n\n\nexport const getTreeMediaAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeMediaAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n})\nexport const getTreeMediaAncestorsResponse = zod.array(getTreeMediaAncestorsResponseItem)\n\n\nexport const getTreeMediaChildrenQuerySkipDefault = 0;export const getTreeMediaChildrenQueryTakeDefault = 100;\n\nexport const getTreeMediaChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMediaChildrenQueryTakeDefault),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getTreeMediaChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n}))\n})\n\n\nexport const getTreeMediaRootQuerySkipDefault = 0;export const getTreeMediaRootQueryTakeDefault = 100;\n\nexport const getTreeMediaRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMediaRootQueryTakeDefault),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getTreeMediaRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n}))\n})\n\n\nexport const getTreeMediaSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"dataTypeId\": zod.uuid().optional()\n})\n\nexport const getTreeMediaSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"noAccess\": zod.boolean(),\n \"isTrashed\": zod.boolean(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n}))\n}))\n})\n\n\nexport const getItemMemberGroupQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemMemberGroupResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n})\nexport const getItemMemberGroupResponse = zod.array(getItemMemberGroupResponseItem)\n\n\nexport const getMemberGroupQuerySkipDefault = 0;export const getMemberGroupQueryTakeDefault = 100;\n\nexport const getMemberGroupQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMemberGroupQueryTakeDefault)\n})\n\nexport const getMemberGroupResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const postMemberGroupBody = zod.object({\n \"name\": zod.string(),\n \"id\": zod.uuid().nullish()\n})\n\n\nexport const getMemberGroupByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMemberGroupByIdResponse = zod.object({\n \"name\": zod.string(),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteMemberGroupByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMemberGroupByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putMemberGroupByIdBody = zod.object({\n \"name\": zod.string()\n})\n\n\nexport const getTreeMemberGroupRootQuerySkipDefault = 0;export const getTreeMemberGroupRootQueryTakeDefault = 100;\n\nexport const getTreeMemberGroupRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMemberGroupRootQueryTakeDefault)\n})\n\nexport const getTreeMemberGroupRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\nexport const getItemMemberTypeQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemMemberTypeResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish()\n})\nexport const getItemMemberTypeResponse = zod.array(getItemMemberTypeResponseItem)\n\n\nexport const getItemMemberTypeSearchQuerySkipDefault = 0;export const getItemMemberTypeSearchQueryTakeDefault = 100;\n\nexport const getItemMemberTypeSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemMemberTypeSearchQueryTakeDefault)\n})\n\nexport const getItemMemberTypeSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish()\n})),\n \"total\": zod.number()\n})\n\n\n\n\n\n\n\n\n\n\nexport const postMemberTypeBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n}),\n \"isSensitive\": zod.boolean(),\n \"visibility\": zod.object({\n \"memberCanView\": zod.boolean(),\n \"memberCanEdit\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"compositions\": zod.array(zod.object({\n \"memberType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const getMemberTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\n\n\n\nexport const getMemberTypeByIdResponse = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n}),\n \"isSensitive\": zod.boolean(),\n \"visibility\": zod.object({\n \"memberCanView\": zod.boolean(),\n \"memberCanEdit\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"id\": zod.uuid(),\n \"compositions\": zod.array(zod.object({\n \"memberType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const deleteMemberTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMemberTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\n\n\n\nexport const putMemberTypeByIdBody = zod.object({\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().min(1),\n \"allowedAsRoot\": zod.boolean(),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"isElement\": zod.boolean(),\n \"properties\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"container\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"sortOrder\": zod.number(),\n \"alias\": zod.string().min(1),\n \"name\": zod.string().min(1),\n \"description\": zod.string().nullish(),\n \"dataType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"variesByCulture\": zod.boolean(),\n \"variesBySegment\": zod.boolean(),\n \"validation\": zod.object({\n \"mandatory\": zod.boolean(),\n \"mandatoryMessage\": zod.string().nullish(),\n \"regEx\": zod.string().nullish(),\n \"regExMessage\": zod.string().nullish()\n}),\n \"appearance\": zod.object({\n \"labelOnTop\": zod.boolean()\n}),\n \"isSensitive\": zod.boolean(),\n \"visibility\": zod.object({\n \"memberCanView\": zod.boolean(),\n \"memberCanEdit\": zod.boolean()\n})\n})),\n \"containers\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().min(1),\n \"sortOrder\": zod.number()\n})),\n \"compositions\": zod.array(zod.object({\n \"memberType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"compositionType\": zod.enum(['Composition', 'Inheritance'])\n}))\n})\n\n\nexport const getMemberTypeByIdCompositionReferencesParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMemberTypeByIdCompositionReferencesResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"icon\": zod.string()\n})\nexport const getMemberTypeByIdCompositionReferencesResponse = zod.array(getMemberTypeByIdCompositionReferencesResponseItem)\n\n\nexport const postMemberTypeByIdCopyParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postMemberTypeByIdCopyBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getMemberTypeByIdExportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMemberTypeByIdExportResponse = zod.instanceof(File)\n\n\nexport const putMemberTypeByIdImportParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putMemberTypeByIdImportBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const putMemberTypeByIdMoveParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putMemberTypeByIdMoveBody = zod.object({\n \"target\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const postMemberTypeAvailableCompositionsBody = zod.object({\n \"id\": zod.uuid().nullish(),\n \"currentPropertyAliases\": zod.array(zod.string()),\n \"currentCompositeIds\": zod.array(zod.uuid())\n})\n\nexport const postMemberTypeAvailableCompositionsResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string(),\n \"icon\": zod.string(),\n \"folderPath\": zod.array(zod.string()),\n \"isCompatible\": zod.boolean()\n})\nexport const postMemberTypeAvailableCompositionsResponse = zod.array(postMemberTypeAvailableCompositionsResponseItem)\n\n\nexport const getMemberTypeConfigurationResponse = zod.object({\n \"reservedFieldNames\": zod.array(zod.string())\n})\n\n\n\n\n\nexport const postMemberTypeFolderBody = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid().nullish(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getMemberTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getMemberTypeFolderByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"id\": zod.uuid()\n})\n\n\nexport const deleteMemberTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMemberTypeFolderByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const putMemberTypeFolderByIdBody = zod.object({\n \"name\": zod.string().min(1)\n})\n\n\nexport const postMemberTypeImportBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const getTreeMemberTypeAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeMemberTypeAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string()\n})\nexport const getTreeMemberTypeAncestorsResponse = zod.array(getTreeMemberTypeAncestorsResponseItem)\n\n\nexport const getTreeMemberTypeChildrenQuerySkipDefault = 0;export const getTreeMemberTypeChildrenQueryTakeDefault = 100;export const getTreeMemberTypeChildrenQueryFoldersOnlyDefault = false;\n\nexport const getTreeMemberTypeChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMemberTypeChildrenQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeMemberTypeChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string()\n}))\n})\n\n\nexport const getTreeMemberTypeRootQuerySkipDefault = 0;export const getTreeMemberTypeRootQueryTakeDefault = 100;export const getTreeMemberTypeRootQueryFoldersOnlyDefault = false;\n\nexport const getTreeMemberTypeRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeMemberTypeRootQueryTakeDefault),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeMemberTypeRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string()\n}))\n})\n\n\nexport const getTreeMemberTypeSiblingsQueryFoldersOnlyDefault = false;\n\nexport const getTreeMemberTypeSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional(),\n \"foldersOnly\": zod.coerce.boolean().optional()\n})\n\nexport const getTreeMemberTypeSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isFolder\": zod.boolean(),\n \"icon\": zod.string()\n}))\n})\n\n\nexport const getFilterMemberQueryOrderByDefault = \"username\";export const getFilterMemberQuerySkipDefault = 0;export const getFilterMemberQueryTakeDefault = 100;\n\nexport const getFilterMemberQueryParams = zod.object({\n \"memberTypeId\": zod.uuid().optional(),\n \"memberGroupName\": zod.string().optional(),\n \"isApproved\": zod.coerce.boolean().optional(),\n \"isLockedOut\": zod.coerce.boolean().optional(),\n \"orderBy\": zod.string().default(getFilterMemberQueryOrderByDefault),\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"filter\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getFilterMemberQueryTakeDefault)\n})\n\n\n\n\n\n\nexport const getFilterMemberResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true})\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"email\": zod.string(),\n \"username\": zod.string(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"isApproved\": zod.boolean(),\n \"isLockedOut\": zod.boolean(),\n \"isTwoFactorEnabled\": zod.boolean(),\n \"failedPasswordAttempts\": zod.number(),\n \"lastLoginDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastLockoutDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastPasswordChangeDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"groups\": zod.array(zod.uuid()),\n \"kind\": zod.enum(['Default', 'Api'])\n}))\n})\n\n\nexport const getItemMemberQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemMemberResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n})),\n \"kind\": zod.enum(['Default', 'Api'])\n})\nexport const getItemMemberResponse = zod.array(getItemMemberResponseItem)\n\n\nexport const getItemMemberSearchQuerySkipDefault = 0;export const getItemMemberSearchQueryTakeDefault = 100;\n\nexport const getItemMemberSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemMemberSearchQueryTakeDefault),\n \"allowedMemberTypes\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemMemberSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish()\n})),\n \"kind\": zod.enum(['Default', 'Api'])\n})),\n \"total\": zod.number()\n})\n\n\n\n\n\n\nexport const postMemberBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"email\": zod.string(),\n \"username\": zod.string(),\n \"password\": zod.string(),\n \"memberType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"groups\": zod.array(zod.uuid()).nullish(),\n \"isApproved\": zod.boolean()\n})\n\n\nexport const getMemberByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\n\nexport const getMemberByIdResponse = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish(),\n \"editorAlias\": zod.string().min(1)\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true})\n})),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"email\": zod.string(),\n \"username\": zod.string(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string(),\n \"collection\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n}),\n \"isApproved\": zod.boolean(),\n \"isLockedOut\": zod.boolean(),\n \"isTwoFactorEnabled\": zod.boolean(),\n \"failedPasswordAttempts\": zod.number(),\n \"lastLoginDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastLockoutDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastPasswordChangeDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"groups\": zod.array(zod.uuid()),\n \"kind\": zod.enum(['Default', 'Api'])\n})\n\n\nexport const deleteMemberByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putMemberByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putMemberByIdBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"email\": zod.string(),\n \"username\": zod.string(),\n \"oldPassword\": zod.string().nullish(),\n \"newPassword\": zod.string().nullish(),\n \"groups\": zod.array(zod.uuid()).nullish(),\n \"isApproved\": zod.boolean(),\n \"isLockedOut\": zod.boolean(),\n \"isTwoFactorEnabled\": zod.boolean()\n})\n\n\nexport const getMemberByIdReferencedByParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMemberByIdReferencedByQuerySkipDefault = 0;export const getMemberByIdReferencedByQueryTakeDefault = 20;\n\nexport const getMemberByIdReferencedByQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMemberByIdReferencedByQueryTakeDefault)\n})\n\nexport const getMemberByIdReferencedByResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DefaultReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"type\": zod.string().nullish(),\n \"icon\": zod.string().nullish()\n}),zod.object({\n \"$type\": zod.enum(['DocumentReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"published\": zod.boolean().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n}),\n \"variants\": zod.array(zod.object({\n \"name\": zod.string(),\n \"culture\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"state\": zod.enum(['NotCreated', 'Draft', 'Published', 'PublishedPendingChanges', 'Trashed'])\n}))\n}),zod.object({\n \"$type\": zod.enum(['DocumentTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"documentType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MediaTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"mediaType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n}),zod.object({\n \"$type\": zod.enum(['MemberTypePropertyTypeReferenceResponseModel']),\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"memberType\": zod.object({\n \"id\": zod.uuid(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish(),\n \"name\": zod.string().nullish()\n})\n})]))\n})\n\n\nexport const getMemberByIdReferencedDescendantsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getMemberByIdReferencedDescendantsQuerySkipDefault = 0;export const getMemberByIdReferencedDescendantsQueryTakeDefault = 20;\n\nexport const getMemberByIdReferencedDescendantsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMemberByIdReferencedDescendantsQueryTakeDefault)\n})\n\nexport const getMemberByIdReferencedDescendantsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const putMemberByIdValidateParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putMemberByIdValidateBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"email\": zod.string(),\n \"username\": zod.string(),\n \"oldPassword\": zod.string().nullish(),\n \"newPassword\": zod.string().nullish(),\n \"groups\": zod.array(zod.uuid()).nullish(),\n \"isApproved\": zod.boolean(),\n \"isLockedOut\": zod.boolean(),\n \"isTwoFactorEnabled\": zod.boolean()\n})\n\n\nexport const getMemberAreReferencedQuerySkipDefault = 0;export const getMemberAreReferencedQueryTakeDefault = 20;\n\nexport const getMemberAreReferencedQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getMemberAreReferencedQueryTakeDefault)\n})\n\nexport const getMemberAreReferencedResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const getMemberConfigurationResponse = zod.object({\n\n})\n\n\n\n\n\n\nexport const postMemberValidateBody = zod.object({\n \"values\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"alias\": zod.string().min(1),\n \"value\": zod.unknown().nullish()\n})),\n \"variants\": zod.array(zod.object({\n \"culture\": zod.string().nullish(),\n \"segment\": zod.string().nullish(),\n \"name\": zod.string().min(1)\n})),\n \"id\": zod.uuid().nullish(),\n \"email\": zod.string(),\n \"username\": zod.string(),\n \"password\": zod.string(),\n \"memberType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"groups\": zod.array(zod.uuid()).nullish(),\n \"isApproved\": zod.boolean()\n})\n\n\nexport const getModelsBuilderDashboardResponse = zod.object({\n \"mode\": zod.string(),\n \"canGenerate\": zod.boolean(),\n \"outOfDateModels\": zod.boolean(),\n \"lastError\": zod.string().nullish(),\n \"version\": zod.string().nullish(),\n \"modelsNamespace\": zod.string().nullish(),\n \"trackingOutOfDateModels\": zod.boolean()\n})\n\n\nexport const getModelsBuilderStatusResponse = zod.object({\n \"status\": zod.enum(['OutOfDate', 'Current', 'Unknown'])\n})\n\n\nexport const getNewsDashboardResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"priority\": zod.string(),\n \"header\": zod.string(),\n \"body\": zod.string().nullish(),\n \"buttonText\": zod.string().nullish(),\n \"imageUrl\": zod.string().nullish(),\n \"imageAltText\": zod.string().nullish(),\n \"url\": zod.string().nullish()\n}))\n})\n\n\nexport const getObjectTypesQuerySkipDefault = 0;export const getObjectTypesQueryTakeDefault = 100;\n\nexport const getObjectTypesQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getObjectTypesQueryTakeDefault)\n})\n\nexport const getObjectTypesResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().nullish(),\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const getOembedQueryQueryParams = zod.object({\n \"url\": zod.url().optional(),\n \"maxWidth\": zod.coerce.number().optional(),\n \"maxHeight\": zod.coerce.number().optional()\n})\n\nexport const getOembedQueryResponse = zod.object({\n \"markup\": zod.string()\n})\n\n\nexport const postPackageByNameRunMigrationParams = zod.object({\n \"name\": zod.string()\n})\n\n\nexport const getPackageConfigurationResponse = zod.object({\n \"marketplaceUrl\": zod.string()\n})\n\n\nexport const getPackageCreatedQuerySkipDefault = 0;export const getPackageCreatedQueryTakeDefault = 100;\n\nexport const getPackageCreatedQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getPackageCreatedQueryTakeDefault)\n})\n\nexport const getPackageCreatedResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"contentNodeId\": zod.string().nullish(),\n \"contentLoadChildNodes\": zod.boolean(),\n \"mediaIds\": zod.array(zod.uuid()),\n \"mediaLoadChildNodes\": zod.boolean(),\n \"documentTypes\": zod.array(zod.string()),\n \"mediaTypes\": zod.array(zod.string()),\n \"dataTypes\": zod.array(zod.string()),\n \"templates\": zod.array(zod.string()),\n \"partialViews\": zod.array(zod.string()),\n \"stylesheets\": zod.array(zod.string()),\n \"scripts\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"dictionaryItems\": zod.array(zod.string()),\n \"id\": zod.uuid(),\n \"packagePath\": zod.string()\n}))\n})\n\n\nexport const postPackageCreatedBody = zod.object({\n \"name\": zod.string(),\n \"contentNodeId\": zod.string().nullish(),\n \"contentLoadChildNodes\": zod.boolean(),\n \"mediaIds\": zod.array(zod.uuid()),\n \"mediaLoadChildNodes\": zod.boolean(),\n \"documentTypes\": zod.array(zod.string()),\n \"mediaTypes\": zod.array(zod.string()),\n \"dataTypes\": zod.array(zod.string()),\n \"templates\": zod.array(zod.string()),\n \"partialViews\": zod.array(zod.string()),\n \"stylesheets\": zod.array(zod.string()),\n \"scripts\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"dictionaryItems\": zod.array(zod.string()),\n \"id\": zod.uuid().nullish()\n})\n\n\nexport const getPackageCreatedByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getPackageCreatedByIdResponse = zod.object({\n \"name\": zod.string(),\n \"contentNodeId\": zod.string().nullish(),\n \"contentLoadChildNodes\": zod.boolean(),\n \"mediaIds\": zod.array(zod.uuid()),\n \"mediaLoadChildNodes\": zod.boolean(),\n \"documentTypes\": zod.array(zod.string()),\n \"mediaTypes\": zod.array(zod.string()),\n \"dataTypes\": zod.array(zod.string()),\n \"templates\": zod.array(zod.string()),\n \"partialViews\": zod.array(zod.string()),\n \"stylesheets\": zod.array(zod.string()),\n \"scripts\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"dictionaryItems\": zod.array(zod.string()),\n \"id\": zod.uuid(),\n \"packagePath\": zod.string()\n})\n\n\nexport const deletePackageCreatedByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putPackageCreatedByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putPackageCreatedByIdBody = zod.object({\n \"name\": zod.string(),\n \"contentNodeId\": zod.string().nullish(),\n \"contentLoadChildNodes\": zod.boolean(),\n \"mediaIds\": zod.array(zod.uuid()),\n \"mediaLoadChildNodes\": zod.boolean(),\n \"documentTypes\": zod.array(zod.string()),\n \"mediaTypes\": zod.array(zod.string()),\n \"dataTypes\": zod.array(zod.string()),\n \"templates\": zod.array(zod.string()),\n \"partialViews\": zod.array(zod.string()),\n \"stylesheets\": zod.array(zod.string()),\n \"scripts\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"dictionaryItems\": zod.array(zod.string()),\n \"packagePath\": zod.string()\n})\n\n\nexport const getPackageCreatedByIdDownloadParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getPackageCreatedByIdDownloadResponse = zod.instanceof(File)\n\n\nexport const getPackageMigrationStatusQuerySkipDefault = 0;export const getPackageMigrationStatusQueryTakeDefault = 100;\n\nexport const getPackageMigrationStatusQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getPackageMigrationStatusQueryTakeDefault)\n})\n\nexport const getPackageMigrationStatusResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"packageName\": zod.string(),\n \"hasPendingMigrations\": zod.boolean()\n}))\n})\n\n\nexport const getItemPartialViewQueryParams = zod.object({\n \"path\": zod.array(zod.string()).optional()\n})\n\nexport const getItemPartialViewResponseItem = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getItemPartialViewResponse = zod.array(getItemPartialViewResponseItem)\n\n\nexport const postPartialViewBody = zod.object({\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"content\": zod.string()\n})\n\n\nexport const getPartialViewByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const getPartialViewByPathResponse = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"content\": zod.string()\n})\n\n\nexport const deletePartialViewByPathParams = zod.object({\n \"path\": zod.string()\n})\n\n\nexport const putPartialViewByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const putPartialViewByPathBody = zod.object({\n \"content\": zod.string()\n})\n\n\nexport const putPartialViewByPathRenameParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const putPartialViewByPathRenameBody = zod.object({\n \"name\": zod.string()\n})\n\n\nexport const postPartialViewFolderBody = zod.object({\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish()\n})\n\n\nexport const getPartialViewFolderByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const getPartialViewFolderByPathResponse = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish()\n})\n\n\nexport const deletePartialViewFolderByPathParams = zod.object({\n \"path\": zod.string()\n})\n\n\nexport const getPartialViewSnippetQuerySkipDefault = 0;export const getPartialViewSnippetQueryTakeDefault = 100;\n\nexport const getPartialViewSnippetQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getPartialViewSnippetQueryTakeDefault)\n})\n\nexport const getPartialViewSnippetResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.string(),\n \"name\": zod.string()\n}))\n})\n\n\nexport const getPartialViewSnippetByIdParams = zod.object({\n \"id\": zod.string()\n})\n\nexport const getPartialViewSnippetByIdResponse = zod.object({\n \"id\": zod.string(),\n \"name\": zod.string(),\n \"content\": zod.string()\n})\n\n\nexport const getTreePartialViewAncestorsQueryParams = zod.object({\n \"descendantPath\": zod.string().optional()\n})\n\nexport const getTreePartialViewAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getTreePartialViewAncestorsResponse = zod.array(getTreePartialViewAncestorsResponseItem)\n\n\nexport const getTreePartialViewChildrenQuerySkipDefault = 0;export const getTreePartialViewChildrenQueryTakeDefault = 100;\n\nexport const getTreePartialViewChildrenQueryParams = zod.object({\n \"parentPath\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreePartialViewChildrenQueryTakeDefault)\n})\n\nexport const getTreePartialViewChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreePartialViewRootQuerySkipDefault = 0;export const getTreePartialViewRootQueryTakeDefault = 100;\n\nexport const getTreePartialViewRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreePartialViewRootQueryTakeDefault)\n})\n\nexport const getTreePartialViewRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreePartialViewSiblingsQueryParams = zod.object({\n \"path\": zod.string().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional()\n})\n\nexport const getTreePartialViewSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getProfilingStatusResponse = zod.object({\n \"enabled\": zod.boolean()\n})\n\n\nexport const putProfilingStatusBody = zod.object({\n \"enabled\": zod.boolean()\n})\n\n\nexport const getPropertyTypeIsUsedQueryParams = zod.object({\n \"contentTypeId\": zod.uuid().optional(),\n \"propertyAlias\": zod.string().optional()\n})\n\nexport const getPropertyTypeIsUsedResponse = zod.boolean()\n\n\nexport const getPublishedCacheRebuildStatusResponse = zod.object({\n \"isRebuilding\": zod.boolean()\n})\n\n\nexport const getRedirectManagementQuerySkipDefault = 0;export const getRedirectManagementQueryTakeDefault = 100;\n\nexport const getRedirectManagementQueryParams = zod.object({\n \"filter\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRedirectManagementQueryTakeDefault)\n})\n\nexport const getRedirectManagementResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"originalUrl\": zod.string(),\n \"destinationUrl\": zod.string(),\n \"created\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"culture\": zod.string().nullish()\n}))\n})\n\n\nexport const getRedirectManagementByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getRedirectManagementByIdQuerySkipDefault = 0;export const getRedirectManagementByIdQueryTakeDefault = 100;\n\nexport const getRedirectManagementByIdQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRedirectManagementByIdQueryTakeDefault)\n})\n\nexport const getRedirectManagementByIdResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"originalUrl\": zod.string(),\n \"destinationUrl\": zod.string(),\n \"created\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"culture\": zod.string().nullish()\n}))\n})\n\n\nexport const deleteRedirectManagementByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getRedirectManagementStatusResponse = zod.object({\n \"status\": zod.enum(['Enabled', 'Disabled']),\n \"userIsAdmin\": zod.boolean()\n})\n\n\nexport const postRedirectManagementStatusQueryParams = zod.object({\n \"status\": zod.enum(['Enabled', 'Disabled']).optional()\n})\n\n\nexport const getItemRelationTypeQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemRelationTypeResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"isDeletable\": zod.boolean()\n})\nexport const getItemRelationTypeResponse = zod.array(getItemRelationTypeResponseItem)\n\n\nexport const getRelationTypeQuerySkipDefault = 0;export const getRelationTypeQueryTakeDefault = 100;\n\nexport const getRelationTypeQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRelationTypeQueryTakeDefault)\n})\n\n\n\n\nexport const getRelationTypeResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().min(1),\n \"isBidirectional\": zod.boolean(),\n \"isDependency\": zod.boolean(),\n \"id\": zod.uuid(),\n \"alias\": zod.string().nullish(),\n \"parentObject\": zod.object({\n \"name\": zod.string().nullish(),\n \"id\": zod.uuid()\n}).nullish(),\n \"childObject\": zod.object({\n \"name\": zod.string().nullish(),\n \"id\": zod.uuid()\n}).nullish()\n}))\n})\n\n\nexport const getRelationTypeByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getRelationTypeByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"isBidirectional\": zod.boolean(),\n \"isDependency\": zod.boolean(),\n \"id\": zod.uuid(),\n \"alias\": zod.string().nullish(),\n \"parentObject\": zod.object({\n \"name\": zod.string().nullish(),\n \"id\": zod.uuid()\n}).nullish(),\n \"childObject\": zod.object({\n \"name\": zod.string().nullish(),\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const getRelationByRelationTypeIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getRelationByRelationTypeIdQuerySkipDefault = 0;export const getRelationByRelationTypeIdQueryTakeDefault = 100;\n\nexport const getRelationByRelationTypeIdQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getRelationByRelationTypeIdQueryTakeDefault)\n})\n\nexport const getRelationByRelationTypeIdResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"relationType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"parent\": zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish()\n}),\n \"child\": zod.object({\n \"id\": zod.uuid(),\n \"name\": zod.string().nullish()\n}),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"comment\": zod.string().nullish()\n}))\n})\n\n\nexport const getItemScriptQueryParams = zod.object({\n \"path\": zod.array(zod.string()).optional()\n})\n\nexport const getItemScriptResponseItem = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getItemScriptResponse = zod.array(getItemScriptResponseItem)\n\n\nexport const postScriptBody = zod.object({\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"content\": zod.string()\n})\n\n\nexport const getScriptByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const getScriptByPathResponse = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"content\": zod.string()\n})\n\n\nexport const deleteScriptByPathParams = zod.object({\n \"path\": zod.string()\n})\n\n\nexport const putScriptByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const putScriptByPathBody = zod.object({\n \"content\": zod.string()\n})\n\n\nexport const putScriptByPathRenameParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const putScriptByPathRenameBody = zod.object({\n \"name\": zod.string()\n})\n\n\nexport const postScriptFolderBody = zod.object({\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish()\n})\n\n\nexport const getScriptFolderByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const getScriptFolderByPathResponse = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish()\n})\n\n\nexport const deleteScriptFolderByPathParams = zod.object({\n \"path\": zod.string()\n})\n\n\nexport const getTreeScriptAncestorsQueryParams = zod.object({\n \"descendantPath\": zod.string().optional()\n})\n\nexport const getTreeScriptAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getTreeScriptAncestorsResponse = zod.array(getTreeScriptAncestorsResponseItem)\n\n\nexport const getTreeScriptChildrenQuerySkipDefault = 0;export const getTreeScriptChildrenQueryTakeDefault = 100;\n\nexport const getTreeScriptChildrenQueryParams = zod.object({\n \"parentPath\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeScriptChildrenQueryTakeDefault)\n})\n\nexport const getTreeScriptChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreeScriptRootQuerySkipDefault = 0;export const getTreeScriptRootQueryTakeDefault = 100;\n\nexport const getTreeScriptRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeScriptRootQueryTakeDefault)\n})\n\nexport const getTreeScriptRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreeScriptSiblingsQueryParams = zod.object({\n \"path\": zod.string().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional()\n})\n\nexport const getTreeScriptSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getSearcherQuerySkipDefault = 0;export const getSearcherQueryTakeDefault = 100;\n\nexport const getSearcherQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getSearcherQueryTakeDefault)\n})\n\n\n\n\nexport const getSearcherResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string().min(1)\n}))\n})\n\n\nexport const getSearcherBySearcherNameQueryParams = zod.object({\n \"searcherName\": zod.string()\n})\n\nexport const getSearcherBySearcherNameQueryQuerySkipDefault = 0;export const getSearcherBySearcherNameQueryQueryTakeDefault = 100;\n\nexport const getSearcherBySearcherNameQueryQueryParams = zod.object({\n \"term\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getSearcherBySearcherNameQueryQueryTakeDefault)\n})\n\n\n\n\nexport const getSearcherBySearcherNameQueryResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.string().min(1),\n \"score\": zod.number(),\n \"fieldCount\": zod.number(),\n \"fields\": zod.array(zod.object({\n \"name\": zod.string(),\n \"values\": zod.array(zod.string())\n}))\n}))\n})\n\n\nexport const getSecurityConfigurationResponse = zod.object({\n \"passwordConfiguration\": zod.object({\n \"minimumPasswordLength\": zod.number(),\n \"requireNonLetterOrDigit\": zod.boolean(),\n \"requireDigit\": zod.boolean(),\n \"requireLowercase\": zod.boolean(),\n \"requireUppercase\": zod.boolean()\n})\n})\n\n\n\n\n\nexport const postSecurityForgotPasswordBody = zod.object({\n \"email\": zod.string().min(1)\n})\n\n\n\n\n\nexport const postSecurityForgotPasswordResetBody = zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"resetCode\": zod.string(),\n \"password\": zod.string().min(1)\n})\n\n\nexport const postSecurityForgotPasswordVerifyBody = zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"resetCode\": zod.string()\n})\n\nexport const postSecurityForgotPasswordVerifyResponse = zod.object({\n \"passwordConfiguration\": zod.object({\n \"minimumPasswordLength\": zod.number(),\n \"requireNonLetterOrDigit\": zod.boolean(),\n \"requireDigit\": zod.boolean(),\n \"requireLowercase\": zod.boolean(),\n \"requireUppercase\": zod.boolean()\n})\n})\n\n\nexport const getSegmentQuerySkipDefault = 0;export const getSegmentQueryTakeDefault = 100;\n\nexport const getSegmentQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getSegmentQueryTakeDefault)\n})\n\nexport const getSegmentResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"cultures\": zod.array(zod.string()).nullish()\n}))\n})\n\n\nexport const getServerConfigurationResponse = zod.object({\n \"allowPasswordReset\": zod.boolean(),\n \"versionCheckPeriod\": zod.number(),\n \"allowLocalLogin\": zod.boolean(),\n \"umbracoCssPath\": zod.string()\n})\n\n\nexport const getServerInformationResponse = zod.object({\n \"version\": zod.string(),\n \"assemblyVersion\": zod.string(),\n \"baseUtcOffset\": zod.string(),\n \"runtimeMode\": zod.enum(['BackofficeDevelopment', 'Development', 'Production'])\n})\n\n\nexport const getServerStatusResponse = zod.object({\n \"serverStatus\": zod.enum(['Unknown', 'Boot', 'Install', 'Upgrade', 'Run', 'BootFailed'])\n})\n\n\nexport const getServerTroubleshootingResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"data\": zod.string()\n}))\n})\n\n\n/**\n * @deprecated\n */\nexport const getServerUpgradeCheckResponse = zod.object({\n \"type\": zod.string(),\n \"comment\": zod.string(),\n \"url\": zod.string()\n})\n\n\nexport const getItemStaticFileQueryParams = zod.object({\n \"path\": zod.array(zod.string()).optional()\n})\n\nexport const getItemStaticFileResponseItem = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getItemStaticFileResponse = zod.array(getItemStaticFileResponseItem)\n\n\nexport const getTreeStaticFileAncestorsQueryParams = zod.object({\n \"descendantPath\": zod.string().optional()\n})\n\nexport const getTreeStaticFileAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getTreeStaticFileAncestorsResponse = zod.array(getTreeStaticFileAncestorsResponseItem)\n\n\nexport const getTreeStaticFileChildrenQuerySkipDefault = 0;export const getTreeStaticFileChildrenQueryTakeDefault = 100;\n\nexport const getTreeStaticFileChildrenQueryParams = zod.object({\n \"parentPath\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeStaticFileChildrenQueryTakeDefault)\n})\n\nexport const getTreeStaticFileChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreeStaticFileRootQuerySkipDefault = 0;export const getTreeStaticFileRootQueryTakeDefault = 100;\n\nexport const getTreeStaticFileRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeStaticFileRootQueryTakeDefault)\n})\n\nexport const getTreeStaticFileRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getItemStylesheetQueryParams = zod.object({\n \"path\": zod.array(zod.string()).optional()\n})\n\nexport const getItemStylesheetResponseItem = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getItemStylesheetResponse = zod.array(getItemStylesheetResponseItem)\n\n\nexport const postStylesheetBody = zod.object({\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"content\": zod.string()\n})\n\n\nexport const getStylesheetByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const getStylesheetByPathResponse = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"content\": zod.string()\n})\n\n\nexport const deleteStylesheetByPathParams = zod.object({\n \"path\": zod.string()\n})\n\n\nexport const putStylesheetByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const putStylesheetByPathBody = zod.object({\n \"content\": zod.string()\n})\n\n\nexport const putStylesheetByPathRenameParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const putStylesheetByPathRenameBody = zod.object({\n \"name\": zod.string()\n})\n\n\nexport const postStylesheetFolderBody = zod.object({\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish()\n})\n\n\nexport const getStylesheetFolderByPathParams = zod.object({\n \"path\": zod.string()\n})\n\nexport const getStylesheetFolderByPathResponse = zod.object({\n \"path\": zod.string(),\n \"name\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish()\n})\n\n\nexport const deleteStylesheetFolderByPathParams = zod.object({\n \"path\": zod.string()\n})\n\n\nexport const getTreeStylesheetAncestorsQueryParams = zod.object({\n \"descendantPath\": zod.string().optional()\n})\n\nexport const getTreeStylesheetAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n})\nexport const getTreeStylesheetAncestorsResponse = zod.array(getTreeStylesheetAncestorsResponseItem)\n\n\nexport const getTreeStylesheetChildrenQuerySkipDefault = 0;export const getTreeStylesheetChildrenQueryTakeDefault = 100;\n\nexport const getTreeStylesheetChildrenQueryParams = zod.object({\n \"parentPath\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeStylesheetChildrenQueryTakeDefault)\n})\n\nexport const getTreeStylesheetChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreeStylesheetRootQuerySkipDefault = 0;export const getTreeStylesheetRootQueryTakeDefault = 100;\n\nexport const getTreeStylesheetRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeStylesheetRootQueryTakeDefault)\n})\n\nexport const getTreeStylesheetRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTreeStylesheetSiblingsQueryParams = zod.object({\n \"path\": zod.string().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional()\n})\n\nexport const getTreeStylesheetSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"name\": zod.string(),\n \"path\": zod.string(),\n \"parent\": zod.object({\n \"path\": zod.string()\n}).nullish(),\n \"isFolder\": zod.boolean()\n}))\n})\n\n\nexport const getTagQuerySkipDefault = 0;export const getTagQueryTakeDefault = 100;\n\nexport const getTagQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"tagGroup\": zod.string().optional(),\n \"culture\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTagQueryTakeDefault)\n})\n\nexport const getTagResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"text\": zod.string().nullish(),\n \"group\": zod.string().nullish(),\n \"nodeCount\": zod.number()\n}))\n})\n\n\nexport const getTelemetryQuerySkipDefault = 0;export const getTelemetryQueryTakeDefault = 100;\n\nexport const getTelemetryQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTelemetryQueryTakeDefault)\n})\n\nexport const getTelemetryResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"telemetryLevel\": zod.enum(['Minimal', 'Basic', 'Detailed'])\n}))\n})\n\n\nexport const getTelemetryLevelResponse = zod.object({\n \"telemetryLevel\": zod.enum(['Minimal', 'Basic', 'Detailed'])\n})\n\n\nexport const postTelemetryLevelBody = zod.object({\n \"telemetryLevel\": zod.enum(['Minimal', 'Basic', 'Detailed'])\n})\n\n\nexport const getItemTemplateQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemTemplateResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"alias\": zod.string()\n})\nexport const getItemTemplateResponse = zod.array(getItemTemplateResponseItem)\n\n\nexport const getItemTemplateSearchQuerySkipDefault = 0;export const getItemTemplateSearchQueryTakeDefault = 100;\n\nexport const getItemTemplateSearchQueryParams = zod.object({\n \"query\": zod.string().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getItemTemplateSearchQueryTakeDefault)\n})\n\nexport const getItemTemplateSearchResponse = zod.object({\n \"items\": zod.array(zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"alias\": zod.string()\n})),\n \"total\": zod.number()\n})\n\n\n\n\n\n\nexport const postTemplateBody = zod.object({\n \"name\": zod.string().min(1),\n \"alias\": zod.string().min(1),\n \"content\": zod.string().nullish(),\n \"id\": zod.uuid().nullish()\n})\n\n\nexport const getTemplateByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const getTemplateByIdResponse = zod.object({\n \"name\": zod.string().min(1),\n \"alias\": zod.string().min(1),\n \"content\": zod.string().nullish(),\n \"id\": zod.uuid(),\n \"masterTemplate\": zod.object({\n \"id\": zod.uuid()\n}).nullish()\n})\n\n\nexport const deleteTemplateByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putTemplateByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\n\nexport const putTemplateByIdBody = zod.object({\n \"name\": zod.string().min(1),\n \"alias\": zod.string().min(1),\n \"content\": zod.string().nullish()\n})\n\n\nexport const getTemplateConfigurationResponse = zod.object({\n \"disabled\": zod.boolean()\n})\n\n\n\n\n\n\nexport const postTemplateQueryExecuteBody = zod.object({\n \"rootDocument\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentTypeAlias\": zod.string().nullish(),\n \"filters\": zod.array(zod.object({\n \"propertyAlias\": zod.string().min(1),\n \"constraintValue\": zod.string().min(1),\n \"operator\": zod.enum(['Equals', 'NotEquals', 'Contains', 'NotContains', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo'])\n})).nullish(),\n \"sort\": zod.object({\n \"propertyAlias\": zod.string(),\n \"direction\": zod.string().nullish()\n}).nullish(),\n \"take\": zod.number()\n})\n\nexport const postTemplateQueryExecuteResponse = zod.object({\n \"queryExpression\": zod.string(),\n \"sampleResults\": zod.array(zod.object({\n \"icon\": zod.string(),\n \"name\": zod.string()\n})),\n \"resultCount\": zod.number(),\n \"executionTime\": zod.number()\n})\n\n\nexport const getTemplateQuerySettingsResponse = zod.object({\n \"documentTypeAliases\": zod.array(zod.string()),\n \"properties\": zod.array(zod.object({\n \"alias\": zod.string(),\n \"type\": zod.enum(['String', 'DateTime', 'Integer'])\n})),\n \"operators\": zod.array(zod.object({\n \"operator\": zod.enum(['Equals', 'NotEquals', 'Contains', 'NotContains', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo']),\n \"applicableTypes\": zod.array(zod.enum(['String', 'DateTime', 'Integer']))\n}))\n})\n\n\nexport const getTreeTemplateAncestorsQueryParams = zod.object({\n \"descendantId\": zod.uuid().optional()\n})\n\nexport const getTreeTemplateAncestorsResponseItem = zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n})\nexport const getTreeTemplateAncestorsResponse = zod.array(getTreeTemplateAncestorsResponseItem)\n\n\nexport const getTreeTemplateChildrenQuerySkipDefault = 0;export const getTreeTemplateChildrenQueryTakeDefault = 100;\n\nexport const getTreeTemplateChildrenQueryParams = zod.object({\n \"parentId\": zod.uuid().optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeTemplateChildrenQueryTakeDefault)\n})\n\nexport const getTreeTemplateChildrenResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\nexport const getTreeTemplateRootQuerySkipDefault = 0;export const getTreeTemplateRootQueryTakeDefault = 100;\n\nexport const getTreeTemplateRootQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getTreeTemplateRootQueryTakeDefault)\n})\n\nexport const getTreeTemplateRootResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\nexport const getTreeTemplateSiblingsQueryParams = zod.object({\n \"target\": zod.uuid().optional(),\n \"before\": zod.coerce.number().optional(),\n \"after\": zod.coerce.number().optional()\n})\n\nexport const getTreeTemplateSiblingsResponse = zod.object({\n \"totalBefore\": zod.number(),\n \"totalAfter\": zod.number(),\n \"items\": zod.array(zod.object({\n \"hasChildren\": zod.boolean(),\n \"id\": zod.uuid(),\n \"parent\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string()\n}))\n})\n\n\n\n\n\n\n\n\nexport const getUpgradeSettingsResponse = zod.object({\n \"currentState\": zod.string().min(1),\n \"newState\": zod.string().min(1),\n \"newVersion\": zod.string().min(1),\n \"oldVersion\": zod.string().min(1),\n \"reportUrl\": zod.string()\n})\n\n\nexport const postUserDataBody = zod.object({\n \"group\": zod.string(),\n \"identifier\": zod.string(),\n \"value\": zod.string(),\n \"key\": zod.uuid().nullish()\n})\n\n\nexport const getUserDataQuerySkipDefault = 0;export const getUserDataQueryTakeDefault = 100;\n\nexport const getUserDataQueryParams = zod.object({\n \"groups\": zod.array(zod.string()).optional(),\n \"identifiers\": zod.array(zod.string()).optional(),\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getUserDataQueryTakeDefault)\n})\n\nexport const getUserDataResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"group\": zod.string(),\n \"identifier\": zod.string(),\n \"value\": zod.string(),\n \"key\": zod.uuid()\n}))\n})\n\n\nexport const putUserDataBody = zod.object({\n \"group\": zod.string(),\n \"identifier\": zod.string(),\n \"value\": zod.string(),\n \"key\": zod.uuid()\n})\n\n\nexport const getUserDataByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getUserDataByIdResponse = zod.object({\n \"group\": zod.string(),\n \"identifier\": zod.string(),\n \"value\": zod.string()\n})\n\n\nexport const deleteUserDataByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const getFilterUserGroupQuerySkipDefault = 0;export const getFilterUserGroupQueryTakeDefault = 100;export const getFilterUserGroupQueryFilterDefault = \"\";\n\nexport const getFilterUserGroupQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getFilterUserGroupQueryTakeDefault),\n \"filter\": zod.string().optional()\n})\n\nexport const getFilterUserGroupResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish(),\n \"sections\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"hasAccessToAllLanguages\": zod.boolean(),\n \"documentStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentRootAccess\": zod.boolean(),\n \"mediaStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaRootAccess\": zod.boolean(),\n \"fallbackPermissions\": zod.array(zod.string()),\n \"permissions\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DocumentPermissionPresentationModel']),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['DocumentPropertyValuePermissionPresentationModel']),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"propertyType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['UnknownTypePermissionPresentationModel']),\n \"verbs\": zod.array(zod.string()),\n \"context\": zod.string()\n})])),\n \"id\": zod.uuid(),\n \"isDeletable\": zod.boolean(),\n \"aliasCanBeChanged\": zod.boolean()\n}))\n})\n\n\nexport const getItemUserGroupQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemUserGroupResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"icon\": zod.string().nullish(),\n \"alias\": zod.string().nullish()\n})\nexport const getItemUserGroupResponse = zod.array(getItemUserGroupResponseItem)\n\n\nexport const deleteUserGroupBody = zod.object({\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const postUserGroupBody = zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish(),\n \"sections\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"hasAccessToAllLanguages\": zod.boolean(),\n \"documentStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentRootAccess\": zod.boolean(),\n \"mediaStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaRootAccess\": zod.boolean(),\n \"fallbackPermissions\": zod.array(zod.string()),\n \"permissions\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DocumentPermissionPresentationModel']),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['DocumentPropertyValuePermissionPresentationModel']),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"propertyType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['UnknownTypePermissionPresentationModel']),\n \"verbs\": zod.array(zod.string()),\n \"context\": zod.string()\n})])),\n \"id\": zod.uuid().nullish()\n})\n\n\nexport const getUserGroupQuerySkipDefault = 0;export const getUserGroupQueryTakeDefault = 100;\n\nexport const getUserGroupQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getUserGroupQueryTakeDefault)\n})\n\nexport const getUserGroupResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish(),\n \"sections\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"hasAccessToAllLanguages\": zod.boolean(),\n \"documentStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentRootAccess\": zod.boolean(),\n \"mediaStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaRootAccess\": zod.boolean(),\n \"fallbackPermissions\": zod.array(zod.string()),\n \"permissions\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DocumentPermissionPresentationModel']),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['DocumentPropertyValuePermissionPresentationModel']),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"propertyType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['UnknownTypePermissionPresentationModel']),\n \"verbs\": zod.array(zod.string()),\n \"context\": zod.string()\n})])),\n \"id\": zod.uuid(),\n \"isDeletable\": zod.boolean(),\n \"aliasCanBeChanged\": zod.boolean()\n}))\n})\n\n\nexport const getUserGroupByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getUserGroupByIdResponse = zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish(),\n \"sections\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"hasAccessToAllLanguages\": zod.boolean(),\n \"documentStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentRootAccess\": zod.boolean(),\n \"mediaStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaRootAccess\": zod.boolean(),\n \"fallbackPermissions\": zod.array(zod.string()),\n \"permissions\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DocumentPermissionPresentationModel']),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['DocumentPropertyValuePermissionPresentationModel']),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"propertyType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['UnknownTypePermissionPresentationModel']),\n \"verbs\": zod.array(zod.string()),\n \"context\": zod.string()\n})])),\n \"id\": zod.uuid(),\n \"isDeletable\": zod.boolean(),\n \"aliasCanBeChanged\": zod.boolean()\n})\n\n\nexport const deleteUserGroupByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putUserGroupByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putUserGroupByIdBody = zod.object({\n \"name\": zod.string(),\n \"alias\": zod.string(),\n \"description\": zod.string().nullish(),\n \"icon\": zod.string().nullish(),\n \"sections\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"hasAccessToAllLanguages\": zod.boolean(),\n \"documentStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"documentRootAccess\": zod.boolean(),\n \"mediaStartNode\": zod.object({\n \"id\": zod.uuid()\n}).nullish(),\n \"mediaRootAccess\": zod.boolean(),\n \"fallbackPermissions\": zod.array(zod.string()),\n \"permissions\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DocumentPermissionPresentationModel']),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['DocumentPropertyValuePermissionPresentationModel']),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"propertyType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['UnknownTypePermissionPresentationModel']),\n \"verbs\": zod.array(zod.string()),\n \"context\": zod.string()\n})]))\n})\n\n\nexport const deleteUserGroupByIdUsersParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const deleteUserGroupByIdUsersBodyItem = zod.object({\n \"id\": zod.uuid()\n})\nexport const deleteUserGroupByIdUsersBody = zod.array(deleteUserGroupByIdUsersBodyItem)\n\n\nexport const postUserGroupByIdUsersParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postUserGroupByIdUsersBodyItem = zod.object({\n \"id\": zod.uuid()\n})\nexport const postUserGroupByIdUsersBody = zod.array(postUserGroupByIdUsersBodyItem)\n\n\nexport const getFilterUserQuerySkipDefault = 0;export const getFilterUserQueryTakeDefault = 100;export const getFilterUserQueryFilterDefault = \"\";\n\nexport const getFilterUserQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getFilterUserQueryTakeDefault),\n \"orderBy\": zod.enum(['UserName', 'Language', 'Name', 'Email', 'Id', 'CreateDate', 'UpdateDate', 'IsApproved', 'IsLockedOut', 'LastLoginDate']).optional(),\n \"orderDirection\": zod.enum(['Ascending', 'Descending']).optional(),\n \"userGroupIds\": zod.array(zod.uuid()).optional(),\n \"userStates\": zod.array(zod.enum(['Active', 'Disabled', 'LockedOut', 'Invited', 'Inactive', 'All'])).optional(),\n \"filter\": zod.string().optional()\n})\n\nexport const getFilterUserResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"id\": zod.uuid(),\n \"languageIsoCode\": zod.string().nullish(),\n \"documentStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasDocumentRootAccess\": zod.boolean(),\n \"mediaStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasMediaRootAccess\": zod.boolean(),\n \"avatarUrls\": zod.array(zod.string()),\n \"state\": zod.enum(['Active', 'Disabled', 'LockedOut', 'Invited', 'Inactive', 'All']),\n \"failedLoginAttempts\": zod.number(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"lastLoginDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastLockoutDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastPasswordChangeDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"isAdmin\": zod.boolean(),\n \"kind\": zod.enum(['Default', 'Api'])\n}))\n})\n\n\nexport const getItemUserQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemUserResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"name\": zod.string(),\n \"avatarUrls\": zod.array(zod.string()),\n \"kind\": zod.enum(['Default', 'Api'])\n})\nexport const getItemUserResponse = zod.array(getItemUserResponseItem)\n\n\nexport const postUserBody = zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"id\": zod.uuid().nullish(),\n \"kind\": zod.enum(['Default', 'Api'])\n})\n\n\nexport const deleteUserBody = zod.object({\n \"userIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const getUserQuerySkipDefault = 0;export const getUserQueryTakeDefault = 100;\n\nexport const getUserQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getUserQueryTakeDefault)\n})\n\nexport const getUserResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"id\": zod.uuid(),\n \"languageIsoCode\": zod.string().nullish(),\n \"documentStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasDocumentRootAccess\": zod.boolean(),\n \"mediaStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasMediaRootAccess\": zod.boolean(),\n \"avatarUrls\": zod.array(zod.string()),\n \"state\": zod.enum(['Active', 'Disabled', 'LockedOut', 'Invited', 'Inactive', 'All']),\n \"failedLoginAttempts\": zod.number(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"lastLoginDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastLockoutDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastPasswordChangeDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"isAdmin\": zod.boolean(),\n \"kind\": zod.enum(['Default', 'Api'])\n}))\n})\n\n\nexport const getUserByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getUserByIdResponse = zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"id\": zod.uuid(),\n \"languageIsoCode\": zod.string().nullish(),\n \"documentStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasDocumentRootAccess\": zod.boolean(),\n \"mediaStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasMediaRootAccess\": zod.boolean(),\n \"avatarUrls\": zod.array(zod.string()),\n \"state\": zod.enum(['Active', 'Disabled', 'LockedOut', 'Invited', 'Inactive', 'All']),\n \"failedLoginAttempts\": zod.number(),\n \"createDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"updateDate\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"lastLoginDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastLockoutDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"lastPasswordChangeDate\": zod.iso.datetime({\"local\":true,\"offset\":true}).nullish(),\n \"isAdmin\": zod.boolean(),\n \"kind\": zod.enum(['Default', 'Api'])\n})\n\n\nexport const deleteUserByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putUserByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const putUserByIdBody = zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"languageIsoCode\": zod.string(),\n \"documentStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasDocumentRootAccess\": zod.boolean(),\n \"mediaStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasMediaRootAccess\": zod.boolean()\n})\n\n\nexport const getUserById2faParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getUserById2faResponseItem = zod.object({\n \"providerName\": zod.string(),\n \"isEnabledOnUser\": zod.boolean()\n})\nexport const getUserById2faResponse = zod.array(getUserById2faResponseItem)\n\n\nexport const deleteUserById2faByProviderNameParams = zod.object({\n \"id\": zod.uuid(),\n \"providerName\": zod.string()\n})\n\n\nexport const getUserByIdCalculateStartNodesParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getUserByIdCalculateStartNodesResponse = zod.object({\n \"id\": zod.uuid(),\n \"documentStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasDocumentRootAccess\": zod.boolean(),\n \"mediaStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasMediaRootAccess\": zod.boolean()\n})\n\n\nexport const postUserByIdChangePasswordParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postUserByIdChangePasswordBody = zod.object({\n \"newPassword\": zod.string()\n})\n\n\nexport const postUserByIdClientCredentialsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postUserByIdClientCredentialsBody = zod.object({\n \"clientId\": zod.string(),\n \"clientSecret\": zod.string()\n})\n\n\nexport const getUserByIdClientCredentialsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getUserByIdClientCredentialsResponseItem = zod.string()\nexport const getUserByIdClientCredentialsResponse = zod.array(getUserByIdClientCredentialsResponseItem)\n\n\nexport const deleteUserByIdClientCredentialsByClientIdParams = zod.object({\n \"id\": zod.uuid(),\n \"clientId\": zod.string()\n})\n\n\nexport const postUserByIdResetPasswordParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postUserByIdResetPasswordResponse = zod.object({\n \"resetPassword\": zod.string().nullish()\n})\n\n\nexport const deleteUserAvatarByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const postUserAvatarByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const postUserAvatarByIdBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const getUserConfigurationResponse = zod.object({\n \"canInviteUsers\": zod.boolean(),\n \"usernameIsEmail\": zod.boolean(),\n \"passwordConfiguration\": zod.object({\n \"minimumPasswordLength\": zod.number(),\n \"requireNonLetterOrDigit\": zod.boolean(),\n \"requireDigit\": zod.boolean(),\n \"requireLowercase\": zod.boolean(),\n \"requireUppercase\": zod.boolean()\n}),\n \"allowChangePassword\": zod.boolean(),\n \"allowTwoFactor\": zod.boolean()\n})\n\n\nexport const getUserCurrentResponse = zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"id\": zod.uuid(),\n \"languageIsoCode\": zod.string().nullable(),\n \"documentStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasDocumentRootAccess\": zod.boolean(),\n \"mediaStartNodeIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"hasMediaRootAccess\": zod.boolean(),\n \"avatarUrls\": zod.array(zod.string()),\n \"languages\": zod.array(zod.string()),\n \"hasAccessToAllLanguages\": zod.boolean(),\n \"hasAccessToSensitiveData\": zod.boolean(),\n \"fallbackPermissions\": zod.array(zod.string()),\n \"permissions\": zod.array(zod.union([zod.object({\n \"$type\": zod.enum(['DocumentPermissionPresentationModel']),\n \"document\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['DocumentPropertyValuePermissionPresentationModel']),\n \"documentType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"propertyType\": zod.object({\n \"id\": zod.uuid()\n}),\n \"verbs\": zod.array(zod.string())\n}),zod.object({\n \"$type\": zod.enum(['UnknownTypePermissionPresentationModel']),\n \"verbs\": zod.array(zod.string()),\n \"context\": zod.string()\n})])),\n \"allowedSections\": zod.array(zod.string()),\n \"isAdmin\": zod.boolean()\n})\n\n\nexport const getUserCurrent2faResponseItem = zod.object({\n \"providerName\": zod.string(),\n \"isEnabledOnUser\": zod.boolean()\n})\nexport const getUserCurrent2faResponse = zod.array(getUserCurrent2faResponseItem)\n\n\nexport const deleteUserCurrent2faByProviderNameParams = zod.object({\n \"providerName\": zod.string()\n})\n\nexport const deleteUserCurrent2faByProviderNameQueryParams = zod.object({\n \"code\": zod.string().optional()\n})\n\n\nexport const postUserCurrent2faByProviderNameParams = zod.object({\n \"providerName\": zod.string()\n})\n\nexport const postUserCurrent2faByProviderNameBody = zod.object({\n \"code\": zod.string(),\n \"secret\": zod.string()\n})\n\nexport const postUserCurrent2faByProviderNameResponse = zod.object({\n\n})\n\n\nexport const getUserCurrent2faByProviderNameParams = zod.object({\n \"providerName\": zod.string()\n})\n\nexport const getUserCurrent2faByProviderNameResponse = zod.object({\n\n})\n\n\nexport const postUserCurrentAvatarBody = zod.object({\n \"file\": zod.object({\n \"id\": zod.uuid()\n})\n})\n\n\nexport const postUserCurrentChangePasswordBody = zod.object({\n \"newPassword\": zod.string(),\n \"oldPassword\": zod.string().nullish()\n})\n\n\nexport const getUserCurrentConfigurationResponse = zod.object({\n \"keepUserLoggedIn\": zod.boolean(),\n \"passwordConfiguration\": zod.object({\n \"minimumPasswordLength\": zod.number(),\n \"requireNonLetterOrDigit\": zod.boolean(),\n \"requireDigit\": zod.boolean(),\n \"requireLowercase\": zod.boolean(),\n \"requireUppercase\": zod.boolean()\n}),\n \"allowChangePassword\": zod.boolean(),\n \"allowTwoFactor\": zod.boolean()\n})\n\n\nexport const getUserCurrentLoginProvidersResponseItem = zod.object({\n \"providerSchemeName\": zod.string(),\n \"providerKey\": zod.string().nullish(),\n \"isLinkedOnUser\": zod.boolean(),\n \"hasManualLinkingEnabled\": zod.boolean()\n})\nexport const getUserCurrentLoginProvidersResponse = zod.array(getUserCurrentLoginProvidersResponseItem)\n\n\nexport const getUserCurrentPermissionsQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getUserCurrentPermissionsResponse = zod.object({\n \"permissions\": zod.array(zod.object({\n \"nodeKey\": zod.uuid(),\n \"permissions\": zod.array(zod.string())\n}))\n})\n\n\nexport const getUserCurrentPermissionsDocumentQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getUserCurrentPermissionsDocumentResponseItem = zod.object({\n \"permissions\": zod.array(zod.object({\n \"nodeKey\": zod.uuid(),\n \"permissions\": zod.array(zod.string())\n}))\n})\nexport const getUserCurrentPermissionsDocumentResponse = zod.array(getUserCurrentPermissionsDocumentResponseItem)\n\n\nexport const getUserCurrentPermissionsMediaQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getUserCurrentPermissionsMediaResponse = zod.object({\n \"permissions\": zod.array(zod.object({\n \"nodeKey\": zod.uuid(),\n \"permissions\": zod.array(zod.string())\n}))\n})\n\n\nexport const postUserDisableBody = zod.object({\n \"userIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const postUserEnableBody = zod.object({\n \"userIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const postUserInviteBody = zod.object({\n \"email\": zod.string(),\n \"userName\": zod.string(),\n \"name\": zod.string(),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"id\": zod.uuid().nullish(),\n \"message\": zod.string().nullish()\n})\n\n\n\n\n\nexport const postUserInviteCreatePasswordBody = zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"token\": zod.string().min(1),\n \"password\": zod.string()\n})\n\n\nexport const postUserInviteResendBody = zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"message\": zod.string().nullish()\n})\n\n\n\n\n\nexport const postUserInviteVerifyBody = zod.object({\n \"user\": zod.object({\n \"id\": zod.uuid()\n}),\n \"token\": zod.string().min(1)\n})\n\nexport const postUserInviteVerifyResponse = zod.object({\n \"passwordConfiguration\": zod.object({\n \"minimumPasswordLength\": zod.number(),\n \"requireNonLetterOrDigit\": zod.boolean(),\n \"requireDigit\": zod.boolean(),\n \"requireLowercase\": zod.boolean(),\n \"requireUppercase\": zod.boolean()\n})\n})\n\n\nexport const postUserSetUserGroupsBody = zod.object({\n \"userIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n})),\n \"userGroupIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const postUserUnlockBody = zod.object({\n \"userIds\": zod.array(zod.object({\n \"id\": zod.uuid()\n}))\n})\n\n\nexport const getItemWebhookQueryParams = zod.object({\n \"id\": zod.array(zod.uuid()).optional()\n})\n\nexport const getItemWebhookResponseItem = zod.object({\n \"id\": zod.uuid(),\n \"flags\": zod.array(zod.object({\n \"alias\": zod.string()\n})),\n \"enabled\": zod.boolean(),\n \"name\": zod.string(),\n \"events\": zod.string(),\n \"url\": zod.string(),\n \"types\": zod.string()\n})\nexport const getItemWebhookResponse = zod.array(getItemWebhookResponseItem)\n\n\nexport const getWebhookQuerySkipDefault = 0;export const getWebhookQueryTakeDefault = 100;\n\nexport const getWebhookQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getWebhookQueryTakeDefault)\n})\n\n\n\n\nexport const getWebhookResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"enabled\": zod.boolean(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"url\": zod.string().min(1),\n \"contentTypeKeys\": zod.array(zod.uuid()),\n \"headers\": zod.record(zod.string(), zod.string()),\n \"id\": zod.uuid(),\n \"events\": zod.array(zod.object({\n \"eventName\": zod.string(),\n \"eventType\": zod.string(),\n \"alias\": zod.string()\n}))\n}))\n})\n\n\n\n\n\nexport const postWebhookBody = zod.object({\n \"enabled\": zod.boolean(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"url\": zod.string().min(1),\n \"contentTypeKeys\": zod.array(zod.uuid()),\n \"headers\": zod.record(zod.string(), zod.string()),\n \"id\": zod.uuid().nullish(),\n \"events\": zod.array(zod.string())\n})\n\n\nexport const getWebhookByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const getWebhookByIdResponse = zod.object({\n \"enabled\": zod.boolean(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"url\": zod.string().min(1),\n \"contentTypeKeys\": zod.array(zod.uuid()),\n \"headers\": zod.record(zod.string(), zod.string()),\n \"id\": zod.uuid(),\n \"events\": zod.array(zod.object({\n \"eventName\": zod.string(),\n \"eventType\": zod.string(),\n \"alias\": zod.string()\n}))\n})\n\n\nexport const deleteWebhookByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\nexport const putWebhookByIdParams = zod.object({\n \"id\": zod.uuid()\n})\n\n\n\n\nexport const putWebhookByIdBody = zod.object({\n \"enabled\": zod.boolean(),\n \"name\": zod.string().nullish(),\n \"description\": zod.string().nullish(),\n \"url\": zod.string().min(1),\n \"contentTypeKeys\": zod.array(zod.uuid()),\n \"headers\": zod.record(zod.string(), zod.string()),\n \"events\": zod.array(zod.string())\n})\n\n\nexport const getWebhookByIdLogsParams = zod.object({\n \"id\": zod.uuid()\n})\n\nexport const getWebhookByIdLogsQuerySkipDefault = 0;export const getWebhookByIdLogsQueryTakeDefault = 100;\n\nexport const getWebhookByIdLogsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getWebhookByIdLogsQueryTakeDefault)\n})\n\nexport const getWebhookByIdLogsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"key\": zod.uuid(),\n \"webhookKey\": zod.uuid(),\n \"statusCode\": zod.string(),\n \"isSuccessStatusCode\": zod.boolean(),\n \"date\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"eventAlias\": zod.string(),\n \"url\": zod.string(),\n \"retryCount\": zod.number(),\n \"requestHeaders\": zod.string(),\n \"requestBody\": zod.string(),\n \"responseHeaders\": zod.string(),\n \"responseBody\": zod.string(),\n \"exceptionOccured\": zod.boolean()\n}))\n})\n\n\nexport const getWebhookEventsQuerySkipDefault = 0;export const getWebhookEventsQueryTakeDefault = 100;\n\nexport const getWebhookEventsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getWebhookEventsQueryTakeDefault)\n})\n\nexport const getWebhookEventsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"eventName\": zod.string(),\n \"eventType\": zod.string(),\n \"alias\": zod.string()\n}))\n})\n\n\nexport const getWebhookLogsQuerySkipDefault = 0;export const getWebhookLogsQueryTakeDefault = 100;\n\nexport const getWebhookLogsQueryParams = zod.object({\n \"skip\": zod.coerce.number().optional(),\n \"take\": zod.coerce.number().default(getWebhookLogsQueryTakeDefault)\n})\n\nexport const getWebhookLogsResponse = zod.object({\n \"total\": zod.number(),\n \"items\": zod.array(zod.object({\n \"key\": zod.uuid(),\n \"webhookKey\": zod.uuid(),\n \"statusCode\": zod.string(),\n \"isSuccessStatusCode\": zod.boolean(),\n \"date\": zod.iso.datetime({\"local\":true,\"offset\":true}),\n \"eventAlias\": zod.string(),\n \"url\": zod.string(),\n \"retryCount\": zod.number(),\n \"requestHeaders\": zod.string(),\n \"requestBody\": zod.string(),\n \"responseHeaders\": zod.string(),\n \"responseBody\": zod.string(),\n \"exceptionOccured\": zod.boolean()\n}))\n})\n\n\n","import { GetCultureParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getCultureQueryParams, getCultureResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetCulturesTool = {\n name: \"get-culture\",\n description: \"Retrieves a paginated list of cultures that Umbraco can be configured to use\",\n inputSchema: getCultureQueryParams.shape,\n outputSchema: getCultureResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: GetCultureParams) => {\n return executeGetApiCall((client) =>\n client.getCulture(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getCultureQueryParams.shape, typeof getCultureResponse.shape>;\n\nexport default withStandardDecorators(GetCulturesTool);\n","import GetCulturesTool from \"./get-cultures.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const CultureCollection: ToolCollectionExport = {\n metadata: {\n name: 'culture',\n displayName: 'Culture & Localization',\n description: 'Culture and localization management',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n // Tools are now exported as objects (already decorated), not factory functions\n const tools: ToolDefinition<any, any>[] = [GetCulturesTool];\n return tools;\n }\n};\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateDataTypeRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Flattened schema - prevents LLM JSON stringification of parent object\nconst createDataTypeSchema = z.object({\n name: z.string().min(1),\n editorAlias: z.string().min(1),\n editorUiAlias: z.string(),\n values: z.array(z.object({\n alias: z.string(),\n value: z.any().nullish()\n })),\n parentId: z.string().uuid().optional() // Flattened parent ID\n});\n\ntype CreateDataTypeSchema = z.infer<typeof createDataTypeSchema>;\n\nexport const createDataTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateDataTypeTool = {\n name: \"create-data-type\",\n description: `Creates a new data type\n\n *** CRITICAL WORKFLOW REQUIREMENT ***\n BEFORE creating any new data type, you MUST perform the following steps:\n 1. First use the find-data-type function to search for existing data types with similar names and/or property editors\n 2. Verify if an existing data type can satisfy the requirements\n 3. Only proceed with creating a new data type if no suitable option exists\n 4. If a similar data type exists, inform the user and suggest using this one instead.\n\n *** PROPERTY EDITOR CONFIGURATION ***\n When creating a new data type you will need to assign a property editor with the correct configuration.\n\n IMPORTANT: Use the get-data-type-property-editor-template tool to:\n - View all available property editors (call without parameters)\n - Get the correct configuration template for a specific property editor (call with editorName parameter)\n - Each template shows the required editorAlias, editorUiAlias, and values configuration\n - Customize the template values to match your specific requirements\n\n *** VALIDATION ***\n If you are not asked for a property editor then stop and ask the user to provide one.\n If you are asked to create a data type for a property that already exists, then stop and ask the user to provide a unique name.\n\n `,\n inputSchema: createDataTypeSchema.shape,\n outputSchema: createDataTypeOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateDataTypeSchema) => {\n const client = UmbracoManagementClient.getClient();\n\n // Generate UUID for the data type\n const dataTypeId = uuidv4();\n\n // Transform: flat parentId -> nested parent object for API\n const payload: CreateDataTypeRequestModel = {\n name: model.name,\n editorAlias: model.editorAlias,\n editorUiAlias: model.editorUiAlias,\n values: model.values,\n id: dataTypeId,\n parent: model.parentId ? { id: model.parentId } : undefined,\n };\n\n const response = await client.postDataType(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n const output = {\n message: \"Data type created successfully\",\n id: dataTypeId\n };\n return createToolResult(output);\n } else {\n // Handle error - Umbraco API returns ProblemDetails as structured data\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createDataTypeSchema.shape, typeof createDataTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateDataTypeTool);\n","import { deleteDataTypeByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDataTypeTool = {\n name: \"delete-data-type\",\n description: \"Deletes a data type by Id\",\n inputSchema: deleteDataTypeByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) => \n client.deleteDataTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDataTypeByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDataTypeTool);\n","import { GetFilterDataTypeParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getFilterDataTypeQueryParams, getFilterDataTypeResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst FindDataTypeTool = {\n name: \"find-data-type\",\n description: \"Finds a data type by Id or Name\",\n inputSchema: getFilterDataTypeQueryParams.shape,\n outputSchema: getFilterDataTypeResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['search'],\n handler: (async (model: GetFilterDataTypeParams) => {\n return executeGetApiCall((client) => \n client.getFilterDataType(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getFilterDataTypeQueryParams.shape, typeof getFilterDataTypeResponse.shape>;\n\nexport default withStandardDecorators(FindDataTypeTool);\n","import { getDataTypeByIdParams, getDataTypeByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeTool = {\n name: \"get-data-type\",\n description: \"Gets a data type by Id\",\n inputSchema: getDataTypeByIdParams.shape,\n outputSchema: getDataTypeByIdResponse.shape,\n annotations: {\n readOnlyHint: true\n },\n slices: ['read'],\n handler: async ({ id }: { id: string }) => {\n return executeGetApiCall((client) => \n client.getDataTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n },\n} satisfies ToolDefinition<typeof getDataTypeByIdParams.shape, typeof getDataTypeByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeTool);\n","import { getItemDataTypeQueryParams, getItemDataTypeResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemDataTypeResponse,\n});\n\nconst GetDataTypesByIdArrayTool = {\n name: \"get-data-types-by-id-array\",\n description: \"Gets data types by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemDataTypeQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: { id?: string[] }) => {\n return executeGetItemsApiCall((client) =>\n client.getItemDataType(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDataTypeQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDataTypesByIdArrayTool);\n","import { getDataTypeConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeConfigurationTool = {\n name: \"get-data-type-configuration\",\n description: \"Gets global data type configuration settings including change permissions and default list view IDs\",\n inputSchema: {},\n outputSchema: getDataTypeConfigurationResponse.shape,\n annotations: {\n readOnlyHint: true\n },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) => \n client.getDataTypeConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getDataTypeConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeConfigurationTool);\n","import { z } from \"zod\";\nimport { propertyEditorTemplates } from \"../post/property-editor-templates.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Zod schema for the tool parameters\nconst propertyEditorTemplateSchema = z.object({\n editorName: z.string().optional().describe(\"The name of the property editor template to retrieve (e.g., 'Textbox', 'Toggle', 'RichTextEditor_TinyMCE'). If not provided, returns a list of all available property editor names.\")\n});\n\ntype PropertyEditorTemplateParams = z.infer<typeof propertyEditorTemplateSchema>;\n\n// Zod schema for PropertyEditorTemplate structure\nconst propertyEditorTemplateValueSchema = z.object({\n alias: z.string(),\n value: z.any().optional(),\n});\n\nconst propertyEditorTemplateItemSchema = z.object({\n editorAlias: z.string().optional(),\n editorUiAlias: z.string().optional(),\n values: z.array(propertyEditorTemplateValueSchema).optional(),\n _notes: z.string().optional(),\n});\n\n// Output schema for structured responses\nconst propertyEditorTemplateOutputSchema = z.object({\n type: z.enum([\"list\", \"template\"]).describe(\"Whether this is a list of available editors or a specific template\"),\n availableEditors: z.array(z.object({\n name: z.string(),\n notes: z.string().optional(),\n })).optional().describe(\"Available editors (when type is 'list')\"),\n name: z.string().optional().describe(\"Editor name (when type is 'template')\"),\n template: propertyEditorTemplateItemSchema.optional().describe(\"Editor template (when type is 'template')\"),\n});\n\nconst GetDataTypePropertyEditorTemplateTool = {\n name: \"get-data-type-property-editor-template\",\n description: `Retrieves property editor templates for creating data types in Umbraco.\n\nIMPORTANT: This tool should be used BEFORE creating data types to understand:\n- What property editors are available\n- The required configuration structure for each property editor\n- Example values that can be customized for your needs\n\nUsage:\n1. Call without parameters to see all available property editor names\n2. Call with a specific editorName to get the full configuration template for that property editor\n3. Use the returned template as a starting point when creating new data types with create-data-type\n\nThe templates include:\n- editorAlias: The internal Umbraco editor identifier (required)\n- editorUiAlias: The UI component identifier (required)\n- values: An array of configuration options with example values\n- _notes: Important information about special requirements or options\n\nNote: Some templates (like BlockList, BlockGrid) have _notes indicating you must create element types first before creating the data type.`,\n inputSchema: propertyEditorTemplateSchema.shape,\n outputSchema: propertyEditorTemplateOutputSchema.shape,\n annotations: {\n readOnlyHint: true\n },\n slices: ['templates'],\n handler: (async (model: PropertyEditorTemplateParams) => {\n // If no editorName provided, return list of available editors\n if (!model.editorName) {\n const availableEditors = Object.entries(propertyEditorTemplates)\n .map(([name, config]) => ({\n name,\n notes: config._notes,\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const structuredOutput = {\n type: \"list\" as const,\n availableEditors,\n };\n\n const text = `Available Property Editor Templates:\\n\\n${availableEditors.map(e => `- ${e.name}${e.notes ? ` (${e.notes})` : ''}`).join('\\n')}\\n\\nUse get-data-type-property-editor-template with a specific editorName to see the full configuration.`;\n \n return createToolResult(structuredOutput);\n }\n\n // Look for the specific editor (case-insensitive)\n const editorKey = Object.keys(propertyEditorTemplates).find(\n key => key.toLowerCase() === model.editorName!.toLowerCase()\n );\n\n if (!editorKey) {\n const availableEditors = Object.keys(propertyEditorTemplates).sort().join(', ');\n const errorData = {\n title: \"Property editor template not found\",\n detail: `Property editor template '${model.editorName}' not found. Available templates: ${availableEditors}. Note: Editor names are case-insensitive.`,\n availableTemplates: Object.keys(propertyEditorTemplates).sort()\n };\n return createToolResultError(errorData);\n }\n\n const template = propertyEditorTemplates[editorKey];\n\n const structuredOutput = {\n type: \"template\" as const,\n name: editorKey,\n template: {\n editorAlias: template.editorAlias,\n editorUiAlias: template.editorUiAlias,\n values: template.values,\n _notes: template._notes,\n },\n };\n\n // Build a helpful text response\n let response = `Property Editor Template: ${editorKey}\\n\\n`;\n\n if (template._notes) {\n response += `IMPORTANT NOTES:\\n${template._notes}\\n\\n`;\n }\n\n response += `Configuration:\\n${JSON.stringify(template, null, 2)}\\n\\n`;\n\n response += `Usage with create-data-type:\\n`;\n response += `When creating a data type with this property editor, use:\\n`;\n response += `- editorAlias: \"${template.editorAlias}\"\\n`;\n response += `- editorUiAlias: \"${template.editorUiAlias}\"\\n`;\n if (template.values && template.values.length > 0) {\n response += `- values: Customize the values array based on your requirements\\n`;\n }\n\n return createToolResult(structuredOutput);\n }),\n} satisfies ToolDefinition<typeof propertyEditorTemplateSchema.shape, typeof propertyEditorTemplateOutputSchema.shape>;\n\nexport default withStandardDecorators(GetDataTypePropertyEditorTemplateTool);\n","export interface PropertyEditorTemplate {\n editorAlias?: string;\n editorUiAlias?: string;\n values?: Array<{ alias: string; value?: any }>;\n _notes?: string;\n}\n\nexport const propertyEditorTemplates: Record<string, PropertyEditorTemplate> = \n{\n \"Decimal\": {\n \"editorAlias\": \"Umbraco.Decimal\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Decimal\",\n \"values\": [\n {\n \"alias\": \"step\",\n \"value\": \"0.01\"\n },\n {\n \"alias\": \"min\",\n \"value\": 3\n },\n {\n \"alias\": \"max\",\n \"value\": 10\n },\n {\n \"alias\": \"placeholder\",\n \"value\": \"Item\"\n }\n ]\n },\n \"Email\": {\n \"editorAlias\": \"Umbraco.EmailAddress\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.EmailAddress\",\n \"values\": [\n {\n \"alias\": \"inputType\",\n \"value\": \"email\"\n }\n ]\n },\n \"Label\": {\n \"editorAlias\": \"Umbraco.Label\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Label\",\n \"values\": [\n {\n \"alias\": \"umbracoDataValueType\",\n \"value\": \"DECIMAL\"\n }\n ],\n \"_notes\": \"Label options: STRING, DECIMAL, DATETIME, TIME, INTEGER, BIGINT, TEXT\"\n },\n \"Numeric\": {\n \"editorAlias\": \"Umbraco.Label\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Label\",\n \"values\": [\n {\n \"alias\": \"umbracoDataValueType\",\n \"value\": \"DECIMAL\"\n }\n ]\n },\n \"Slider\": {\n \"editorAlias\": \"Umbraco.Slider\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Slider\",\n \"values\": [\n {\n \"alias\": \"minVal\",\n \"value\": 0\n },\n {\n \"alias\": \"maxVal\",\n \"value\": 100\n },\n {\n \"alias\": \"initVal1\",\n \"value\": 0\n },\n {\n \"alias\": \"initVal2\",\n \"value\": 0\n },\n {\n \"alias\": \"step\",\n \"value\": 1\n }\n ]\n },\n \"Tags\": {\n \"editorAlias\": \"Umbraco.Tags\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Tags\",\n \"values\": [\n {\n \"alias\": \"group\",\n \"value\": \"default\"\n },\n {\n \"alias\": \"storageType\",\n \"value\": \"Json\"\n }\n ],\n \"_notes\": \"Storage options: Json, CSV\"\n },\n \"Textarea\": {\n \"editorAlias\": \"Umbraco.TextArea\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.TextArea\",\n \"values\": [\n {\n \"alias\": \"rows\",\n \"value\": 10\n },\n {\n \"alias\": \"maxChars\",\n \"value\": 100\n },\n {\n \"alias\": \"minHeight\",\n \"value\": 200\n },\n {\n \"alias\": \"maxHeight\",\n \"value\": 100\n }\n ]\n },\n \"Textbox\": {\n \"editorAlias\": \"Umbraco.TextBox\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.TextBox\",\n \"values\": [\n {\n \"alias\": \"maxChars\",\n \"value\": 512\n },\n {\n \"alias\": \"inputType\",\n \"value\": \"text\"\n }\n ]\n },\n \"Toggle\": {\n \"editorAlias\": \"Umbraco.TrueFalse\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Toggle\",\n \"values\": [\n {\n \"alias\": \"default\",\n \"value\": true\n },\n {\n \"alias\": \"showLabels\",\n \"value\": true\n },\n {\n \"alias\": \"labelOn\",\n \"value\": \"On\"\n },\n {\n \"alias\": \"labelOff\",\n \"value\": \"Off\"\n },\n {\n \"alias\": \"ariaLabel\",\n \"value\": \"Reader\"\n }\n ]\n },\n \"BlockList\": {\n \"editorAlias\": \"Umbraco.BlockList\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.BlockList\",\n \"values\": [\n {\n \"alias\": \"blocks\",\n \"value\": [\n {\n \"contentElementTypeKey\": \"c80027e5-7e87-49c1-9b4f-1b9d3fbc2e90\",\n \"settingsElementTypeKey\": \"2e1a4fd4-b695-4033-8626-1a45b54e04cb\",\n \"backgroundColor\": \"#c05454\",\n \"iconColor\": \"#00ff6f\"\n }\n ]\n },\n {\n \"alias\": \"validationLimit\",\n \"value\": {\n \"max\": 3\n }\n },\n {\n \"alias\": \"useLiveEditing\",\n \"value\": true\n },\n {\n \"alias\": \"useInlineEditingAsDefault\",\n \"value\": true\n },\n {\n \"alias\": \"maxPropertyWidth\",\n \"value\": \"100px\"\n }\n ],\n \"_notes\": \"IMPORTANT - when creating new block list data types always create the required element types first before creating the data type\"\n },\n \"CheckBoxList\": {\n \"editorAlias\": \"Umbraco.BlockList\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.BlockList\",\n \"values\": [\n {\n \"alias\": \"blocks\",\n \"value\": [\n {\n \"contentElementTypeKey\": \"c80027e5-7e87-49c1-9b4f-1b9d3fbc2e90\",\n \"settingsElementTypeKey\": \"2e1a4fd4-b695-4033-8626-1a45b54e04cb\",\n \"backgroundColor\": \"#c05454\",\n \"iconColor\": \"#00ff6f\"\n }\n ]\n },\n {\n \"alias\": \"validationLimit\",\n \"value\": {\n \"max\": 3\n }\n },\n {\n \"alias\": \"useLiveEditing\",\n \"value\": true\n },\n {\n \"alias\": \"useInlineEditingAsDefault\",\n \"value\": true\n },\n {\n \"alias\": \"maxPropertyWidth\",\n \"value\": \"100px\"\n }\n ]\n },\n \"Collection\": {\n \"editorAlias\": \"Umbraco.BlockList\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.BlockList\",\n \"values\": [\n {\n \"alias\": \"blocks\",\n \"value\": [\n {\n \"contentElementTypeKey\": \"c80027e5-7e87-49c1-9b4f-1b9d3fbc2e90\",\n \"settingsElementTypeKey\": \"2e1a4fd4-b695-4033-8626-1a45b54e04cb\",\n \"backgroundColor\": \"#c05454\",\n \"iconColor\": \"#00ff6f\"\n }\n ]\n },\n {\n \"alias\": \"validationLimit\",\n \"value\": {\n \"max\": 3\n }\n },\n {\n \"alias\": \"useLiveEditing\",\n \"value\": true\n },\n {\n \"alias\": \"useInlineEditingAsDefault\",\n \"value\": true\n },\n {\n \"alias\": \"maxPropertyWidth\",\n \"value\": \"100px\"\n }\n ]\n },\n \"Dropdown\": {\n \"editorAlias\": \"Umbraco.DropDown.Flexible\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Dropdown\",\n \"values\": [\n {\n \"alias\": \"items\",\n \"value\": [\n \"Item 1\",\n \"Item 2\"\n ]\n },\n {\n \"alias\": \"multiple\",\n \"value\": true\n }\n ]\n },\n \"MultipleTextString\": {\n \"editorAlias\": \"Umbraco.MultipleTextstring\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.MultipleTextString\",\n \"values\": [\n {\n \"alias\": \"min\",\n \"value\": 3\n },\n {\n \"alias\": \"max\",\n \"value\": 10\n }\n ]\n },\n \"RadioButtonList\": {\n \"editorAlias\": \"Umbraco.RadioButtonList\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.RadioButtonList\",\n \"values\": [\n {\n \"alias\": \"items\",\n \"value\": [\n \"Item 1\",\n \"Item 2\"\n ]\n }\n ]\n },\n \"ImageCropper\": {\n \"_notes\": \"Doesn't work\"\n },\n \"MediaPicker\": {\n \"editorAlias\": \"Umbraco.MediaPicker3\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.MediaPicker\",\n \"values\": [\n {\n \"alias\": \"filter\",\n \"value\": \"cc07b313-0843-4aa8-bbda-871c8da728c8\"\n },\n {\n \"alias\": \"multiple\",\n \"value\": true\n },\n {\n \"alias\": \"validationLimit\",\n \"value\": {\n \"max\": 10\n }\n },\n {\n \"alias\": \"startNodeId\"\n },\n {\n \"alias\": \"enableLocalFocalPoint\",\n \"value\": true\n },\n {\n \"alias\": \"ignoreUserStartNodes\",\n \"value\": true\n }\n ]\n },\n \"UploadField\": {\n \"editorAlias\": \"Umbraco.UploadField\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.UploadField\",\n \"values\": [\n {\n \"alias\": \"fileExtensions\",\n \"value\": [\n \"pdf\"\n ]\n }\n ]\n },\n \"MemberGroupPicker\": {\n \"editorAlias\": \"Umbraco.MemberGroupPicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.MemberGroupPicker\",\n \"values\": []\n },\n \"MemberPicker\": {\n \"editorAlias\": \"Umbraco.MemberPicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.MemberPicker\",\n \"values\": []\n },\n \"UserPicker\": {\n \"editorAlias\": \"Umbraco.UserPicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.UserPicker\",\n \"values\": []\n },\n \"ColorPicker\": {\n \"editorAlias\": \"Umbraco.ColorPicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.ColorPicker\",\n \"values\": [\n {\n \"alias\": \"useLabel\",\n \"value\": true\n },\n {\n \"alias\": \"items\",\n \"value\": [\n {\n \"value\": \"F00\",\n \"label\": \"Red\"\n }\n ]\n }\n ]\n },\n \"ContentPicker\": {\n \"editorAlias\": \"Umbraco.MultiNodeTreePicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.ContentPicker\",\n \"values\": [\n {\n \"alias\": \"minNumber\",\n \"value\": 0\n },\n {\n \"alias\": \"maxNumber\",\n \"value\": 0\n },\n {\n \"alias\": \"ignoreUserStartNodes\",\n \"value\": true\n },\n {\n \"alias\": \"startNode\",\n \"value\": {\n \"type\": \"content\",\n \"dynamicRoot\": {\n \"originAlias\": \"Current\"\n }\n }\n },\n {\n \"alias\": \"filter\",\n \"value\": \"0fde8472-7c10-4e8a-bd4a-fffc0306d0aa\"\n },\n {\n \"alias\": \"showOpenButton\",\n \"value\": true\n }\n ]\n },\n \"DatePicker\": {\n \"editorAlias\": \"Umbraco.DateTime\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.DatePicker\",\n \"values\": [\n {\n \"alias\": \"format\",\n \"value\": \"YYYY-MM-DD HH:mm:ss\"\n }\n ]\n },\n \"DocumentPicker\": {\n \"editorAlias\": \"Umbraco.ContentPicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.DocumentPicker\",\n \"values\": [\n {\n \"alias\": \"ignoreUserStartNodes\",\n \"value\": true\n },\n {\n \"alias\": \"startNodeId\",\n \"value\": \"dcf18a51-6919-4cf8-89d1-36b94ce4d963\"\n },\n {\n \"alias\": \"showOpenButton\",\n \"value\": true\n }\n ]\n },\n \"EyeDropper\": {\n \"editorAlias\": \"Umbraco.ColorPicker.EyeDropper\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.EyeDropper\",\n \"values\": [\n {\n \"alias\": \"showAlpha\",\n \"value\": true\n },\n {\n \"alias\": \"showPalette\",\n \"value\": true\n }\n ]\n },\n \"MultiUrlPicker\": {\n \"editorAlias\": \"Umbraco.MultiUrlPicker\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.MultiUrlPicker\",\n \"values\": [\n {\n \"alias\": \"minNumber\",\n \"value\": 1\n },\n {\n \"alias\": \"maxNumber\",\n \"value\": 3\n },\n {\n \"alias\": \"ignoreUserStartNodes\",\n \"value\": true\n },\n {\n \"alias\": \"hideAnchor\",\n \"value\": false\n }\n ]\n },\n \"BlockGrid\": {\n \"editorAlias\": \"Umbraco.BlockGrid\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.BlockGrid\",\n \"values\": [\n {\n \"alias\": \"gridColumns\",\n \"value\": 12\n },\n {\n \"alias\": \"blocks\",\n \"value\": [\n {\n \"contentElementTypeKey\": \"c80027e5-7e87-49c1-9b4f-1b9d3fbc2e90\",\n \"allowAtRoot\": true,\n \"allowInAreas\": true,\n \"settingsElementTypeKey\": \"93638715-f76c-4a11-86b1-6a9d66504901\",\n \"columnSpanOptions\": [\n {\n \"columnSpan\": 12\n }\n ],\n \"rowMinSpan\": 0,\n \"rowMaxSpan\": 3\n }\n ]\n }\n ],\n \"_notes\": \"IMPORTANT - when creating new block grid data types always create the required element types first before creating the data type\"\n },\n \"CodeEditor\": {\n \"editorAlias\": \"Umbraco.Plain.String\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.CodeEditor\",\n \"values\": [\n {\n \"alias\": \"language\",\n \"value\": \"javascript\"\n },\n {\n \"alias\": \"height\",\n \"value\": 400\n },\n {\n \"alias\": \"lineNumbers\",\n \"value\": true\n },\n {\n \"alias\": \"minimap\",\n \"value\": true\n },\n {\n \"alias\": \"wordWrap\",\n \"value\": false\n }\n ]\n },\n \"MarkdownEditor\": {\n \"editorAlias\": \"Umbraco.MarkdownEditor\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.MarkdownEditor\",\n \"values\": [\n {\n \"alias\": \"preview\",\n \"value\": true\n },\n {\n \"alias\": \"defaultValue\",\n \"value\": \"Default value\"\n },\n {\n \"alias\": \"overlaySize\",\n \"value\": \"small\"\n }\n ]\n },\n \"RichTextEditor_TinyMCE\": {\n \"editorAlias\": \"Umbraco.RichText\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.TinyMCE\",\n \"values\": [\n {\n \"alias\": \"toolbar\",\n \"value\": [\n \"styles\",\n \"bold\",\n \"italic\",\n \"alignleft\",\n \"aligncenter\",\n \"alignright\",\n \"bullist\",\n \"numlist\",\n \"outdent\",\n \"indent\",\n \"sourcecode\",\n \"link\",\n \"umbmediapicker\",\n \"umbembeddialog\"\n ]\n },\n {\n \"alias\": \"mode\",\n \"value\": \"Classic\"\n },\n {\n \"alias\": \"maxImageSize\",\n \"value\": 500\n },\n {\n \"alias\": \"blocks\",\n \"value\": [\n {\n \"contentElementTypeKey\": \"c80027e5-7e87-49c1-9b4f-1b9d3fbc2e90\",\n \"settingsElementTypeKey\": \"93638715-f76c-4a11-86b1-6a9d66504901\",\n \"label\": \"Appearance\",\n \"displayInline\": true,\n \"editorSize\": \"small\",\n \"backgroundColor\": \"#000000\",\n \"iconColor\": \"#000000\"\n }\n ]\n },\n {\n \"alias\": \"mediaParentId\"\n },\n {\n \"alias\": \"ignoreUserStartNodes\",\n \"value\": true\n }\n ]\n },\n \"RichTextEditor_Tiptap\": {\n \"editorAlias\": \"Umbraco.RichText\",\n \"editorUiAlias\": \"Umb.PropertyEditorUi.Tiptap\",\n \"values\": [\n {\n \"alias\": \"toolbar\",\n \"value\": [\n [\n [\n \"Umb.Tiptap.Toolbar.SourceEditor\"\n ],\n [\n \"Umb.Tiptap.Toolbar.Bold\",\n \"Umb.Tiptap.Toolbar.Italic\",\n \"Umb.Tiptap.Toolbar.Underline\"\n ],\n [\n \"Umb.Tiptap.Toolbar.TextAlignLeft\",\n \"Umb.Tiptap.Toolbar.TextAlignCenter\",\n \"Umb.Tiptap.Toolbar.TextAlignRight\"\n ],\n [\n \"Umb.Tiptap.Toolbar.BulletList\",\n \"Umb.Tiptap.Toolbar.OrderedList\"\n ],\n [\n \"Umb.Tiptap.Toolbar.Blockquote\",\n \"Umb.Tiptap.Toolbar.HorizontalRule\"\n ],\n [\n \"Umb.Tiptap.Toolbar.Link\",\n \"Umb.Tiptap.Toolbar.Unlink\"\n ],\n [\n \"Umb.Tiptap.Toolbar.MediaPicker\",\n \"Umb.Tiptap.Toolbar.EmbeddedMedia\"\n ]\n ]\n ]\n },\n {\n \"alias\": \"maxImageSize\",\n \"value\": 500\n },\n {\n \"alias\": \"overlaySize\",\n \"value\": \"medium\"\n },\n {\n \"alias\": \"extensions\",\n \"value\": [\n \"Umb.Tiptap.Embed\",\n \"Umb.Tiptap.Figure\",\n \"Umb.Tiptap.Image\",\n \"Umb.Tiptap.Link\",\n \"Umb.Tiptap.MediaUpload\",\n \"Umb.Tiptap.RichTextEssentials\",\n \"Umb.Tiptap.Subscript\",\n \"Umb.Tiptap.Superscript\",\n \"Umb.Tiptap.Table\",\n \"Umb.Tiptap.TextAlign\",\n \"Umb.Tiptap.TextDirection\",\n \"Umb.Tiptap.Underline\"\n ]\n }\n ]\n }\n} as any;\n","import { UpdateDataTypeRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putDataTypeByIdBody,\n putDataTypeByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDataTypeSchema = {\n id: putDataTypeByIdParams.shape.id,\n data: z.object(putDataTypeByIdBody.shape),\n};\n\nconst UpdateDataTypeTool = {\n name: \"update-data-type\",\n description: \"Updates a data type by Id\",\n inputSchema: updateDataTypeSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateDataTypeRequestModel }) => {\n return executeVoidApiCall((client) => \n client.putDataTypeById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDataTypeSchema>;\n\nexport default withStandardDecorators(UpdateDataTypeTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CopyDataTypeRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport {\n postDataTypeByIdCopyParams,\n postDataTypeByIdCopyBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst copyDataTypeSchema = {\n id: postDataTypeByIdCopyParams.shape.id,\n body: z.object(postDataTypeByIdCopyBody.shape),\n};\n\nexport const copyDataTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CopyDataTypeTool = {\n name: \"copy-data-type\",\n description: \"Copy a data type by Id. Returns the new data type's ID on success.\",\n inputSchema: copyDataTypeSchema,\n outputSchema: copyDataTypeOutputSchema.shape,\n slices: ['copy'],\n handler: (async ({ id, body }: { id: string; body: CopyDataTypeRequestModel }) => {\n const client = UmbracoManagementClient.getClient();\n\n const response = await client.postDataTypeByIdCopy(id, body, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract new ID from Location header: /umbraco/management/api/v1/data-type/{guid}\n const location = response.headers?.location || '';\n const newId = location.split('/').pop() || '';\n\n const output = {\n message: \"Data type copied successfully\",\n id: newId\n };\n return createToolResult(output);\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof copyDataTypeSchema, typeof copyDataTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CopyDataTypeTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport { getDataTypeByIdIsUsedParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n isUsed: z.boolean().describe(\"Whether the data type is currently used within Umbraco\"),\n}).shape;\n\nconst IsUsedDataTypeTool = {\n name: \"is-used-data-type\",\n description: \"Checks if a data type is used within Umbraco\",\n inputSchema: getDataTypeByIdIsUsedParams.shape,\n outputSchema,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['references'],\n handler: (async ({ id }: { id: string }) => {\n const client = UmbracoManagementClient.getClient();\n const isUsed = await client.getDataTypeByIdIsUsed(id);\n return createToolResult({ isUsed });\n }),\n} satisfies ToolDefinition<typeof getDataTypeByIdIsUsedParams.shape, typeof outputSchema>;\n\nexport default withStandardDecorators(IsUsedDataTypeTool);\n","import { MoveDataTypeRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putDataTypeByIdMoveParams,\n putDataTypeByIdMoveBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst moveDataTypeSchema = {\n id: putDataTypeByIdMoveParams.shape.id,\n body: z.object(putDataTypeByIdMoveBody.shape),\n};\n\nconst MoveDataTypeTool = {\n name: \"move-data-type\",\n description: \"Move a data type by Id\",\n inputSchema: moveDataTypeSchema,\n slices: ['move'],\n handler: (async ({ id, body }: { id: string; body: MoveDataTypeRequestModel }) => {\n return executeVoidApiCall((client) => \n client.putDataTypeByIdMove(id, body, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof moveDataTypeSchema>;\n\nexport default withStandardDecorators(MoveDataTypeTool);\n","import { getDataTypeByIdReferencedByParams, getDataTypeByIdReferencedByResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetReferencesDataTypeTool = {\n name: \"get-references-data-type\",\n description: `Gets the document types and properties that use a specific data type.\n\n This is the recommended method to find all document types that reference a particular data type.\n\n Usage examples:\n - Find all document types using the RichText editor data type\n - Identify properties that reference a specific data type before modifying or deleting it\n - Perform bulk updates to all properties using a specific data type\n\n Returns a detailed list with content type information (id, type, name, icon) and all properties\n (name, alias) that use the specified data type.\n `,\n inputSchema: getDataTypeByIdReferencedByParams.shape,\n outputSchema: getDataTypeByIdReferencedByResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['references'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDataTypeByIdReferencedBy(id, undefined, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDataTypeByIdReferencedByParams.shape, typeof getDataTypeByIdReferencedByResponse.shape>;\n\nexport default withStandardDecorators(GetReferencesDataTypeTool);\n","import { CreateFolderRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { postDataTypeFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst CreateDataTypeFolderTool = {\n name: \"create-data-type-folder\",\n description: \"Creates a new data type folder\",\n inputSchema: postDataTypeFolderBody.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateFolderRequestModel) => {\n return executeVoidApiCall((client) => \n client.postDataTypeFolder(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postDataTypeFolderBody.shape>;\n\nexport default withStandardDecorators(CreateDataTypeFolderTool);\n","import { deleteDataTypeFolderByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDataTypeFolderTool = {\n name: \"delete-data-type-folder\",\n description: \"Deletes a data type folder by Id\",\n inputSchema: deleteDataTypeFolderByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) => \n client.deleteDataTypeFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDataTypeFolderByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDataTypeFolderTool);\n","import { getDataTypeFolderByIdParams, getDataTypeFolderByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeFolderTool = {\n name: \"get-data-type-folder\",\n description: \"Gets a data type folder by Id\",\n inputSchema: getDataTypeFolderByIdParams.shape,\n outputSchema: getDataTypeFolderByIdResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) => \n client.getDataTypeFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDataTypeFolderByIdParams.shape, typeof getDataTypeFolderByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeFolderTool);\n","import { GetItemDataTypeSearchParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemDataTypeSearchQueryParams, getItemDataTypeSearchResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeSearchTool = {\n name: \"get-data-type-search\",\n description: \"Searches the data type tree for a data type by name. It does NOT allow for searching for data type folders.\",\n inputSchema: getItemDataTypeSearchQueryParams.shape,\n outputSchema: getItemDataTypeSearchResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['search'],\n handler: (async (params: GetItemDataTypeSearchParams) => {\n return executeGetApiCall((client) =>\n client.getItemDataTypeSearch(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDataTypeSearchQueryParams.shape, typeof getItemDataTypeSearchResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeSearchTool);\n","import {\n putDataTypeFolderByIdParams,\n putDataTypeFolderByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDataTypeFolderSchema = {\n id: putDataTypeFolderByIdParams.shape.id,\n data: z.object(putDataTypeFolderByIdBody.shape),\n};\n\nconst UpdateDataTypeFolderTool = {\n name: \"update-data-type-folder\",\n description: \"Updates a data type folder by Id\",\n inputSchema: updateDataTypeFolderSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update', 'folders'],\n handler: (async (model: { id: string; data: { name: string } }) => {\n return executeVoidApiCall((client) => \n client.putDataTypeFolderById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDataTypeFolderSchema>;\n\nexport default withStandardDecorators(UpdateDataTypeFolderTool);\n","import { GetTreeDataTypeRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDataTypeRootQueryParams, getTreeDataTypeRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeRootTool = {\n name: \"get-data-type-root\",\n description: \"Gets the root level of the data type and data type folders in the tree.\",\n inputSchema: getTreeDataTypeRootQueryParams.shape,\n outputSchema: getTreeDataTypeRootResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: GetTreeDataTypeRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDataTypeRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDataTypeRootQueryParams.shape, typeof getTreeDataTypeRootResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeRootTool);\n","import { GetTreeDataTypeChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDataTypeChildrenQueryParams, getTreeDataTypeChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeChildrenTool = {\n name: \"get-data-type-children\",\n description: \"Gets the children data types or data type folders by the parent id\",\n inputSchema: getTreeDataTypeChildrenQueryParams.shape,\n outputSchema: getTreeDataTypeChildrenResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: GetTreeDataTypeChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDataTypeChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDataTypeChildrenQueryParams.shape, typeof getTreeDataTypeChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeChildrenTool);\n","import { GetTreeDataTypeSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDataTypeSiblingsQueryParams, getTreeDataTypeSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDataTypeSiblingsTool = {\n name: \"get-data-type-siblings\",\n description: \"Gets sibling data types or data type folders for a given descendant id\",\n inputSchema: getTreeDataTypeSiblingsQueryParams.shape,\n outputSchema: getTreeDataTypeSiblingsResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: GetTreeDataTypeSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDataTypeSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDataTypeSiblingsQueryParams.shape, typeof getTreeDataTypeSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetDataTypeSiblingsTool);\n","import { GetTreeDataTypeAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDataTypeAncestorsQueryParams, getTreeDataTypeAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDataTypeAncestorsResponse,\n});\n\nconst GetDataTypeAncestorsTool = {\n name: \"get-data-type-ancestors\",\n description: \"Gets the ancestors of a data type by Id\",\n inputSchema: getTreeDataTypeAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: GetTreeDataTypeAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeDataTypeAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDataTypeAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDataTypeAncestorsTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { getTreeDataTypeRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDataTypeRootResponse.shape.items,\n});\n\nconst GetAllDataTypesTool = {\n name: \"get-all-data-types\",\n description: `Gets all data types by recursively fetching from root and all children.\n This is the preferred approach when you need to understand the full folder structure.\n For large sites, this may take a while to complete. For smaller sites its more efficient than fetching all data types by folder.`,\n inputSchema: {},\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async () => {\n const client = UmbracoManagementClient.getClient();\n const allItems: any[] = [];\n\n // Get root items\n const rootResponse = await client.getTreeDataTypeRoot({\n skip: 0,\n take: 10000\n });\n allItems.push(...rootResponse.items);\n\n // Recursively get children for each item\n async function getChildrenForItems(items: any[]) {\n for (const item of items) {\n if (item.hasChildren) {\n const childrenResponse = await client.getTreeDataTypeChildren({\n parentId: item.id,\n skip: 0,\n take: 10000\n });\n\n // Add these children to our collection\n allItems.push(...childrenResponse.items);\n\n // Recursively get children of these children\n if (childrenResponse.items.length > 0) {\n await getChildrenForItems(childrenResponse.items);\n }\n }\n }\n }\n\n await getChildrenForItems(rootResponse.items);\n\n return createToolResult({\n items: allItems\n });\n }),\n} satisfies ToolDefinition<{}, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetAllDataTypesTool);\n","import { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\"\n\n// matches hardcoded value in Umbraco source code\nexport const AdminGroupKeyString = \"E5E7F6C8-7F9C-4B5B-8D5D-9E1E5A4F7E4D\";\n\nexport const sections = {\n content: \"Umb.Section.Content\",\n forms: \"Umb.Section.Forms\",\n media: \"Umb.Section.Media\",\n members: \"Umb.Section.Members\",\n packages: \"Umb.Section.Packages\",\n settings: \"Umb.Section.Settings\",\n translation: \"Umb.Section.Translation\",\n users: \"Umb.Section.Users\"\n}\n\nexport const AuthorizationPolicies = {\n RequireAdminAccess: (user: CurrentUserResponseModel) =>\n user.userGroupIds.some((groupId) => groupId.id.toUpperCase() === AdminGroupKeyString),\n\n SectionAccessContent: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content),\n\n SectionAccessContentOrMedia: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.media),\n\n SectionAccessForContentTree: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.media\n || section === sections.users\n || section === sections.settings\n || section === sections.packages\n || section === sections.members),\n\n SectionAccessForMediaTree: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.media\n || section === sections.users\n || section === sections.settings\n || section === sections.packages\n || section === sections.members),\n\n SectionAccessForMemberTree: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.media\n || section === sections.members),\n\n SectionAccessMedia: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.media),\n\n SectionAccessMembers: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.members),\n\n SectionAccessPackages: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.packages),\n\n SectionAccessSettings: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n SectionAccessUsers: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.users),\n\n TreeAccessDataTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessDictionary: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.translation),\n\n TreeAccessDictionaryOrTemplates: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.translation\n || section === sections.settings),\n\n TreeAccessDocuments: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content),\n\n TreeAccessDocumentsOrDocumentTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.settings),\n\n TreeAccessDocumentOrMediaOrContentTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.settings\n || section === sections.media),\n\n TreeAccessDocumentsOrMediaOrMembersOrContentTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.content\n || section === sections.settings\n || section === sections.media\n || section === sections.members),\n\n TreeAccessDocumentTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessLanguages: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessMediaTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessMediaOrMediaTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.media\n || section === sections.settings),\n\n TreeAccessMemberGroups: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.members),\n\n TreeAccessMemberTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessMembersOrMemberTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings\n || section === sections.members),\n\n TreeAccessPartialViews: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessRelationTypes: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessScripts: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessStylesheets: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n\n TreeAccessStylesheetsOrDocumentOrMediaOrMember: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings\n || section === sections.content\n || section === sections.media\n || section === sections.members),\n\n TreeAccessTemplates: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings\n || section === sections.content),\n TreeAccessWebhooks: (user: CurrentUserResponseModel) =>\n user.allowedSections.some((section) => section === sections.settings),\n};","import CreateDataTypeTool from \"./post/create-data-type.js\";\nimport DeleteDataTypeTool from \"./delete/delete-data-type.js\";\nimport FindDataTypeTool from \"./get/find-data-type.js\";\nimport GetDataTypeTool from \"./get/get-data-type.js\";\nimport GetDataTypesByIdArrayTool from \"./get/get-data-type-by-id-array.js\";\nimport GetDataTypeConfigurationTool from \"./get/get-data-type-configuration.js\";\nimport GetDataTypePropertyEditorTemplateTool from \"./get/get-data-type-property-editor-template.js\";\nimport UpdateDataTypeTool from \"./put/update-data-type.js\";\nimport CopyDataTypeTool from \"./post/copy-data-type.js\";\nimport IsUsedDataTypeTool from \"./get/is-used-data-type.js\";\nimport MoveDataTypeTool from \"./put/move-data-type.js\";\nimport GetReferencesDataTypeTool from \"./get/get-references-data-type.js\";\nimport CreateDataTypeFolderTool from \"./folders/post/create-folder.js\";\nimport DeleteDataTypeFolderTool from \"./folders/delete/delete-folder.js\";\nimport GetDataTypeFolderTool from \"./folders/get/get-folder.js\";\nimport GetDataTypeSearchTool from \"./items/get/get-search.js\";\nimport UpdateDataTypeFolderTool from \"./folders/put/update-folder.js\";\nimport GetDataTypeRootTool from \"./items/get/get-root.js\";\nimport GetDataTypeChildrenTool from \"./items/get/get-children.js\";\nimport GetDataTypeSiblingsTool from \"./items/get/get-siblings.js\";\nimport GetDataTypeAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetAllDataTypesTool from \"./items/get/get-all.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const DataTypeCollection: ToolCollectionExport = {\n metadata: {\n name: 'data-type',\n displayName: 'Data Types',\n description: 'Data type definitions and management',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [GetDataTypeSearchTool];\n\n if (AuthorizationPolicies.TreeAccessDocumentsOrMediaOrMembersOrContentTypes(user)) {\n tools.push(GetReferencesDataTypeTool);\n tools.push(IsUsedDataTypeTool);\n tools.push(GetDataTypeTool);\n tools.push(GetDataTypesByIdArrayTool);\n tools.push(GetDataTypeConfigurationTool);\n tools.push(GetDataTypePropertyEditorTemplateTool);\n }\n\n if (AuthorizationPolicies.TreeAccessDataTypes(user)) {\n tools.push(GetDataTypeRootTool);\n tools.push(GetDataTypeChildrenTool);\n tools.push(GetDataTypeSiblingsTool);\n tools.push(GetDataTypeAncestorsTool);\n tools.push(GetAllDataTypesTool);\n\n tools.push(DeleteDataTypeTool);\n tools.push(CreateDataTypeTool);\n tools.push(UpdateDataTypeTool);\n\n tools.push(CopyDataTypeTool);\n tools.push(MoveDataTypeTool);\n }\n\n if (AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes(user)) {\n tools.push(FindDataTypeTool);\n }\n\n if (AuthorizationPolicies.TreeAccessDataTypes(user)) {\n tools.push(CreateDataTypeFolderTool);\n tools.push(DeleteDataTypeFolderTool);\n tools.push(GetDataTypeFolderTool);\n tools.push(UpdateDataTypeFolderTool);\n }\n\n return tools;\n }\n};\n","import { deleteDictionaryByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDictionaryItemTool = {\n name: \"delete-dictionary-item\",\n description: \"Deletes a dictionary item by Id\",\n inputSchema: deleteDictionaryByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDictionaryById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDictionaryByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDictionaryItemTool);\n","import { GetDictionaryParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getDictionaryQueryParams, getDictionaryResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst FindDictionaryItemTool = {\n name: \"find-dictionary\",\n description: \"Finds a dictionary by Id or name\",\n inputSchema: getDictionaryQueryParams.shape,\n outputSchema: getDictionaryResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: GetDictionaryParams) => {\n return executeGetApiCall((client) =>\n client.getDictionary(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDictionaryQueryParams.shape, typeof getDictionaryResponse.shape>;\n\nexport default withStandardDecorators(FindDictionaryItemTool);\n","import { getDictionaryByIdParams, getDictionaryByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDictionaryItemTool = {\n name: \"get-dictionary\",\n description: \"Gets a dictionary by Id\",\n inputSchema: getDictionaryByIdParams.shape,\n outputSchema: getDictionaryByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDictionaryById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDictionaryByIdParams.shape, typeof getDictionaryByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDictionaryItemTool);\n","import { getItemDictionaryQueryParams, getItemDictionaryResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemDictionaryResponse,\n});\n\nconst GetDictionaryByIdArrayTool = {\n name: \"get-dictionary-by-id-array\",\n description: \"Gets dictionary items by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemDictionaryQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: { id?: string[] }) => {\n return executeGetItemsApiCall((client) =>\n client.getItemDictionary(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDictionaryQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDictionaryByIdArrayTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateDictionaryItemRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst createDictionarySchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n parentId: z.string().uuid().optional(),\n translations: z.array(z.object({\n isoCode: z.string().min(1, \"ISO code is required\"),\n translation: z.string()\n })),\n id: z.string().uuid().nullish()\n});\n\ntype CreateDictionarySchema = z.infer<typeof createDictionarySchema>;\n\nexport const createDictionaryOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateDictionaryItemTool = {\n name: \"create-dictionary\",\n description: `Creates a new dictionary item.`,\n inputSchema: createDictionarySchema.shape,\n outputSchema: createDictionaryOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateDictionarySchema) => {\n const client = UmbracoManagementClient.getClient();\n\n // Transform: flat parentId -> nested parent object for API\n const payload: CreateDictionaryItemRequestModel = {\n name: model.name,\n parent: model.parentId ? { id: model.parentId } : undefined,\n translations: model.translations,\n id: model.id\n };\n\n const response = await client.postDictionary(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = model.id || '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Dictionary item created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createDictionarySchema.shape, typeof createDictionaryOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateDictionaryItemTool);\n","import { UpdateDictionaryItemRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putDictionaryByIdBody,\n putDictionaryByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDictionaryItemSchema = {\n id: putDictionaryByIdParams.shape.id,\n data: z.object(putDictionaryByIdBody.shape),\n};\n\nconst UpdateDictionaryItemTool = {\n name: \"update-dictionary-item\",\n description: \"Updates a dictionary item by Id\",\n inputSchema: updateDictionaryItemSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateDictionaryItemRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putDictionaryById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDictionaryItemSchema>;\n\nexport default withStandardDecorators(UpdateDictionaryItemTool);\n","import { MoveDictionaryRequestModel } from \"@/umb-management-api/schemas/moveDictionaryRequestModel.js\";\nimport {\n putDictionaryByIdMoveParams,\n putDictionaryByIdMoveBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst moveDictionaryItemSchema = {\n id: putDictionaryByIdMoveParams.shape.id,\n data: z.object(putDictionaryByIdMoveBody.shape),\n};\n\nconst MoveDictionaryItemTool = {\n name: \"move-dictionary-item\",\n description: \"Moves a dictionary item by Id\",\n inputSchema: moveDictionaryItemSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['move'],\n handler: (async (model: { id: string; data: MoveDictionaryRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putDictionaryByIdMove(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof moveDictionaryItemSchema>;\n\nexport default withStandardDecorators(MoveDictionaryItemTool);\n","import { GetTreeDictionaryRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDictionaryRootQueryParams, getTreeDictionaryRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDictionaryRootTool = {\n name: \"get-dictionary-root\",\n description: \"Gets the root level of the dictionary tree\",\n inputSchema: getTreeDictionaryRootQueryParams.shape,\n outputSchema: getTreeDictionaryRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDictionaryRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDictionaryRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDictionaryRootQueryParams.shape, typeof getTreeDictionaryRootResponse.shape>;\n\nexport default withStandardDecorators(GetDictionaryRootTool);\n","import { GetTreeDictionaryChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDictionaryChildrenQueryParams, getTreeDictionaryChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDictionaryChildrenTool = {\n name: \"get-dictionary-children\",\n description: \"Gets the children of a dictionary item by Id\",\n inputSchema: getTreeDictionaryChildrenQueryParams.shape,\n outputSchema: getTreeDictionaryChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDictionaryChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDictionaryChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDictionaryChildrenQueryParams.shape, typeof getTreeDictionaryChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetDictionaryChildrenTool);\n","import { GetTreeDictionaryAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDictionaryAncestorsQueryParams, getTreeDictionaryAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDictionaryAncestorsResponse,\n});\n\nconst GetDictionaryAncestorsTool = {\n name: \"get-dictionary-ancestors\",\n description: \"Gets the ancestors of a dictionary item by Id\",\n inputSchema: getTreeDictionaryAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDictionaryAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeDictionaryAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDictionaryAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDictionaryAncestorsTool);\n","import DeleteDictionaryItemTool from \"./delete/delete-dictionary-item.js\";\nimport FindDictionaryItemTool from \"./get/find-dictionary-item.js\";\nimport GetDictionaryItemTool from \"./get/get-dictionary-item.js\";\nimport GetDictionaryByIdArrayTool from \"./get/get-dictionary-by-id-array.js\";\nimport CreateDictionaryItemTool from \"./post/create-dictionary-item.js\";\nimport UpdateDictionaryItemTool from \"./put/update-dictionary-item.js\";\nimport MoveDictionaryItemTool from \"./put/move-dictionary-item.js\";\nimport GetDictionaryRootTool from \"./items/get/get-root.js\";\nimport GetDictionaryChildrenTool from \"./items/get/get-children.js\";\nimport GetDictionaryAncestorsTool from \"./items/get/get-ancestors.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const DictionaryCollection: ToolCollectionExport = {\n metadata: {\n name: 'dictionary',\n displayName: 'Dictionary',\n description: 'Dictionary item management and localization',\n dependencies: ['language'] // Dictionary items typically require language context\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [FindDictionaryItemTool];\n\n if (AuthorizationPolicies.TreeAccessDictionary(user)) {\n tools.push(CreateDictionaryItemTool);\n tools.push(GetDictionaryItemTool);\n tools.push(GetDictionaryByIdArrayTool);\n tools.push(DeleteDictionaryItemTool);\n tools.push(UpdateDictionaryItemTool);\n tools.push(MoveDictionaryItemTool);\n }\n\n if (AuthorizationPolicies.TreeAccessDictionaryOrTemplates(user)) {\n tools.push(GetDictionaryRootTool);\n tools.push(GetDictionaryChildrenTool);\n tools.push(GetDictionaryAncestorsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export (can be removed later)\nexport const DictionaryTools = (user: CurrentUserResponseModel) => {\n return DictionaryCollection.tools(user);\n};\n","import { getDocumentBlueprintByIdParams, getDocumentBlueprintByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentBlueprintTool = {\n name: \"get-document-blueprint\",\n description: \"Gets a document blueprint by Id\",\n inputSchema: getDocumentBlueprintByIdParams.shape,\n outputSchema: getDocumentBlueprintByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentBlueprintById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentBlueprintByIdParams.shape, typeof getDocumentBlueprintByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintTool);\n","import { deleteDocumentBlueprintByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentBlueprintTool = {\n name: \"delete-document-blueprint\",\n description: \"Deletes a document blueprint by Id\",\n inputSchema: deleteDocumentBlueprintByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentBlueprintById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentBlueprintByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentBlueprintTool);\n","import { UpdateDocumentBlueprintRequestModel } from \"@/umb-management-api/schemas/updateDocumentBlueprintRequestModel.js\";\nimport {\n putDocumentBlueprintByIdParams,\n putDocumentBlueprintByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDocumentBlueprintSchema = z.object({\n id: putDocumentBlueprintByIdParams.shape.id,\n data: z.object(putDocumentBlueprintByIdBody.shape),\n});\n\ntype UpdateDocumentBlueprintParams = z.infer<typeof updateDocumentBlueprintSchema>;\n\nconst UpdateDocumentBlueprintTool = {\n name: \"update-document-blueprint\",\n description: \"Updates a document blueprint by Id\",\n inputSchema: updateDocumentBlueprintSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: UpdateDocumentBlueprintParams) => {\n return executeVoidApiCall((client) =>\n client.putDocumentBlueprintById(model.id, model.data as UpdateDocumentBlueprintRequestModel, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDocumentBlueprintSchema.shape>;\n\nexport default withStandardDecorators(UpdateDocumentBlueprintTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateDocumentBlueprintRequestModel, CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Flattened schema - prevents LLM JSON stringification of parent object\nconst createDocumentBlueprintSchema = z.object({\n values: z.array(z.object({\n culture: z.string().nullish(),\n segment: z.string().nullish(),\n alias: z.string().min(1),\n value: z.any().nullish()\n })),\n variants: z.array(z.object({\n culture: z.string().nullish(),\n segment: z.string().nullish(),\n name: z.string().min(1)\n })),\n documentType: z.object({\n id: z.string().uuid()\n }),\n id: z.string().uuid().nullish(),\n parentId: z.string().uuid().optional() // Flattened parent ID\n});\n\ntype CreateDocumentBlueprintSchema = z.infer<typeof createDocumentBlueprintSchema>;\n\nconst CreateDocumentBlueprintTool = {\n name: \"create-document-blueprint\",\n description: `Creates a new document blueprint.`,\n inputSchema: createDocumentBlueprintSchema.shape,\n slices: ['create'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(\"Umb.Document.CreateBlueprint\"),\n handler: (async (model: CreateDocumentBlueprintSchema) => {\n // Transform: flat parentId -> nested parent object for API\n const payload: CreateDocumentBlueprintRequestModel = {\n values: model.values,\n variants: model.variants,\n documentType: model.documentType,\n id: model.id,\n parent: model.parentId ? { id: model.parentId } : undefined,\n };\n\n return executeVoidApiCall((client) =>\n client.postDocumentBlueprint(payload, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof createDocumentBlueprintSchema.shape>;\n\nexport default withStandardDecorators(CreateDocumentBlueprintTool);\n","import { GetTreeDocumentBlueprintAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentBlueprintAncestorsQueryParams, getTreeDocumentBlueprintAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDocumentBlueprintAncestorsResponse,\n});\n\nconst GetDocumentBlueprintAncestorsTool = {\n name: \"get-document-blueprint-ancestors\",\n description: \"Gets the ancestors of a document blueprint by Id\",\n inputSchema: getTreeDocumentBlueprintAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentBlueprintAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeDocumentBlueprintAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentBlueprintAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintAncestorsTool);\n","import { GetTreeDocumentBlueprintChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentBlueprintChildrenQueryParams, getTreeDocumentBlueprintChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentBlueprintChildrenTool = {\n name: \"get-document-blueprint-children\",\n description: \"Gets the children of a document blueprint by Id\",\n inputSchema: getTreeDocumentBlueprintChildrenQueryParams.shape,\n outputSchema: getTreeDocumentBlueprintChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentBlueprintChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentBlueprintChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentBlueprintChildrenQueryParams.shape, typeof getTreeDocumentBlueprintChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintChildrenTool);\n","import { GetTreeDocumentBlueprintRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentBlueprintRootQueryParams, getTreeDocumentBlueprintRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentBlueprintRootTool = {\n name: \"get-document-blueprint-root\",\n description: \"Gets the root level of the document blueprint tree\",\n inputSchema: getTreeDocumentBlueprintRootQueryParams.shape,\n outputSchema: getTreeDocumentBlueprintRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentBlueprintRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentBlueprintRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentBlueprintRootQueryParams.shape, typeof getTreeDocumentBlueprintRootResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintRootTool);\n","import { GetTreeDocumentBlueprintSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentBlueprintSiblingsQueryParams, getTreeDocumentBlueprintSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentBlueprintSiblingsTool = {\n name: \"get-document-blueprint-siblings\",\n description: \"Gets sibling document blueprints for a given descendant id\",\n inputSchema: getTreeDocumentBlueprintSiblingsQueryParams.shape,\n outputSchema: getTreeDocumentBlueprintSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentBlueprintSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentBlueprintSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentBlueprintSiblingsQueryParams.shape, typeof getTreeDocumentBlueprintSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintSiblingsTool);\n","import { getDocumentBlueprintByIdScaffoldParams, getDocumentBlueprintByIdScaffoldResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentBlueprintScaffoldTool = {\n name: \"get-document-blueprint-scaffold\",\n description: `Get scaffold information for a document blueprint\n Use this to retrieve the scaffold structure and default values for a document blueprint, typically used when creating new documents from blueprints.`,\n inputSchema: getDocumentBlueprintByIdScaffoldParams.shape,\n outputSchema: getDocumentBlueprintByIdScaffoldResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentBlueprintByIdScaffold(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentBlueprintByIdScaffoldParams.shape, typeof getDocumentBlueprintByIdScaffoldResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintScaffoldTool);\n","import { CreateDocumentBlueprintFromDocumentRequestModel, CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Note: The Umbraco API schema includes a 'parent' parameter, but testing shows it is not\n// respected by the API - blueprints created from documents are always created at the root level.\n// Therefore we exclude the parent parameter from this tool to avoid confusion.\nconst createDocumentBlueprintFromDocumentSchema = z.object({\n document: z.object({\n id: z.string().uuid()\n }),\n id: z.string().uuid().optional(),\n name: z.string()\n});\n\ntype CreateDocumentBlueprintFromDocumentModel = z.infer<typeof createDocumentBlueprintFromDocumentSchema>;\n\nconst CreateDocumentBlueprintFromDocumentTool = {\n name: \"create-document-blueprint-from-document\",\n description: `Create a new document blueprint from an existing document\n Use this to create a blueprint template based on an existing document, preserving its structure and content for reuse.\n\n Note: Blueprints created from documents are always created at the root level. Use the move-document-blueprint tool to relocate them to folders after creation if needed.`,\n inputSchema: createDocumentBlueprintFromDocumentSchema.shape,\n slices: ['create'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(\"Umb.Document.CreateBlueprint\"),\n handler: (async (model: CreateDocumentBlueprintFromDocumentModel) => {\n const payload: CreateDocumentBlueprintFromDocumentRequestModel = {\n document: model.document,\n id: model.id ?? undefined,\n name: model.name,\n parent: undefined,\n };\n\n return executeVoidApiCall((client) =>\n client.postDocumentBlueprintFromDocument(payload, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof createDocumentBlueprintFromDocumentSchema.shape>;\n\nexport default withStandardDecorators(CreateDocumentBlueprintFromDocumentTool);\n","import { GetItemDocumentBlueprintParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemDocumentBlueprintQueryParams, getItemDocumentBlueprintResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemDocumentBlueprintResponse,\n});\n\nconst GetDocumentBlueprintByIdArrayTool = {\n name: \"get-document-blueprint-by-id-array\",\n description: \"Gets document blueprints by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemDocumentBlueprintQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetItemDocumentBlueprintParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemDocumentBlueprint(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDocumentBlueprintQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintByIdArrayTool);\n","import { MoveDocumentBlueprintRequestModel } from \"@/umb-management-api/schemas/moveDocumentBlueprintRequestModel.js\";\nimport {\n putDocumentBlueprintByIdMoveParams,\n putDocumentBlueprintByIdMoveBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst moveDocumentBlueprintSchema = z.object({\n id: putDocumentBlueprintByIdMoveParams.shape.id,\n data: z.object(putDocumentBlueprintByIdMoveBody.shape),\n});\n\ntype MoveDocumentBlueprintParams = z.infer<typeof moveDocumentBlueprintSchema>;\n\nconst MoveDocumentBlueprintTool = {\n name: \"move-document-blueprint\",\n description: \"Moves a document blueprint by Id\",\n inputSchema: moveDocumentBlueprintSchema.shape,\n annotations: {},\n slices: ['move'],\n handler: (async (model: MoveDocumentBlueprintParams) => {\n return executeVoidApiCall((client) =>\n client.putDocumentBlueprintByIdMove(\n model.id,\n model.data as MoveDocumentBlueprintRequestModel,\n CAPTURE_RAW_HTTP_RESPONSE\n )\n );\n }),\n} satisfies ToolDefinition<typeof moveDocumentBlueprintSchema.shape>;\n\nexport default withStandardDecorators(MoveDocumentBlueprintTool);\n","import { CreateFolderRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { postDocumentBlueprintFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst CreateDocumentBlueprintFolderTool = {\n name: \"create-document-blueprint-folder\",\n description: \"Creates a new document blueprint folder\",\n inputSchema: postDocumentBlueprintFolderBody.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateFolderRequestModel) => {\n return executeVoidApiCall((client) =>\n client.postDocumentBlueprintFolder(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postDocumentBlueprintFolderBody.shape>;\n\nexport default withStandardDecorators(CreateDocumentBlueprintFolderTool);\n","import { getDocumentBlueprintFolderByIdParams, getDocumentBlueprintFolderByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentBlueprintFolderTool = {\n name: \"get-document-blueprint-folder\",\n description: \"Gets a document blueprint folder by Id\",\n inputSchema: getDocumentBlueprintFolderByIdParams.shape,\n outputSchema: getDocumentBlueprintFolderByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentBlueprintFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentBlueprintFolderByIdParams.shape, typeof getDocumentBlueprintFolderByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentBlueprintFolderTool);\n","import { UpdateFolderResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putDocumentBlueprintFolderByIdParams,\n putDocumentBlueprintFolderByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDocumentBlueprintFolderSchema = z.object({\n id: putDocumentBlueprintFolderByIdParams.shape.id,\n data: z.object(putDocumentBlueprintFolderByIdBody.shape),\n});\n\ntype UpdateDocumentBlueprintFolderParams = z.infer<typeof updateDocumentBlueprintFolderSchema>;\n\nconst UpdateDocumentBlueprintFolderTool = {\n name: \"update-document-blueprint-folder\",\n description: \"Updates a document blueprint folder\",\n inputSchema: updateDocumentBlueprintFolderSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update', 'folders'],\n handler: (async ({ id, data }: UpdateDocumentBlueprintFolderParams) => {\n return executeVoidApiCall((client) =>\n client.putDocumentBlueprintFolderById(id, data as UpdateFolderResponseModel, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDocumentBlueprintFolderSchema.shape>;\n\nexport default withStandardDecorators(UpdateDocumentBlueprintFolderTool);\n","import { deleteDocumentBlueprintFolderByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentBlueprintFolderTool = {\n name: \"delete-document-blueprint-folder\",\n description: \"Deletes a document blueprint folder by Id\",\n inputSchema: deleteDocumentBlueprintFolderByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentBlueprintFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentBlueprintFolderByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentBlueprintFolderTool);\n","import GetDocumentBlueprintTool from \"./get/get-blueprint.js\";\nimport DeleteDocumentBlueprintTool from \"./delete/delete-blueprint.js\";\nimport UpdateDocumentBlueprintTool from \"./put/update-blueprint.js\";\nimport CreateDocumentBlueprintTool from \"./post/create-blueprint.js\";\nimport GetDocumentBlueprintAncestorsTool from \"./get/get-ancestors.js\";\nimport GetDocumentBlueprintChildrenTool from \"./get/get-children.js\";\nimport GetDocumentBlueprintRootTool from \"./get/get-root.js\";\nimport GetDocumentBlueprintSiblingsTool from \"./get/get-siblings.js\";\nimport GetDocumentBlueprintScaffoldTool from \"./get/get-document-blueprint-scaffold.js\";\nimport CreateDocumentBlueprintFromDocumentTool from \"./post/create-document-blueprint-from-document.js\";\nimport GetDocumentBlueprintByIdArrayTool from \"./get/get-document-blueprint-by-id-array.js\";\nimport MoveDocumentBlueprintTool from \"./put/move-blueprint.js\";\nimport CreateDocumentBlueprintFolderTool from \"./folders/post/create-folder.js\";\nimport GetDocumentBlueprintFolderTool from \"./folders/get/get-folder.js\";\nimport UpdateDocumentBlueprintFolderTool from \"./folders/put/update-folder.js\";\nimport DeleteDocumentBlueprintFolderTool from \"./folders/delete/delete-folder.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const DocumentBlueprintCollection: ToolCollectionExport = {\n metadata: {\n name: 'document-blueprint',\n displayName: 'Document Blueprints',\n description: 'Document blueprint templates and management',\n dependencies: ['document-type', 'document']\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessDocumentTypes(user)) {\n // Blueprint CRUD\n tools.push(GetDocumentBlueprintTool);\n tools.push(CreateDocumentBlueprintTool);\n tools.push(UpdateDocumentBlueprintTool);\n tools.push(DeleteDocumentBlueprintTool);\n tools.push(MoveDocumentBlueprintTool);\n\n // Blueprint queries\n tools.push(GetDocumentBlueprintByIdArrayTool);\n tools.push(GetDocumentBlueprintScaffoldTool);\n tools.push(CreateDocumentBlueprintFromDocumentTool);\n\n // Blueprint tree\n tools.push(GetDocumentBlueprintAncestorsTool);\n tools.push(GetDocumentBlueprintChildrenTool);\n tools.push(GetDocumentBlueprintRootTool);\n tools.push(GetDocumentBlueprintSiblingsTool);\n\n // Folder operations\n tools.push(CreateDocumentBlueprintFolderTool);\n tools.push(GetDocumentBlueprintFolderTool);\n tools.push(UpdateDocumentBlueprintFolderTool);\n tools.push(DeleteDocumentBlueprintFolderTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const DocumentBlueprintTools = (user: CurrentUserResponseModel) => {\n return DocumentBlueprintCollection.tools(user);\n};","export const UmbracoDocumentPermissions = {\n Create: \"Umb.Document.Create\",\n Read: \"Umb.Document.Read\",\n Update: \"Umb.Document.Update\",\n Delete: \"Umb.Document.Delete\",\n Publish: \"Umb.Document.Publish\",\n Unpublish: \"Umb.Document.Unpublish\",\n Move: \"Umb.Document.Move\",\n Sort: \"Umb.Document.Sort\",\n Duplicate: \"Umb.Document.Duplicate\",\n PublicAccess: \"Umb.Document.PublicAccess\",\n CultureAndHostnames: \"Umb.Document.CultureAndHostnames\",\n CreateBlueprint: \"Umb.Document.CreateBlueprint\",\n}","import { deleteDocumentByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentTool = {\n name: \"delete-document\",\n description: \"Deletes a document by Id\",\n inputSchema: deleteDocumentByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Delete),\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentTool);\n","import { deleteDocumentByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteFromRecycleBinTool = {\n name: \"delete-from-recycle-bin\",\n description: \"Deletes a document from the recycle bin by Id.\",\n inputSchema: deleteDocumentByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'recycle-bin'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Delete),\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteFromRecycleBinTool);\n","import { deleteDocumentByIdPublicAccessParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentPublicAccessTool = {\n name: \"delete-document-public-access\",\n description: \"Removes public access settings from a document by Id.\",\n inputSchema: deleteDocumentByIdPublicAccessParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['public-access'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.PublicAccess),\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentByIdPublicAccess(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentByIdPublicAccessParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentPublicAccessTool);\n","import { deleteRecycleBinDocumentByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentRecycleBinItemTool = {\n name: \"delete-document-recycle-bin-item\",\n description: \"Permanently deletes a document from the recycle bin by its id\",\n inputSchema: deleteRecycleBinDocumentByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'recycle-bin'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Delete),\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteRecycleBinDocumentById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteRecycleBinDocumentByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentRecycleBinItemTool);\n","import { getDocumentByIdParams, getDocumentByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentByIdTool = {\n name: \"get-document-by-id\",\n description: `Gets a document by id\n Use this to retrieve existing documents. When creating new documents,\n first get an existing document of similar type, then use the Copy document endpoint.`,\n inputSchema: getDocumentByIdParams.shape,\n outputSchema: getDocumentByIdResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Read),\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentByIdParams.shape, typeof getDocumentByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentByIdTool);\n","import { getDocumentByIdDomainsParams, getDocumentByIdDomainsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentDomainsTool = {\n name: \"get-document-domains\",\n description: \"Gets the domains assigned to a document by Id.\",\n inputSchema: getDocumentByIdDomainsParams.shape,\n outputSchema: getDocumentByIdDomainsResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['domains'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdDomains(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentByIdDomainsParams.shape, typeof getDocumentByIdDomainsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentDomainsTool);\n","import { getDocumentByIdNotificationsParams, getDocumentByIdNotificationsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getDocumentByIdNotificationsResponse,\n});\n\nconst GetDocumentNotificationsTool = {\n name: \"get-document-notifications\",\n description: \"Gets the notifications for a document by Id.\",\n inputSchema: getDocumentByIdNotificationsParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['notifications'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetItemsApiCall((client) =>\n client.getDocumentByIdNotifications(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentByIdNotificationsParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentNotificationsTool);\n","import { getDocumentByIdPublicAccessParams, getDocumentByIdPublicAccessResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentPublicAccessTool = {\n name: \"get-document-public-access\",\n description: \"Gets the public access settings for a document by Id.\",\n inputSchema: getDocumentByIdPublicAccessParams.shape,\n outputSchema: getDocumentByIdPublicAccessResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['public-access'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.PublicAccess),\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdPublicAccess(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentByIdPublicAccessParams.shape, typeof getDocumentByIdPublicAccessResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentPublicAccessTool);\n","import {\n getDocumentByIdAuditLogParams,\n getDocumentByIdAuditLogQueryParams,\n getDocumentByIdAuditLogResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: getDocumentByIdAuditLogParams.shape.id,\n data: z.object(getDocumentByIdAuditLogQueryParams.shape),\n};\n\nconst GetDocumentAuditLogTool = {\n name: \"get-document-audit-log\",\n description: \"Fetches the audit log for a document by Id.\",\n inputSchema: inputSchema,\n outputSchema: getDocumentByIdAuditLogResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['audit'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Read),\n handler: (async (model: { id: string; data: any }) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdAuditLog(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema, typeof getDocumentByIdAuditLogResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentAuditLogTool);\n","import { getDocumentByIdPublishedParams, getDocumentByIdPublishedResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentPublishTool = {\n name: \"get-document-publish\",\n description: \"Gets the published state of a document by Id.\",\n inputSchema: getDocumentByIdPublishedParams.shape,\n outputSchema: getDocumentByIdPublishedResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['publish'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Read),\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdPublished(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentByIdPublishedParams.shape, typeof getDocumentByIdPublishedResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentPublishTool);\n","import { getDocumentConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentConfigurationTool = {\n name: \"get-document-configuration\",\n description: \"Gets the document configuration for the Umbraco instance.\",\n inputSchema: {},\n outputSchema: getDocumentConfigurationResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getDocumentConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getDocumentConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentConfigurationTool);\n","import { getDocumentUrlsQueryParams, getDocumentUrlsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getDocumentUrlsResponse,\n});\n\nconst GetDocumentUrlsTool = {\n name: \"get-document-urls\",\n description: \"Gets the URLs for a document.\",\n inputSchema: getDocumentUrlsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['urls'],\n handler: (async (params: z.infer<typeof getDocumentUrlsQueryParams>) => {\n return executeGetItemsApiCall((client) =>\n client.getDocumentUrls(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentUrlsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentUrlsTool);\n","import { z } from \"zod\";\nimport { propertyValueTemplates, type PropertyValueTemplate } from \"../post/property-value-templates.js\";\nimport {\n type ToolDefinition,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Zod schema for the tool parameters\nconst propertyValueTemplateSchema = z.object({\n editorAlias: z.string().optional().describe(\"The editor alias of the property value template to retrieve (e.g., 'Umbraco.TextBox', 'Umbraco.BlockList', 'Umbraco.MediaPicker3'). If not provided, returns a list of all available property editor aliases.\")\n});\n\ntype PropertyValueTemplateParams = z.infer<typeof propertyValueTemplateSchema>;\n\nconst GetDocumentPropertyValueTemplateTool = {\n name: \"get-document-property-value-template\",\n description: `Retrieves property value templates for creating documents in Umbraco.\n\nIMPORTANT: This tool should be used BEFORE creating documents to understand:\n- What property editors are available\n- The required value structure for each property editor\n- Example values that can be customized for your needs\n\nUsage:\n1. Call without parameters to see all available property editor aliases\n2. Call with a specific editorAlias to get the full value template for that property editor\n3. Use the returned template as a starting point when creating document property values with create-document\n\nThe templates include:\n- editorAlias: The property editor identifier (required in create-document values array)\n- value: Example value structure showing the expected format\n- _notes: Important information about special requirements (IDs, temporary files, etc.)\n\nIMPORTANT: Templates only provide editorAlias and value structure. When using with create-document, you must also provide:\n- culture: The culture code or null\n- segment: The segment or null\n- alias: The property alias from your document type\n\nNote: Some templates (BlockList, BlockGrid, ImageCropper, UploadField) have special requirements indicated in their _notes.`,\n inputSchema: propertyValueTemplateSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async (model: PropertyValueTemplateParams) => {\n try {\n // If no editorAlias provided, return list of available editors\n if (!model.editorAlias) {\n const availableEditors = Object.entries(propertyValueTemplates)\n .map(([name, config]) => {\n const hasNotes = config._notes ? ` (IMPORTANT: ${config._notes.substring(0, 50)}${config._notes.length > 50 ? '...' : ''})` : '';\n return `- ${name} (${config.editorAlias})${hasNotes}`;\n })\n .sort()\n .join('\\n');\n\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Available Property Value Templates:\\n\\n${availableEditors}\\n\\nUse get-document-property-value-template with a specific editorAlias to see the full value structure.`,\n },\n ],\n };\n }\n\n // Look for the specific editor by editorAlias (case-insensitive)\n const editorKey = Object.keys(propertyValueTemplates).find(\n key => propertyValueTemplates[key].editorAlias.toLowerCase() === model.editorAlias!.toLowerCase()\n );\n\n if (!editorKey) {\n // Also try matching by template name\n const editorKeyByName = Object.keys(propertyValueTemplates).find(\n key => key.toLowerCase() === model.editorAlias!.toLowerCase()\n );\n\n if (!editorKeyByName) {\n const availableAliases = Object.values(propertyValueTemplates)\n .map(t => t.editorAlias)\n .sort()\n .join(', ');\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Property value template with editorAlias '${model.editorAlias}' not found.\\n\\nAvailable editor aliases: ${availableAliases}\\n\\nNote: Matching is case-insensitive. You can also use the template name (e.g., 'Textbox' instead of 'Umbraco.TextBox').`,\n },\n ],\n isError: true,\n };\n }\n\n // Use the name match\n const template = propertyValueTemplates[editorKeyByName];\n return buildTemplateResponse(editorKeyByName, template);\n }\n\n const template = propertyValueTemplates[editorKey];\n return buildTemplateResponse(editorKey, template);\n\n } catch (error) {\n console.error('Error reading property value templates:', error);\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Error reading property value templates: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n }),\n} satisfies ToolDefinition<typeof propertyValueTemplateSchema.shape>;\n\nfunction buildTemplateResponse(editorKey: string, template: PropertyValueTemplate) {\n let response = `Property Value Template: ${editorKey}\\n\\n`;\n\n if (template._notes) {\n response += `IMPORTANT NOTES:\\n${template._notes}\\n\\n`;\n }\n\n response += `Template:\\n${JSON.stringify({ editorAlias: template.editorAlias, value: template.value }, null, 2)}\\n\\n`;\n\n response += `Usage with create-document:\\n`;\n response += `When creating a document with this property, include in the values array:\\n`;\n response += `{\\n`;\n response += ` \"editorAlias\": \"${template.editorAlias}\", // From template\\n`;\n response += ` \"culture\": null, // Document-specific: culture code or null\\n`;\n response += ` \"segment\": null, // Document-specific: segment or null\\n`;\n response += ` \"alias\": \"yourPropertyAlias\", // Document-specific: property alias from document type\\n`;\n response += ` \"value\": <customize from template> // From template - customize as needed\\n`;\n response += `}\\n\\n`;\n response += `The template provides editorAlias and value structure. You must add culture, segment, and alias based on your document requirements.`;\n\n return {\n content: [\n {\n type: \"text\" as const,\n text: response,\n },\n ],\n };\n}\n\nexport default withStandardDecorators(GetDocumentPropertyValueTemplateTool);\n","export interface PropertyValueTemplate {\n editorAlias: string;\n value: any;\n _notes?: string;\n}\n\nexport const propertyValueTemplates: Record<string, PropertyValueTemplate> = {\n \"BlockList\": {\n editorAlias: \"Umbraco.BlockList\",\n value: {\n layout: {\n \"Umbraco.BlockList\": [\n {\n contentKey: \"7a61b31c-792f-4f6b-a665-960a90b49853\"\n }\n ]\n },\n contentData: [\n {\n key: \"7a61b31c-792f-4f6b-a665-960a90b49853\",\n contentTypeKey: \"3a7ec32d-7fd4-49f8-aae6-d9259d5bfee1\",\n values: [\n {\n editorAlias: \"Umbraco.MediaPicker3\",\n culture: null,\n segment: null,\n alias: \"recipeImage\",\n value: [\n {\n key: \"9bac772d-cd63-4bb6-b2db-1449042129a7\",\n mediaKey: \"3c6c415c-35a0-4629-891e-683506250c31\",\n mediaTypeAlias: \"\",\n crops: [],\n focalPoint: null\n }\n ]\n }\n ]\n }\n ],\n settingsData: [],\n expose: [\n {\n contentKey: \"7a61b31c-792f-4f6b-a665-960a90b49853\",\n culture: null,\n segment: null\n }\n ]\n },\n _notes: \"Complex structure with layout, contentData, settingsData, and expose arrays. contentData.values contains nested property values. All keys must be unique UUIDs.\"\n },\n \"BlockGrid\": {\n editorAlias: \"Umbraco.BlockGrid\",\n value: {\n layout: {\n \"Umbraco.BlockGrid\": [\n {\n contentKey: \"d8fa3d28-79aa-4c60-8e73-5819ed313ea2\",\n columnSpan: 12,\n rowSpan: 1,\n areas: [\n {\n key: \"43743e78-0f2b-465e-a3ce-f381c90b68e0\",\n items: [\n {\n contentKey: \"3145f922-7ec1-41e0-99a5-d9677e558163\",\n settingsKey: \"6248d134-4657-4605-b0d5-ae804858bb88\",\n columnSpan: 6,\n rowSpan: 1\n }\n ]\n }\n ]\n }\n ]\n },\n contentData: [\n {\n key: \"d8fa3d28-79aa-4c60-8e73-5819ed313ea2\",\n contentTypeKey: \"6960aaca-0b26-4fae-9cee-db73405d7a3e\",\n values: [\n {\n editorAlias: \"Umbraco.TextBox\",\n culture: null,\n segment: null,\n alias: \"title\",\n value: \"Title\"\n },\n {\n editorAlias: \"Umbraco.RichText\",\n culture: null,\n segment: null,\n alias: \"bodyText\",\n value: {\n markup: \"<p>Content here</p>\",\n blocks: {\n layout: {},\n contentData: [],\n settingsData: [],\n expose: []\n }\n }\n },\n {\n editorAlias: \"Umbraco.MediaPicker3\",\n culture: null,\n segment: null,\n alias: \"image\",\n value: [\n {\n key: \"40edd153-31eb-4c61-82fc-1ec2e695197b\",\n mediaKey: \"3c6c415c-35a0-4629-891e-683506250c31\",\n mediaTypeAlias: \"\",\n crops: [],\n focalPoint: null\n }\n ]\n }\n ]\n },\n {\n key: \"3145f922-7ec1-41e0-99a5-d9677e558163\",\n contentTypeKey: \"c80027e5-7e87-49c1-9b4f-1b9d3fbc2e90\",\n values: [\n {\n editorAlias: \"Umbraco.TextBox\",\n culture: null,\n segment: null,\n alias: \"title\",\n value: \"Nested Title\"\n },\n {\n editorAlias: \"Umbraco.RichText\",\n culture: null,\n segment: null,\n alias: \"content\",\n value: {\n markup: \"<p>Nested content</p>\",\n blocks: {\n layout: {},\n contentData: [],\n settingsData: [],\n expose: []\n }\n }\n }\n ]\n }\n ],\n settingsData: [\n {\n key: \"6248d134-4657-4605-b0d5-ae804858bb88\",\n contentTypeKey: \"06200e23-1c29-4298-9582-48b2eaa81fbf\",\n values: []\n }\n ],\n expose: [\n {\n contentKey: \"d8fa3d28-79aa-4c60-8e73-5819ed313ea2\",\n culture: null,\n segment: null\n },\n {\n contentKey: \"3145f922-7ec1-41e0-99a5-d9677e558163\",\n culture: null,\n segment: null\n }\n ]\n },\n _notes: \"Complex hierarchical structure with areas and nested items. Layout defines structure with columnSpan/rowSpan. contentData stores actual content. All keys must be unique UUIDs.\"\n },\n \"Decimal\": {\n editorAlias: \"Umbraco.Decimal\",\n value: 1.2\n },\n \"EmailAddress\": {\n editorAlias: \"Umbraco.EmailAddress\",\n value: \"admin@admin.co.uk\"\n },\n \"Integer\": {\n editorAlias: \"Umbraco.Integer\",\n value: 1\n },\n \"Tags\": {\n editorAlias: \"Umbraco.Tags\",\n value: [\n \"Tag 1\",\n \"Tag 2\"\n ]\n },\n \"ColorPicker\": {\n editorAlias: \"Umbraco.ColorPicker\",\n value: {\n label: \"Green\",\n value: \"#00FF00\"\n }\n },\n \"TrueFalse\": {\n editorAlias: \"Umbraco.TrueFalse\",\n value: true\n },\n \"CheckBoxList\": {\n editorAlias: \"Umbraco.CheckBoxList\",\n value: [\n \"item 1\",\n \"items 2\"\n ]\n },\n \"Dropdown\": {\n editorAlias: \"Umbraco.DropDown.Flexible\",\n value: [\n \"Item 3\"\n ]\n },\n \"MultipleTextstring\": {\n editorAlias: \"Umbraco.MultipleTextstring\",\n value: [\n \"Item 1\",\n \"item 2\"\n ]\n },\n \"RadioButtonList\": {\n editorAlias: \"Umbraco.RadioButtonList\",\n value: \"item 1\"\n },\n \"ImageCropper\": {\n editorAlias: \"Umbraco.ImageCropper\",\n value: {\n temporaryFileId: \"b45eb1dd-2959-4b0b-a675-761b6a19824c\",\n src: \"\",\n crops: [],\n focalPoint: {\n left: 0.5,\n top: 0.5\n }\n },\n _notes: \"IMPORTANT: Requires a temporary file uploaded first. Use the temporaryFileId from the upload response.\"\n },\n \"MediaPicker3\": {\n editorAlias: \"Umbraco.MediaPicker3\",\n value: [\n {\n key: \"4c82123c-cd3e-4d92-84b8-9c79ad5a5319\",\n mediaKey: \"3c6c415c-35a0-4629-891e-683506250c31\",\n mediaTypeAlias: \"\",\n crops: [],\n focalPoint: null\n }\n ],\n _notes: \"The key is generated by you. The mediaKey relates to an existing media item id.\"\n },\n \"UploadField\": {\n editorAlias: \"Umbraco.UploadField\",\n value: {\n src: \"blob:http://localhost:56472/0884388b-41a3-46c2-a224-9b9ff02de24a\",\n temporaryFileId: \"fc76f270-83c2-4daa-ba8b-fde4554dda2a\"\n },\n _notes: \"IMPORTANT: Requires a temporary file uploaded first. Use the temporaryFileId from the upload response.\"\n },\n \"Slider\": {\n editorAlias: \"Umbraco.Slider\",\n value: {\n from: 31,\n to: 31\n }\n },\n \"MemberGroupPicker\": {\n editorAlias: \"Umbraco.MemberGroupPicker\",\n value: \"9815503d-a5a9-487f-aee3-827ca43fdb2c\",\n _notes: \"The value relates to an existing member group id.\"\n },\n \"MemberPicker\": {\n editorAlias: \"Umbraco.MemberPicker\",\n value: \"f8abd31e-c78d-46ea-bb6b-c00cb9107bfb\",\n _notes: \"The value relates to an existing member id.\"\n },\n \"UserPicker\": {\n editorAlias: \"Umbraco.UserPicker\",\n value: \"1e70f841-c261-413b-abb2-2d68cdb96094\",\n _notes: \"The value relates to an existing user id.\"\n },\n \"MultiNodeTreePicker\": {\n editorAlias: \"Umbraco.MultiNodeTreePicker\",\n value: [\n {\n type: \"document\",\n unique: \"dcf18a51-6919-4cf8-89d1-36b94ce4d963\"\n }\n ],\n _notes: \"The unique property relates to an existing document, media, or member id. Type can be 'document', 'media', or 'member'.\"\n },\n \"DateTime\": {\n editorAlias: \"Umbraco.DateTime\",\n value: \"2025-05-23 00:00:00\"\n },\n \"ContentPicker\": {\n editorAlias: \"Umbraco.ContentPicker\",\n value: \"dcf18a51-6919-4cf8-89d1-36b94ce4d963\",\n _notes: \"The value relates to an existing document id.\"\n },\n \"ColorPickerEyeDropper\": {\n editorAlias: \"Umbraco.ColorPicker.EyeDropper\",\n value: \"#982020\"\n },\n \"MultiUrlPicker\": {\n editorAlias: \"Umbraco.MultiUrlPicker\",\n value: [\n {\n icon: \"icon-home color-blue\",\n name: \"Home\",\n type: \"document\",\n unique: \"dcf18a51-6919-4cf8-89d1-36b94ce4d963\",\n url: \"/\"\n },\n {\n icon: \"icon-picture\",\n name: \"Chairs lamps\",\n type: \"media\",\n unique: \"3c6c415c-35a0-4629-891e-683506250c31\",\n url: \"http://localhost:56472/media/0ofdvcwj/chairs-lamps.jpg\"\n },\n {\n name: \"Title\",\n target: \"_blank\",\n type: \"external\",\n url: \"www.google.com\"\n }\n ],\n _notes: \"Can contain document, media, or external link entries. For document/media, unique is the content id.\"\n },\n \"MarkdownEditor\": {\n editorAlias: \"Umbraco.MarkdownEditor\",\n value: \"Markdown\"\n },\n \"CodeEditor\": {\n editorAlias: \"Umbraco.CodeEditor\",\n value: \"Code\"\n },\n \"Textbox\": {\n editorAlias: \"Umbraco.TextBox\",\n value: \"some string\"\n },\n \"TextArea\": {\n editorAlias: \"Umbraco.TextArea\",\n value: \"some string\"\n },\n \"RichTextEditor\": {\n editorAlias: \"Umbraco.RichText\",\n value: {\n markup: \"<p>some string</p>\",\n blocks: {\n layout: {},\n contentData: [],\n settingsData: [],\n expose: []\n }\n },\n _notes: \"The blocks property has the same structure as BlockList. Can include nested block content within the rich text.\"\n }\n};\n","import { getItemDocumentSearchQueryParams, getItemDocumentSearchResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst SearchDocumentTool = {\n name: \"search-document\",\n description: \"Searches for documents by query, skip, and take.\",\n inputSchema: getItemDocumentSearchQueryParams.shape,\n outputSchema: getItemDocumentSearchResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['search'],\n handler: (async (params: z.infer<typeof getItemDocumentSearchQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getItemDocumentSearch(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDocumentSearchQueryParams.shape, typeof getItemDocumentSearchResponse.shape>;\n\nexport default withStandardDecorators(SearchDocumentTool);\n","import { getCollectionDocumentByIdParams, getCollectionDocumentByIdQueryParams, getCollectionDocumentByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...getCollectionDocumentByIdParams.shape,\n ...getCollectionDocumentByIdQueryParams.shape,\n});\n\nconst GetCollectionDocumentByIdTool = {\n name: \"get-collection-document-by-id\",\n description: `Get a collection of document items\n Use this to retrieve a filtered and paginated collection of document items based on various criteria like data type, ordering, and filtering.`,\n inputSchema: inputSchema.shape,\n outputSchema: getCollectionDocumentByIdResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['search'],\n handler: (async ({ id, dataTypeId, orderBy, orderDirection, filter, skip, take }: z.infer<typeof inputSchema>) => {\n return executeGetApiCall((client) =>\n client.getCollectionDocumentById(id, {\n dataTypeId,\n orderBy,\n orderDirection,\n filter,\n skip,\n take\n }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getCollectionDocumentByIdResponse.shape>;\n\nexport default withStandardDecorators(GetCollectionDocumentByIdTool);","import { getItemDocumentQueryParams, getItemDocumentResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemDocumentResponse,\n});\n\nconst GetItemDocumentTool = {\n name: \"get-item-document\",\n description: \"Gets document items by their ids\",\n inputSchema: getItemDocumentQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: z.infer<typeof getItemDocumentQueryParams>) => {\n return executeGetItemsApiCall((client) =>\n client.getItemDocument(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDocumentQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetItemDocumentTool);\n","import { getDocumentAreReferencedQueryParams, getDocumentAreReferencedResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentAreReferencedTool = {\n name: \"get-document-are-referenced\",\n description: `Check if document items are referenced\n Use this to verify if specific document items are being referenced by other content before deletion or modification.`,\n inputSchema: getDocumentAreReferencedQueryParams.shape,\n outputSchema: getDocumentAreReferencedResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['references'],\n handler: (async ({ id, skip, take }: z.infer<typeof getDocumentAreReferencedQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getDocumentAreReferenced({ id, skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentAreReferencedQueryParams.shape, typeof getDocumentAreReferencedResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentAreReferencedTool);","import { getDocumentByIdReferencedByParams, getDocumentByIdReferencedByQueryParams, getDocumentByIdReferencedByResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...getDocumentByIdReferencedByParams.shape,\n ...getDocumentByIdReferencedByQueryParams.shape,\n});\n\nconst GetDocumentByIdReferencedByTool = {\n name: \"get-document-by-id-referenced-by\",\n description: `Get items that reference a specific document item\n Use this to find all content, documents, or other items that are currently referencing a specific document item.`,\n inputSchema: inputSchema.shape,\n outputSchema: getDocumentByIdReferencedByResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['references'],\n handler: (async ({ id, skip, take }: z.infer<typeof inputSchema>) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdReferencedBy(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getDocumentByIdReferencedByResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentByIdReferencedByTool);","import { getDocumentByIdReferencedDescendantsParams, getDocumentByIdReferencedDescendantsQueryParams, getDocumentByIdReferencedDescendantsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...getDocumentByIdReferencedDescendantsParams.shape,\n ...getDocumentByIdReferencedDescendantsQueryParams.shape,\n});\n\nconst GetDocumentByIdReferencedDescendantsTool = {\n name: \"get-document-by-id-referenced-descendants\",\n description: `Get descendant references for a document item\n Use this to find all descendant references (child items) that are being referenced for a specific document item.\n\n Useful for:\n • Impact analysis: Before deleting a document folder, see what content would be affected\n • Dependency tracking: Find all content using documents from a specific folder hierarchy\n • Content auditing: Identify which descendant document items are actually being used`,\n inputSchema: inputSchema.shape,\n outputSchema: getDocumentByIdReferencedDescendantsResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['references'],\n handler: (async ({ id, skip, take }: z.infer<typeof inputSchema>) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdReferencedDescendants(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getDocumentByIdReferencedDescendantsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentByIdReferencedDescendantsTool);","import { getDocumentByIdAvailableSegmentOptionsParams, getDocumentByIdAvailableSegmentOptionsQueryParams, getDocumentByIdAvailableSegmentOptionsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...getDocumentByIdAvailableSegmentOptionsParams.shape,\n ...getDocumentByIdAvailableSegmentOptionsQueryParams.shape,\n});\n\nconst GetDocumentAvailableSegmentOptionsTool = {\n name: \"get-document-available-segment-options\",\n description: `Gets available segment options for a document by its id\n\n Use this to retrieve the available segment options (content variations) for a document.\n\n Useful for:\n • Understanding what content variations are available for a document\n • Determining which segments can be used when creating or editing document content\n • Viewing segment names, aliases, and associated cultures`,\n inputSchema: inputSchema.shape,\n outputSchema: getDocumentByIdAvailableSegmentOptionsResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async ({ id, skip, take }: z.infer<typeof inputSchema>) => {\n return executeGetApiCall((client) =>\n client.getDocumentByIdAvailableSegmentOptions(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getDocumentByIdAvailableSegmentOptionsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentAvailableSegmentOptionsTool);\n","import { getRecycleBinDocumentByIdOriginalParentParams, getRecycleBinDocumentByIdOriginalParentResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinDocumentOriginalParentTool = {\n name: \"get-recycle-bin-document-original-parent\",\n description: `Get the original parent location of a document item in the recycle bin\n Returns information about where the document item was located before deletion.`,\n inputSchema: getRecycleBinDocumentByIdOriginalParentParams.shape,\n outputSchema: getRecycleBinDocumentByIdOriginalParentResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read', 'recycle-bin'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinDocumentByIdOriginalParent(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinDocumentByIdOriginalParentParams.shape, typeof getRecycleBinDocumentByIdOriginalParentResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinDocumentOriginalParentTool);","import { getRecycleBinDocumentReferencedByQueryParams, getRecycleBinDocumentReferencedByResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinDocumentReferencedByTool = {\n name: \"get-recycle-bin-document-referenced-by\",\n description: `Get references to deleted document items in the recycle bin\n Use this to find content that still references deleted document items before permanently deleting them.`,\n inputSchema: getRecycleBinDocumentReferencedByQueryParams.shape,\n outputSchema: getRecycleBinDocumentReferencedByResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['references', 'recycle-bin'],\n handler: (async ({ skip, take }: z.infer<typeof getRecycleBinDocumentReferencedByQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinDocumentReferencedBy({ skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinDocumentReferencedByQueryParams.shape, typeof getRecycleBinDocumentReferencedByResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinDocumentReferencedByTool);","import {\n postDocumentByIdPublicAccessParams,\n postDocumentByIdPublicAccessBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: postDocumentByIdPublicAccessParams.shape.id,\n data: z.object(postDocumentByIdPublicAccessBody.shape),\n};\n\nconst PostDocumentPublicAccessTool = {\n name: \"post-document-public-access\",\n description: \"Adds public access settings to a document by Id.\",\n inputSchema: inputSchema,\n slices: ['public-access'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.PublicAccess),\n handler: (async (model: { id: string; data: any }) => {\n return executeVoidApiCall((client) =>\n client.postDocumentByIdPublicAccess(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(PostDocumentPublicAccessTool);\n","import { postDocumentValidateBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst ValidateDocumentTool = {\n name: \"validate-document\",\n description: \"Validates a create document model, using the Umbraco API.\",\n inputSchema: postDocumentValidateBody.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['validate'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Create),\n handler: (async (model: z.infer<typeof postDocumentValidateBody>) => {\n return executeVoidApiCall((client) =>\n client.postDocumentValidate(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postDocumentValidateBody.shape>;\n\nexport default withStandardDecorators(ValidateDocumentTool);\n","import { z } from \"zod\";\nimport { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CopyDocumentRequestModel, CurrentUserResponseModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst copyDocumentSchema = z.object({\n parentId: z.string().uuid(\"Must be a valid document UUID of the parent node\").optional(),\n idToCopy: z.string().uuid(\"Must be a valid document UUID that belongs to the parent document's children\"),\n relateToOriginal: z.boolean().describe(\"Relate the copy to the original document. This is usually set to false unless specified.\"),\n includeDescendants: z.boolean().describe(\"If true, all descendant documents (children, grandchildren, etc.) will also be copied. This is usually set to false unless specified.\"),\n});\n\nexport const copyDocumentOutputSchema = z.object({\n id: z.string().uuid()\n});\n\nconst CopyDocumentTool = {\n name: \"copy-document\",\n description: `Copy a document to a new location. Returns the new document's ID on success.\n This is also the recommended way to create new documents.\n Copy an existing document to preserve the complex JSON structure, then modify specific fields as needed.\n\n WORKFLOW NOTES:\n - The copy is created as a draft with the naming pattern \"Original Name (N)\" where N is a number\n - Use the returned ID for subsequent update and publish operations\n\n Example workflows:\n 1. Copy only: copy-document (creates draft copy, returns new ID)\n 2. Copy and update: copy-document → update-document → publish-document`,\n inputSchema: copyDocumentSchema.shape,\n outputSchema: copyDocumentOutputSchema.shape,\n slices: ['copy'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Duplicate),\n handler: (async (model: z.infer<typeof copyDocumentSchema>) => {\n const client = UmbracoManagementClient.getClient();\n\n const payload: CopyDocumentRequestModel = {\n target: model.parentId ? {\n id: model.parentId,\n } : undefined,\n relateToOriginal: model.relateToOriginal,\n includeDescendants: model.includeDescendants,\n };\n\n const response = await client.postDocumentByIdCopy(model.idToCopy, payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract new ID from Location header: /umbraco/management/api/v1/document/{guid}\n const location = response.headers?.location || '';\n const newId = location.split('/').pop() || '';\n\n const output = { id: newId };\n return createToolResult(output);\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof copyDocumentSchema.shape, typeof copyDocumentOutputSchema.shape>;\n\nexport default withStandardDecorators(CopyDocumentTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateDocumentRequestModel, CurrentUserResponseModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { z } from \"zod\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst createDocumentSchema = z.object({\n documentTypeId: z.string().uuid(\"Must be a valid document type type UUID\"),\n parentId: z.string().uuid(\"Must be a valid document UUID\").optional(),\n name: z.string(),\n cultures: z.array(z.string()).optional().describe(\"Array of culture codes. If not provided or empty array, will create single variant with null culture.\"),\n values: z\n .array(\n z.object({\n editorAlias: z.string(),\n culture: z.string().nullable(),\n segment: z.string().nullable(),\n alias: z.string(),\n value: z.any(),\n })\n )\n .default([]),\n});\n\nconst CreateDocumentTool = {\n name: \"create-document\",\n description: `Creates a document with support for multiple cultures.\n\n Always follow these requirements when creating documents exactly, do not deviate in any way.\n\n ## COPY-FIRST APPROACH (RECOMMENDED)\n\n **FIRST: Try to copy an existing document**\n 1. Only use this if copy-document and search-document tools are available\n 2. Use search-document to find documents with the same document type\n 3. If similar documents exist AND copy-document tool is available:\n - Use copy-document to duplicate the existing structure\n - Use search-document to find the new document (copy returns empty string, not the new ID)\n - Update with update-document and publish with publish-document as needed\n\n **SECOND: Only create from scratch when:**\n - No similar documents exist in Umbraco\n - Copy-document tool doesn't exist\n - You need to create from scratch with unique structure\n\n Benefits: Preserves structure, inherits properties, maintains consistency with existing content.\n\n ## Introduction\n\n This tool creates documents with multi-culture support:\n - If cultures parameter is provided, a variant will be created for each culture code\n - If cultures parameter is not provided or is an empty array, will create a single variant with null culture (original behavior)\n\n ## Critical Requirements\n\n ### Document Type Analysis (When Creating from Scratch)\n 1. Use get-document-type-by-id to understand the document type structure and required properties\n 2. Ensure all required properties are included in the values array\n\n ### Document Types and Data Types\n 1. BEFORE creating any new document type, ALWAYS search for existing ones using get-all-document-types\n 2. BEFORE creating any new data type, ALWAYS search for existing ones using get-all-data-types\n 3. ONLY create a new document type or data type if NO suitable existing ones are found\n 4. If similar types exist, inform the user and suggest using the existing types instead\n 5. Creation of new types should be a last resort when nothing suitable exists\n\n ### Parent ID Handling\n For document types with allowedAsRoot=true, DO NOT include the parentId parameter at all in the function call.\n When adding a parent, first find the parent using get-document-root or get-document-children and then use the id of the parent in the parentId parameter. Alway makes sure that the id is valid.\n\n ### Values Matching\n - Values must match the aliases of the document type structure\n - Block lists, Block Grids and Rich Text Blocks items and settings must match the defined blocks document type structures\n\n ### Unique Keys\n All generated keys must be unique and randomly generated.\n\n ## Property Editor Values Reference\n\n When creating documents, you need to provide property values that match the property editors defined in the document type.\n\n IMPORTANT: Use the get-document-property-value-template tool to:\n - View all available property editors (call without parameters)\n - Get the correct value structure for a specific property editor (call with editorAlias parameter)\n - Each template provides the editorAlias and value format\n - You must add culture, segment, and alias based on your document's specific requirements\n\n The values parameter is an array of property value objects following this structure:\n {\n \"editorAlias\": \"Umbraco.TextBox\", // From template - the property editor type\n \"culture\": null, // Document-specific - culture code or null\n \"segment\": null, // Document-specific - segment or null\n \"alias\": \"propertyAlias\", // Document-specific - property alias from document type\n \"value\": \"your value here\" // From template - customize the value structure\n }\n\n Note: Some property editors (BlockList, BlockGrid, ImageCropper, UploadField) have special requirements - check their templates for important notes.\n `,\n inputSchema: createDocumentSchema.shape,\n outputSchema: createOutputSchema.shape,\n slices: ['create'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Create),\n handler: (async (model: z.infer<typeof createDocumentSchema>) => {\n const client = UmbracoManagementClient.getClient();\n\n const documentId = uuidv4();\n\n // Determine cultures to use\n let culturesToUse: (string | null)[] = [];\n \n if (model.cultures === undefined || model.cultures.length === 0) {\n // If cultures not provided or empty array, use original behavior (null culture)\n culturesToUse = [null];\n } else {\n // Use provided cultures\n culturesToUse = model.cultures;\n }\n\n // Create variants for each culture\n const variants = culturesToUse.map(culture => ({\n culture,\n name: model.name,\n segment: null,\n }));\n\n const payload: CreateDocumentRequestModel = {\n id: documentId,\n documentType: {\n id: model.documentTypeId,\n },\n parent: model.parentId\n ? {\n id: model.parentId,\n }\n : undefined,\n template: null,\n values: model.values,\n variants,\n };\n\n // Get full response to check status\n const response = await client.postDocument(payload, CAPTURE_RAW_HTTP_RESPONSE) as unknown as HttpResponse<ProblemDetails | void>;\n\n // Check if the document was created successfully (201 Created)\n if (response.status === 201) {\n return createToolResult({\n message: \"Document created successfully\",\n id: documentId\n });\n } else {\n // Document creation failed\n return createToolResultError(response.data || {\n status: response.status,\n detail: response.statusText\n });\n }\n }),\n} satisfies ToolDefinition<typeof createDocumentSchema.shape, typeof createOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateDocumentTool);\n","import {\n putDocumentByIdPublicAccessParams,\n putDocumentByIdPublicAccessBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putDocumentByIdPublicAccessParams.shape.id,\n data: z.object(putDocumentByIdPublicAccessBody.shape),\n};\n\nconst PutDocumentPublicAccessTool = {\n name: \"put-document-public-access\",\n description: \"Updates public access settings for a document by Id.\",\n inputSchema: inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['public-access'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.PublicAccess),\n handler: (async (model: { id: string; data: any }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentByIdPublicAccess(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(PutDocumentPublicAccessTool);\n","import {\n putDocumentByIdDomainsParams,\n putDocumentByIdDomainsBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putDocumentByIdDomainsParams.shape.id,\n data: z.object(putDocumentByIdDomainsBody.shape),\n};\n\nconst PutDocumentDomainsTool = {\n name: \"put-document-domains\",\n description: `Updates the domains assigned to a document by Id. Default value of the defaultIsoCode is null.\n Domain isoCode in the domains array should be in the format of 'en-US' amd be a valid domain name from the Umbraco instance.`,\n inputSchema: inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['domains'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.CultureAndHostnames),\n handler: (async (model: { id: string; data: any }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentByIdDomains(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(PutDocumentDomainsTool);\n","import {\n putDocumentByIdNotificationsParams,\n putDocumentByIdNotificationsBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putDocumentByIdNotificationsParams.shape.id,\n data: z.object(putDocumentByIdNotificationsBody.shape),\n};\n\nconst PutDocumentNotificationsTool = {\n name: \"put-document-notifications\",\n description: \"Updates the notifications for a document by Id.\",\n inputSchema: inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['notifications'],\n handler: (async (model: { id: string; data: any }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentByIdNotifications(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(PutDocumentNotificationsTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { putDocumentByIdPublishWithDescendantsBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: z.string().uuid(),\n data: z.object(putDocumentByIdPublishWithDescendantsBody.shape),\n};\n\nconst PublishDocumentWithDescendantsTool = {\n name: \"publish-document-with-descendants\",\n description: `Publishes a document and its descendants by Id. This is an asynchronous operation that may take time for large document trees.\n The tool will poll for completion and return the final result when finished.`,\n inputSchema: inputSchema,\n annotations: {},\n slices: ['publish'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Publish),\n handler: (async (model: { id: string; data: any }) => {\n const client = UmbracoManagementClient.getClient();\n\n // Start the async publish operation\n const initialResponse = await client.putDocumentByIdPublishWithDescendants(\n model.id,\n model.data\n );\n\n // If already complete, return immediately\n if (initialResponse.isComplete) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"\\\"\\\"\",\n },\n ],\n };\n }\n\n // Poll for completion with timeout (max 1 minute)\n const maxAttempts = 60; // 1 minutes with 1-second intervals\n const pollInterval = 1000; // 1 seconds\n let attempts = 0;\n\n while (attempts < maxAttempts) {\n attempts++;\n\n // Wait before polling\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n\n try {\n const statusResponse = await client.getDocumentByIdPublishWithDescendantsResultByTaskId(\n model.id,\n initialResponse.taskId\n );\n\n if (statusResponse.isComplete) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"\\\"\\\"\",\n },\n ],\n };\n }\n } catch (error) {\n // If polling fails, return the error but include the taskId for manual checking\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify({\n status: \"error\",\n taskId: initialResponse.taskId,\n message: `Failed to poll status: ${error}. You can manually check status using taskId.`\n }),\n },\n ],\n };\n }\n }\n\n // Timeout reached\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify({\n status: \"timeout\",\n taskId: initialResponse.taskId,\n message: \"Publish operation timed out after 1 minute. The operation may still be running. Use the taskId to check status manually.\"\n }),\n },\n ],\n };\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(PublishDocumentWithDescendantsTool);\n","import { putDocumentByIdUnpublishBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: z.string().uuid(),\n data: z.object(putDocumentByIdUnpublishBody.shape),\n};\n\nconst UnpublishDocumentTool = {\n name: \"unpublish-document\",\n description: \"Unpublishes a document by Id.\",\n inputSchema: inputSchema,\n annotations: {},\n slices: ['publish'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Unpublish),\n handler: (async (model: {\n id: string;\n data: z.infer<typeof putDocumentByIdUnpublishBody>;\n }) => {\n if (!model.data.cultures) model.data.cultures = null;\n return executeVoidApiCall((client) =>\n client.putDocumentByIdUnpublish(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(UnpublishDocumentTool);\n","import { putDocumentSortBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst SortDocumentTool = {\n name: \"sort-document\",\n description: \"Sorts the order of documents under a parent.\",\n inputSchema: putDocumentSortBody.shape,\n annotations: {},\n slices: ['sort'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Sort),\n handler: (async (model: z.infer<typeof putDocumentSortBody>) => {\n return executeVoidApiCall((client) =>\n client.putDocumentSort(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putDocumentSortBody.shape>;\n\nexport default withStandardDecorators(SortDocumentTool);\n","import { putDocumentByIdMoveBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: z.string().uuid(),\n data: z.object(putDocumentByIdMoveBody.shape),\n};\n\nconst MoveDocumentTool = {\n name: \"move-document\",\n description: \"Move a document to a new location\",\n inputSchema: inputSchema,\n annotations: {},\n slices: ['move'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Move),\n handler: (async (model: { id: string; data: any }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentByIdMove(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(MoveDocumentTool);\n","import { putDocumentByIdPublishBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: z.string().uuid(),\n data: z.object(putDocumentByIdPublishBody.shape),\n};\n\nconst PublishDocumentTool = {\n name: \"publish-document\",\n description: `Publishes a document by Id. IMPORTANT: If workflow approval is required, use the initiate-workflow-action function instead.\n This function bypasses approval workflows and publishes directly to the live site.\n When the culture is not provided, the default culture is null.\n When the schedule is not provided, the default schedule is null.`,\n inputSchema: inputSchema,\n annotations: {},\n slices: ['publish'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Publish),\n handler: (async (model: { id: string; data: any }) => {\n // If no publish schedules are provided, set the default to publish to all cultures\n if (!model.data.publishSchedules) {\n model.data.publishSchedules = [{ culture: null }];\n }\n\n return executeVoidApiCall((client) =>\n client.putDocumentByIdPublish(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(PublishDocumentTool);\n","import { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst EmptyRecycleBinTool = {\n name: \"empty-recycle-bin\",\n description: \"Empties the document recycle bin.\",\n inputSchema: {},\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'recycle-bin'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Delete),\n handler: (async () => {\n return executeVoidApiCall((client) =>\n client.deleteRecycleBinDocument(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<Record<string, never>>;\n\nexport default withStandardDecorators(EmptyRecycleBinTool);\n","import { putRecycleBinDocumentByIdRestoreParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst RestoreFromRecycleBinTool = {\n name: \"restore-document-from-recycle-bin\",\n description: \"Restores a document from the recycle bin.\",\n inputSchema: putRecycleBinDocumentByIdRestoreParams.shape,\n annotations: {},\n slices: ['move','recycle-bin'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Delete),\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.putRecycleBinDocumentByIdRestore(id, { target: null }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putRecycleBinDocumentByIdRestoreParams.shape>;\n\nexport default withStandardDecorators(RestoreFromRecycleBinTool);\n","import { putDocumentByIdMoveToRecycleBinParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst MoveDocumentToRecycleBinTool = {\n name: \"move-document-to-recycle-bin\",\n description: \"Move a document to the recycle bin\",\n inputSchema: putDocumentByIdMoveToRecycleBinParams.shape,\n annotations: {},\n slices: ['move', 'recycle-bin'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Delete),\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentByIdMoveToRecycleBin(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putDocumentByIdMoveToRecycleBinParams.shape>;\n\nexport default withStandardDecorators(MoveDocumentToRecycleBinTool);\n","import {\n putDocumentByIdParams,\n putDocumentByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putDocumentByIdParams.shape.id,\n data: z.object(putDocumentByIdBody.shape),\n};\n\nconst UpdateDocumentTool = {\n name: \"update-document\",\n description: `Updates a document by Id. USE AS LAST RESORT ONLY.\n\n IMPORTANT: Prefer these specialized tools instead:\n - update-document-properties: For updating individual property values (simpler, safer)\n - update-block-property: For updating properties within BlockList/BlockGrid/RichText blocks\n\n Only use this tool when you need to update document-level metadata (template, variants)\n or when the specialized tools cannot handle your specific use case.\n\n If you must use this tool:\n - Always read the current document value first\n - Only update the required values\n - Don't miss any properties from the original document`,\n inputSchema: inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Update),\n handler: (async (model: { id: string; data: any }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(UpdateDocumentTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport type {\n DocumentValueModel,\n DocumentVariantRequestModel,\n UpdateDocumentRequestModel\n} from \"@/umb-management-api/schemas/index.js\";\nimport {\n getAllDocumentTypeProperties,\n validateCultureSegment,\n type ResolvedProperty\n} from \"./helpers/document-type-properties-resolver.js\";\nimport { validatePropertiesBeforeSave } from \"./helpers/property-value-validator.js\";\nimport { matchesProperty, getPropertyKey } from \"./helpers/property-matching.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n ToolValidationError,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Output schema for successful responses\nexport const updateDocumentPropertiesOutputSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n updatedProperties: z.array(z.string()),\n addedProperties: z.array(z.string()),\n document: z.any().describe(\"The updated document object\"),\n});\n\n// Define the property schema for reuse\nconst propertySchema = z.object({\n alias: z.string().min(1).describe(\"The property alias to update or add\"),\n value: z.any().nullish().describe(\"The new value for the property\"),\n culture: z.string().nullish().describe(\"Optional culture code for variant properties (e.g., 'en-US')\"),\n segment: z.string().nullish().describe(\"Optional segment identifier for variant properties\"),\n});\n\n// Define the input schema\nconst updateDocumentPropertiesSchema = {\n id: z.string().uuid().describe(\"The unique identifier of the document to update\"),\n properties: z.array(propertySchema).min(1).describe(\"Array of properties to update or add - at least one property is required\")\n};\n\ntype UpdateDocumentPropertiesModel = {\n id: string;\n properties: Array<{\n alias: string;\n value?: any;\n culture?: string | null;\n segment?: string | null;\n }>;\n};\n\nconst UpdateDocumentPropertiesTool = {\n name: \"update-document-properties\",\n description: `Updates or adds property values on a document without requiring the full document JSON payload.\n\n This tool simplifies property updates by handling the read-modify-write cycle internally.\n You can update existing properties, add new properties, or do both in a single call.\n\n Key features:\n - Update existing properties or add new ones\n - Property must exist on the document type (including compositions)\n - Full i18n support with culture and segment parameters\n - Automatic validation of property aliases against document type\n - Culture/segment requirements validated against property variance flags\n - Returns detailed error messages with available properties\n\n Example usage:\n - Update a single property: { id: \"...\", properties: [{ alias: \"title\", value: \"New Title\" }] }\n - Add a new property: { id: \"...\", properties: [{ alias: \"author\", value: \"John Doe\" }] }\n - Update with culture: { id: \"...\", properties: [{ alias: \"title\", value: \"Nuevo Título\", culture: \"es-ES\" }] }\n - Mix update and add: { id: \"...\", properties: [{ alias: \"title\", value: \"New\" }, { alias: \"newProp\", value: \"Value\" }] }`,\n inputSchema: updateDocumentPropertiesSchema,\n outputSchema: updateDocumentPropertiesOutputSchema.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Update),\n handler: (async (model: UpdateDocumentPropertiesModel) => {\n const client = UmbracoManagementClient.getClient();\n\n // Step 1: Fetch the current document\n const currentDocument = await client.getDocumentById(model.id);\n\n // Step 2: Validate and categorize properties\n const invalidAliases: string[] = [];\n const varianceErrors: string[] = [];\n const propertiesToUpdate: Array<{\n alias: string;\n value: any;\n culture?: string | null;\n segment?: string | null;\n }> = [];\n const propertiesToAdd: Array<{\n alias: string;\n value: any;\n culture?: string | null;\n segment?: string | null;\n }> = [];\n\n // Lazy-load document type properties only if needed (for adding new properties)\n let documentTypeProperties: ResolvedProperty[] | null = null;\n const getDocumentTypeProperties = async (): Promise<ResolvedProperty[]> => {\n if (documentTypeProperties === null) {\n try {\n documentTypeProperties = await getAllDocumentTypeProperties(currentDocument.documentType.id);\n } catch (error) {\n console.error(\"Failed to fetch document type properties:\", error);\n documentTypeProperties = [];\n }\n }\n return documentTypeProperties;\n };\n\n for (const prop of model.properties) {\n // Check if property exists on document (update case)\n const existsOnDocument = currentDocument.values.some(v =>\n matchesProperty(v, prop.alias, prop.culture, prop.segment)\n );\n\n if (existsOnDocument) {\n // Property exists - this is an update\n propertiesToUpdate.push({\n alias: prop.alias,\n value: prop.value,\n culture: prop.culture,\n segment: prop.segment\n });\n } else {\n // Property doesn't exist on document - check if it's valid on document type\n const docTypeProperties = await getDocumentTypeProperties();\n const propertyDef = docTypeProperties.find(p => p.alias === prop.alias);\n\n if (propertyDef) {\n // Property exists on document type - validate culture/segment\n const validationError = validateCultureSegment(prop, propertyDef);\n if (validationError) {\n varianceErrors.push(validationError);\n } else {\n // Valid new property to add\n propertiesToAdd.push({\n alias: prop.alias,\n value: prop.value,\n culture: prop.culture,\n segment: prop.segment\n });\n }\n } else if (docTypeProperties.length > 0) {\n // Property doesn't exist on document type\n invalidAliases.push(getPropertyKey(prop.alias, prop.culture, prop.segment));\n } else {\n // Couldn't fetch document type - fall back to old behavior (invalid)\n invalidAliases.push(getPropertyKey(prop.alias, prop.culture, prop.segment));\n }\n }\n }\n\n // Step 3: Return error if there are validation issues\n // Note: documentTypeProperties is guaranteed to be loaded if we have variance errors or invalid aliases\n if (varianceErrors.length > 0) {\n throw new ToolValidationError({\n title: \"Culture/segment validation failed\",\n detail: varianceErrors.join(\"; \"),\n extensions: {\n errors: varianceErrors,\n availableProperties: (documentTypeProperties ?? [] as ResolvedProperty[]).map(p => ({\n alias: p.alias,\n name: p.name,\n variesByCulture: p.variesByCulture,\n variesBySegment: p.variesBySegment\n }))\n }\n });\n }\n\n if (invalidAliases.length > 0) {\n const docTypeProps = documentTypeProperties ?? [] as ResolvedProperty[];\n const availableProperties = docTypeProps.length > 0\n ? docTypeProps.map(p => ({\n alias: p.alias,\n name: p.name,\n variesByCulture: p.variesByCulture,\n variesBySegment: p.variesBySegment\n }))\n : currentDocument.values.map(v => ({\n alias: v.alias,\n culture: v.culture ?? null,\n segment: v.segment ?? null,\n editorAlias: v.editorAlias\n }));\n\n throw new ToolValidationError({\n title: \"Invalid property aliases\",\n detail: `The following properties do not exist on this document type: ${invalidAliases.join(\", \")}`,\n extensions: {\n invalidAliases,\n availableProperties\n }\n });\n }\n\n // Step 4: Validate property values against Data Type configuration\n const allPropertiesToValidate = [...propertiesToUpdate, ...propertiesToAdd];\n if (allPropertiesToValidate.length > 0) {\n // Get document type properties if not already loaded (needed for dataTypeId lookup)\n const docTypeProps = await getDocumentTypeProperties();\n\n const propsToValidate = allPropertiesToValidate\n .map(p => {\n const def = docTypeProps.find(d => d.alias === p.alias);\n return { alias: p.alias, value: p.value, dataTypeId: def?.dataTypeId ?? '' };\n })\n .filter(p => p.dataTypeId);\n\n if (propsToValidate.length > 0) {\n const valueValidation = await validatePropertiesBeforeSave(propsToValidate);\n if (!valueValidation.isValid) {\n throw new ToolValidationError({\n title: \"Property value validation failed\",\n detail: valueValidation.errors.join(\"; \"),\n extensions: {\n errors: valueValidation.errors\n }\n });\n }\n }\n }\n\n // Step 5: Merge updated properties with existing values\n const updatedValues: DocumentValueModel[] = currentDocument.values.map(existingValue => {\n // Find if this property should be updated\n const updateProp = propertiesToUpdate.find(p =>\n matchesProperty(existingValue, p.alias, p.culture, p.segment)\n );\n\n if (updateProp) {\n // Return updated property (strip editorAlias as it's read-only)\n return {\n alias: existingValue.alias,\n culture: existingValue.culture,\n segment: existingValue.segment,\n value: updateProp.value\n };\n }\n\n // Return unchanged property (strip editorAlias as it's read-only)\n return {\n alias: existingValue.alias,\n culture: existingValue.culture,\n segment: existingValue.segment,\n value: existingValue.value\n };\n });\n\n // Step 6: Add new properties\n for (const newProp of propertiesToAdd) {\n updatedValues.push({\n alias: newProp.alias,\n culture: newProp.culture ?? null,\n segment: newProp.segment ?? null,\n value: newProp.value\n });\n }\n\n // Step 7: Convert variants from response format to request format\n const variants: DocumentVariantRequestModel[] = currentDocument.variants.map(v => ({\n culture: v.culture,\n segment: v.segment,\n name: v.name\n }));\n\n // Step 8: Build the update payload\n const updatePayload: UpdateDocumentRequestModel = {\n values: updatedValues,\n variants: variants,\n template: currentDocument.template\n };\n\n // Step 9: Update the document\n await client.putDocumentById(model.id, updatePayload);\n\n // Step 10: Re-fetch the document to return the updated state\n const updatedDocument = await client.getDocumentById(model.id);\n\n // Step 11: Build lists for the success message\n const updatedPropertyKeys = propertiesToUpdate.map(p =>\n getPropertyKey(p.alias, p.culture, p.segment)\n );\n const addedPropertyKeys = propertiesToAdd.map(p =>\n getPropertyKey(p.alias, p.culture, p.segment)\n );\n\n const totalCount = propertiesToUpdate.length + propertiesToAdd.length;\n let message = `Successfully processed ${totalCount} property value(s)`;\n if (propertiesToUpdate.length > 0 && propertiesToAdd.length > 0) {\n message = `Successfully updated ${propertiesToUpdate.length} and added ${propertiesToAdd.length} property value(s)`;\n } else if (propertiesToAdd.length > 0) {\n message = `Successfully added ${propertiesToAdd.length} property value(s)`;\n } else {\n message = `Successfully updated ${propertiesToUpdate.length} property value(s)`;\n }\n\n return createToolResult({\n success: true,\n message,\n updatedProperties: updatedPropertyKeys,\n addedProperties: addedPropertyKeys,\n document: updatedDocument\n });\n }),\n} satisfies ToolDefinition<typeof updateDocumentPropertiesSchema, typeof updateDocumentPropertiesOutputSchema.shape>;\n\nexport default withStandardDecorators(UpdateDocumentPropertiesTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\n\n/**\n * Represents a resolved property from a document type, including properties from compositions\n */\nexport interface ResolvedProperty {\n alias: string;\n name: string;\n dataTypeId: string;\n variesByCulture: boolean;\n variesBySegment: boolean;\n}\n\n/**\n * Recursively resolves all properties from a document type, including properties from compositions.\n *\n * @param documentTypeId - The ID of the document type to resolve properties for\n * @returns Array of resolved properties with their variance flags\n */\nexport async function getAllDocumentTypeProperties(documentTypeId: string): Promise<ResolvedProperty[]> {\n const client = UmbracoManagementClient.getClient();\n const visitedIds = new Set<string>();\n const properties: ResolvedProperty[] = [];\n\n async function resolveDocumentType(docTypeId: string): Promise<void> {\n // Prevent infinite recursion from circular compositions\n if (visitedIds.has(docTypeId)) {\n return;\n }\n visitedIds.add(docTypeId);\n\n const docType = await client.getDocumentTypeById(docTypeId);\n\n // Add direct properties\n for (const prop of docType.properties) {\n // Skip if we already have this property (earlier compositions take precedence)\n if (!properties.some(p => p.alias === prop.alias)) {\n properties.push({\n alias: prop.alias,\n name: prop.name,\n dataTypeId: prop.dataType.id,\n variesByCulture: prop.variesByCulture,\n variesBySegment: prop.variesBySegment\n });\n }\n }\n\n // Recursively resolve compositions\n for (const composition of docType.compositions) {\n await resolveDocumentType(composition.documentType.id);\n }\n }\n\n await resolveDocumentType(documentTypeId);\n return properties;\n}\n\n/**\n * Validates that the provided culture/segment matches the property's variance requirements.\n *\n * @param prop - The property being set with optional culture/segment\n * @param def - The property definition with variance flags\n * @returns null if valid, or an error message string if invalid\n */\nexport function validateCultureSegment(\n prop: { alias: string; culture?: string | null; segment?: string | null },\n def: { variesByCulture: boolean; variesBySegment: boolean }\n): string | null {\n // Culture validation\n if (!def.variesByCulture && prop.culture) {\n return `Property '${prop.alias}' does not vary by culture, but culture '${prop.culture}' was provided`;\n }\n if (def.variesByCulture && !prop.culture) {\n return `Property '${prop.alias}' varies by culture - culture is required`;\n }\n\n // Segment validation\n if (!def.variesBySegment && prop.segment) {\n return `Property '${prop.alias}' does not vary by segment, but segment '${prop.segment}' was provided`;\n }\n if (def.variesBySegment && !prop.segment) {\n return `Property '${prop.alias}' varies by segment - segment is required`;\n }\n\n return null;\n}\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport type { DataTypeResponseModel } from \"@/umb-management-api/schemas/index.js\";\n\n/**\n * Result of validating a property value\n */\nexport interface PropertyValueValidation {\n isValid: boolean;\n errors: string[];\n}\n\n/**\n * Configuration for how an editor validates values\n */\ninterface EditorFormatConfig {\n /** Expected value type */\n valueType: 'string' | 'string[]' | 'number' | 'boolean' | 'object';\n /** Config key in Data Type that contains allowed values (e.g., \"items\") */\n allowedValuesKey?: string;\n /** Whether to validate value against allowed values list */\n validateAllowedValues?: boolean;\n}\n\n/**\n * Mapping of editor alias → format configuration\n *\n * This map defines the expected value format and validation rules for each property editor.\n * Editors not in this map will skip validation (unknown editors are allowed through).\n */\nconst EDITOR_FORMAT_MAP: Record<string, EditorFormatConfig> = {\n // Editors with allowed values validation\n \"Umbraco.DropDown.Flexible\": { valueType: 'string[]', allowedValuesKey: 'items', validateAllowedValues: true },\n \"Umbraco.RadioButtonList\": { valueType: 'string', allowedValuesKey: 'items', validateAllowedValues: true },\n \"Umbraco.CheckBoxList\": { valueType: 'string[]', allowedValuesKey: 'items', validateAllowedValues: true },\n \"Umbraco.ColorPicker\": { valueType: 'object', allowedValuesKey: 'items', validateAllowedValues: true },\n\n // Editors with format-only validation\n \"Umbraco.TextBox\": { valueType: 'string' },\n \"Umbraco.TextArea\": { valueType: 'string' },\n \"Umbraco.Integer\": { valueType: 'number' },\n \"Umbraco.Decimal\": { valueType: 'number' },\n \"Umbraco.TrueFalse\": { valueType: 'boolean' },\n \"Umbraco.Tags\": { valueType: 'string[]' },\n \"Umbraco.MultipleTextstring\": { valueType: 'string[]' },\n \"Umbraco.DateTime\": { valueType: 'string' },\n \"Umbraco.EmailAddress\": { valueType: 'string' },\n \"Umbraco.MarkdownEditor\": { valueType: 'string' },\n \"Umbraco.ColorPicker.EyeDropper\": { valueType: 'string' },\n};\n\n/**\n * Validates that a value matches the expected type\n */\nfunction validateValueType(value: unknown, expectedType: string, propertyAlias: string, editorAlias: string): string | null {\n // Null/undefined values are allowed (property can be empty)\n if (value === null || value === undefined) {\n return null;\n }\n\n switch (expectedType) {\n case 'string':\n if (typeof value !== 'string') {\n return `Property '${propertyAlias}': Value must be a string for ${editorAlias} editor, got ${typeof value}`;\n }\n break;\n case 'string[]':\n if (!Array.isArray(value)) {\n return `Property '${propertyAlias}': Value must be an array for ${editorAlias} editor, got ${typeof value}`;\n }\n if (!value.every(item => typeof item === 'string')) {\n return `Property '${propertyAlias}': All array items must be strings for ${editorAlias} editor`;\n }\n break;\n case 'number':\n if (typeof value !== 'number') {\n return `Property '${propertyAlias}': Value must be a number for ${editorAlias} editor, got ${typeof value}`;\n }\n break;\n case 'boolean':\n if (typeof value !== 'boolean') {\n return `Property '${propertyAlias}': Value must be a boolean for ${editorAlias} editor, got ${typeof value}`;\n }\n break;\n case 'object':\n if (typeof value !== 'object' || Array.isArray(value)) {\n return `Property '${propertyAlias}': Value must be an object for ${editorAlias} editor, got ${Array.isArray(value) ? 'array' : typeof value}`;\n }\n break;\n }\n return null;\n}\n\n/**\n * Extracts allowed values from Data Type configuration\n */\nfunction extractAllowedValues(dataType: DataTypeResponseModel, configKey: string): string[] | null {\n const configItem = dataType.values.find(v => v.alias === configKey);\n if (!configItem || !configItem.value) {\n return null;\n }\n\n const value = configItem.value;\n\n // For most editors, items is a string array\n if (Array.isArray(value)) {\n // Check if it's an array of strings (dropdown, radio, checkbox)\n if (value.every(item => typeof item === 'string')) {\n return value as string[];\n }\n // Check if it's an array of objects with 'value' property (color picker)\n if (value.every(item => typeof item === 'object' && item !== null && 'value' in item)) {\n return value.map(item => (item as { value: string }).value);\n }\n }\n\n return null;\n}\n\n/**\n * Validates a value against allowed values list\n */\nfunction validateAllowedValues(\n value: unknown,\n allowedValues: string[],\n propertyAlias: string,\n editorAlias: string,\n valueType: string\n): string[] {\n const errors: string[] = [];\n\n // Null/undefined values are allowed\n if (value === null || value === undefined) {\n return errors;\n }\n\n // For ColorPicker, extract the value property\n if (editorAlias === 'Umbraco.ColorPicker' && typeof value === 'object' && value !== null && 'value' in value) {\n const colorValue = (value as { value: string }).value;\n if (!allowedValues.includes(colorValue)) {\n errors.push(`Property '${propertyAlias}': Color value '${colorValue}' is not in allowed values: [${allowedValues.map(v => `'${v}'`).join(', ')}]`);\n }\n return errors;\n }\n\n // For arrays, check each value\n if (valueType === 'string[]' && Array.isArray(value)) {\n for (const item of value) {\n if (!allowedValues.includes(item)) {\n errors.push(`Property '${propertyAlias}': Value '${item}' is not in allowed values: [${allowedValues.map(v => `'${v}'`).join(', ')}]`);\n }\n }\n return errors;\n }\n\n // For single string values\n if (valueType === 'string' && typeof value === 'string') {\n if (!allowedValues.includes(value)) {\n errors.push(`Property '${propertyAlias}': Value '${value}' is not in allowed values: [${allowedValues.map(v => `'${v}'`).join(', ')}]`);\n }\n return errors;\n }\n\n return errors;\n}\n\n/**\n * Validates a single property value against its Data Type configuration\n *\n * @param dataType - The Data Type configuration for this property\n * @param value - The value to validate\n * @param propertyAlias - The property alias (for error messages)\n * @returns Validation result with any errors\n */\nexport function validatePropertyValue(\n dataType: DataTypeResponseModel,\n value: unknown,\n propertyAlias: string\n): PropertyValueValidation {\n const errors: string[] = [];\n const editorAlias = dataType.editorAlias;\n\n // Look up editor format configuration\n const formatConfig = EDITOR_FORMAT_MAP[editorAlias];\n\n // If editor is not in our map, skip validation (unknown editor)\n if (!formatConfig) {\n return { isValid: true, errors: [] };\n }\n\n // Validate value type\n const typeError = validateValueType(value, formatConfig.valueType, propertyAlias, editorAlias);\n if (typeError) {\n errors.push(typeError);\n // If type is wrong, don't continue with allowed values validation\n return { isValid: false, errors };\n }\n\n // Validate against allowed values if configured\n if (formatConfig.validateAllowedValues && formatConfig.allowedValuesKey) {\n const allowedValues = extractAllowedValues(dataType, formatConfig.allowedValuesKey);\n if (allowedValues && allowedValues.length > 0) {\n const allowedValueErrors = validateAllowedValues(\n value,\n allowedValues,\n propertyAlias,\n editorAlias,\n formatConfig.valueType\n );\n errors.push(...allowedValueErrors);\n }\n }\n\n return {\n isValid: errors.length === 0,\n errors\n };\n}\n\n/**\n * Validates multiple properties before saving\n *\n * This is the main entry point for validation. It handles caching of Data Type\n * lookups to avoid repeated API calls for properties using the same Data Type.\n *\n * @param properties - Array of properties to validate with their Data Type IDs\n * @returns Aggregated validation result with all errors\n */\nexport async function validatePropertiesBeforeSave(\n properties: Array<{ alias: string; value: unknown; dataTypeId: string }>\n): Promise<PropertyValueValidation> {\n const client = UmbracoManagementClient.getClient();\n const errors: string[] = [];\n\n // Cache Data Types to avoid repeated API calls\n const dataTypeCache = new Map<string, DataTypeResponseModel>();\n\n async function getCachedDataType(dataTypeId: string): Promise<DataTypeResponseModel | null> {\n if (!dataTypeCache.has(dataTypeId)) {\n try {\n const dataType = await client.getDataTypeById(dataTypeId);\n dataTypeCache.set(dataTypeId, dataType);\n } catch (error) {\n console.error(`Failed to fetch Data Type ${dataTypeId}:`, error);\n return null;\n }\n }\n return dataTypeCache.get(dataTypeId) ?? null;\n }\n\n // Validate each property\n for (const prop of properties) {\n if (!prop.dataTypeId) {\n continue; // Skip properties without Data Type ID\n }\n\n const dataType = await getCachedDataType(prop.dataTypeId);\n if (!dataType) {\n continue; // Skip if we couldn't fetch Data Type\n }\n\n const validation = validatePropertyValue(dataType, prop.value, prop.alias);\n if (!validation.isValid) {\n errors.push(...validation.errors);\n }\n }\n\n return {\n isValid: errors.length === 0,\n errors\n };\n}\n","/**\n * Pure helper functions for property matching and key generation.\n * These are used by update-document-properties and update-block-property tools.\n */\n\n/**\n * Matches a property by alias, culture, and segment.\n * Handles null/undefined normalization for comparison.\n *\n * @param value - The value object to check (from document values array)\n * @param alias - The property alias to match\n * @param culture - Optional culture code to match\n * @param segment - Optional segment identifier to match\n * @returns true if the value matches all criteria\n */\nexport function matchesProperty(\n value: { alias: string; culture?: string | null; segment?: string | null },\n alias: string,\n culture?: string | null,\n segment?: string | null\n): boolean {\n return value.alias === alias &&\n (value.culture ?? null) === (culture ?? null) &&\n (value.segment ?? null) === (segment ?? null);\n}\n\n/**\n * Creates a human-readable property key for error reporting and success messages.\n * Format: \"alias\" or \"alias[culture]\" or \"alias[culture][segment]\"\n *\n * @param alias - The property alias\n * @param culture - Optional culture code\n * @param segment - Optional segment identifier\n * @returns Formatted property key string\n */\nexport function getPropertyKey(alias: string, culture?: string | null, segment?: string | null): string {\n let key = alias;\n if (culture) key += `[${culture}]`;\n if (segment) key += `[${segment}]`;\n return key;\n}\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { UmbracoDocumentPermissions } from \"../constants.js\";\nimport type {\n DocumentValueModel,\n DocumentVariantRequestModel,\n UpdateDocumentRequestModel\n} from \"@/umb-management-api/schemas/index.js\";\nimport {\n getAllDocumentTypeProperties,\n validateCultureSegment,\n type ResolvedProperty\n} from \"./helpers/document-type-properties-resolver.js\";\nimport { validatePropertiesBeforeSave } from \"./helpers/property-value-validator.js\";\nimport { matchesProperty, getPropertyKey } from \"./helpers/property-matching.js\";\nimport {\n discoverAllBlockArrays,\n findBlockByKey,\n type BlockDataItem\n} from \"./helpers/block-discovery.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n ToolValidationError,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Output schema for successful responses\nconst blockUpdateResultSchema = z.object({\n success: z.boolean(),\n contentKey: z.string().uuid(),\n message: z.string(),\n updatedCount: z.number().optional(),\n addedCount: z.number().optional(),\n warnings: z.array(z.string()).optional(),\n errors: z.array(z.string()).optional(),\n});\n\nexport const updateBlockPropertyOutputSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n results: z.array(blockUpdateResultSchema),\n});\n\n// Schema definitions\nconst blockPropertyUpdateSchema = z.object({\n alias: z.string().min(1).describe(\"The property alias within the block to update\"),\n value: z.any().nullish().describe(\"The new value for the property\"),\n culture: z.string().nullish().describe(\"Optional culture code for variant block properties\"),\n segment: z.string().nullish().describe(\"Optional segment identifier for variant block properties\"),\n});\n\nconst blockUpdateSchema = z.object({\n contentKey: z.string().uuid().describe(\"The unique key (UUID) identifying the block\"),\n blockType: z.enum([\"content\", \"settings\"]).describe(\"'content' for contentData, 'settings' for settingsData\"),\n properties: z.array(blockPropertyUpdateSchema).min(1).describe(\"Properties to update within this block\"),\n});\n\nconst updateBlockPropertySchema = {\n documentId: z.string().uuid().describe(\"The document containing the block\"),\n propertyAlias: z.string().min(1).describe(\"Document property alias containing BlockList/BlockGrid\"),\n culture: z.string().nullish().describe(\"Optional culture for variant document properties\"),\n segment: z.string().nullish().describe(\"Optional segment for variant document properties\"),\n updates: z.array(blockUpdateSchema).min(1).describe(\"Array of block updates\"),\n};\n\ntype UpdateBlockPropertyModel = {\n documentId: string;\n propertyAlias: string;\n culture?: string | null;\n segment?: string | null;\n updates: Array<{\n contentKey: string;\n blockType: \"content\" | \"settings\";\n properties: Array<{\n alias: string;\n value?: any;\n culture?: string | null;\n segment?: string | null;\n }>;\n }>;\n};\n\nconst UpdateBlockPropertyTool = {\n name: \"update-block-property\",\n description: `Updates or adds property values within BlockList, BlockGrid, or RichText block content.\n\n This tool enables targeted updates to individual block properties without sending the entire JSON payload.\n You can update existing properties, add new properties, or do both in a single call.\n It automatically handles deep traversal of nested block structures (e.g., RichText blocks containing nested blocks).\n\n Key features:\n - Update existing properties or add new ones to blocks\n - Property must exist on the Element Type (including compositions)\n - Support for both content and settings blocks\n - Batch updates to multiple blocks in a single call\n - Deep traversal of nested block structures\n - Full i18n support with culture and segment parameters\n - Culture/segment requirements validated against property variance flags\n\n Example usage:\n - Update a block property: { documentId: \"...\", propertyAlias: \"mainContent\", updates: [{ contentKey: \"block-uuid\", blockType: \"content\", properties: [{ alias: \"title\", value: \"New Title\" }] }] }\n - Add a new property to block: { documentId: \"...\", propertyAlias: \"mainContent\", updates: [{ contentKey: \"block-uuid\", blockType: \"content\", properties: [{ alias: \"newProp\", value: \"Value\" }] }] }\n - Update with culture: { documentId: \"...\", propertyAlias: \"mainContent\", culture: \"es-ES\", updates: [...] }\n - Batch update multiple blocks: { documentId: \"...\", propertyAlias: \"mainContent\", updates: [{ contentKey: \"uuid1\", ... }, { contentKey: \"uuid2\", ... }] }`,\n inputSchema: updateBlockPropertySchema,\n outputSchema: updateBlockPropertyOutputSchema.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n enabled: (user: CurrentUserResponseModel) => user.fallbackPermissions.includes(UmbracoDocumentPermissions.Update),\n handler: (async (model: UpdateBlockPropertyModel) => {\n const client = UmbracoManagementClient.getClient();\n\n // Step 1: Fetch the current document\n const currentDocument = await client.getDocumentById(model.documentId);\n\n // Step 2: Find the property containing the block structure\n const documentProperty = currentDocument.values.find(v =>\n matchesProperty(v, model.propertyAlias, model.culture, model.segment)\n );\n\n if (!documentProperty) {\n const availableAliases = currentDocument.values.map(v => ({\n alias: v.alias,\n culture: v.culture ?? null,\n segment: v.segment ?? null,\n editorAlias: v.editorAlias\n }));\n\n throw new ToolValidationError({\n title: \"Property not found\",\n detail: `Property '${getPropertyKey(model.propertyAlias, model.culture, model.segment)}' does not exist on this document`,\n extensions: {\n availableProperties: availableAliases\n }\n });\n }\n\n // Step 3: Discover all block arrays via deep traversal\n const discoveredArrays = discoverAllBlockArrays(documentProperty.value, `property(${model.propertyAlias})`);\n\n if (discoveredArrays.length === 0) {\n throw new ToolValidationError({\n title: \"No block structure found\",\n detail: `Property '${model.propertyAlias}' does not contain a BlockList, BlockGrid, or RichText block structure`,\n extensions: {\n propertyValue: documentProperty.value\n }\n });\n }\n\n // Step 4: Process updates\n const results: Array<{\n success: boolean;\n contentKey: string;\n message: string;\n updatedCount?: number;\n addedCount?: number;\n warnings?: string[];\n errors?: string[];\n }> = [];\n const notFoundBlocks: Array<{ contentKey: string; blockType: string }> = [];\n\n // Cache for Element Type properties (lazy-loaded per contentTypeKey)\n const elementTypePropertiesCache = new Map<string, ResolvedProperty[]>();\n const getElementTypeProperties = async (contentTypeKey: string): Promise<ResolvedProperty[]> => {\n if (!elementTypePropertiesCache.has(contentTypeKey)) {\n try {\n const properties = await getAllDocumentTypeProperties(contentTypeKey);\n elementTypePropertiesCache.set(contentTypeKey, properties);\n } catch (error) {\n console.error(`Failed to fetch Element Type properties for ${contentTypeKey}:`, error);\n elementTypePropertiesCache.set(contentTypeKey, []);\n }\n }\n return elementTypePropertiesCache.get(contentTypeKey)!;\n };\n\n for (const update of model.updates) {\n const foundBlock = findBlockByKey(discoveredArrays, update.contentKey, update.blockType);\n\n if (!foundBlock) {\n notFoundBlocks.push({ contentKey: update.contentKey, blockType: update.blockType });\n results.push({\n success: false,\n contentKey: update.contentKey,\n message: `Block with contentKey '${update.contentKey}' not found in ${update.blockType}Data`\n });\n continue;\n }\n\n // Process properties within the block\n const warnings: string[] = [];\n const errors: string[] = [];\n let updatedCount = 0;\n let addedCount = 0;\n\n // Load Element Type properties for validation\n const elementTypeProperties = await getElementTypeProperties(foundBlock.block.contentTypeKey);\n\n // Validate property values against Data Type configuration before processing\n if (elementTypeProperties.length > 0) {\n const propsToValidate = update.properties\n .map(p => {\n const def = elementTypeProperties.find(d => d.alias === p.alias);\n return { alias: p.alias, value: p.value, dataTypeId: def?.dataTypeId ?? '' };\n })\n .filter(p => p.dataTypeId);\n\n if (propsToValidate.length > 0) {\n const valueValidation = await validatePropertiesBeforeSave(propsToValidate);\n if (!valueValidation.isValid) {\n errors.push(...valueValidation.errors);\n }\n }\n }\n\n for (const propUpdate of update.properties) {\n const blockProperty = foundBlock.block.values.find(v =>\n matchesProperty(v, propUpdate.alias, propUpdate.culture, propUpdate.segment)\n );\n\n if (blockProperty) {\n // Property exists - update it\n blockProperty.value = propUpdate.value;\n updatedCount++;\n } else {\n // Property doesn't exist on block - check if it's valid on Element Type\n // Note: elementTypeProperties is already loaded for value validation above\n const propertyDef = elementTypeProperties.find(p => p.alias === propUpdate.alias);\n\n if (propertyDef) {\n // Property exists on Element Type - validate culture/segment\n const validationError = validateCultureSegment(propUpdate, propertyDef);\n if (validationError) {\n errors.push(validationError);\n } else {\n // Valid new property - add to block's values\n foundBlock.block.values.push({\n alias: propUpdate.alias,\n culture: propUpdate.culture ?? null,\n segment: propUpdate.segment ?? null,\n value: propUpdate.value\n });\n addedCount++;\n }\n } else if (elementTypeProperties.length > 0) {\n // Property doesn't exist on Element Type\n errors.push(\n `Property '${getPropertyKey(propUpdate.alias, propUpdate.culture, propUpdate.segment)}' does not exist on Element Type`\n );\n } else {\n // Couldn't fetch Element Type - fall back to warning\n warnings.push(\n `Property '${getPropertyKey(propUpdate.alias, propUpdate.culture, propUpdate.segment)}' not found in block (could not validate against Element Type)`\n );\n }\n }\n }\n\n const totalProcessed = updatedCount + addedCount;\n let message: string;\n if (updatedCount > 0 && addedCount > 0) {\n message = `Updated ${updatedCount} and added ${addedCount} properties in block at ${foundBlock.path}`;\n } else if (addedCount > 0) {\n message = `Added ${addedCount} properties in block at ${foundBlock.path}`;\n } else if (updatedCount > 0) {\n message = `Updated ${updatedCount} properties in block at ${foundBlock.path}`;\n } else {\n message = `No properties were processed in block at ${foundBlock.path}`;\n }\n\n results.push({\n success: totalProcessed > 0 || errors.length === 0,\n contentKey: update.contentKey,\n message,\n updatedCount: updatedCount > 0 ? updatedCount : undefined,\n addedCount: addedCount > 0 ? addedCount : undefined,\n warnings: warnings.length > 0 ? warnings : undefined,\n errors: errors.length > 0 ? errors : undefined\n });\n }\n\n // If all blocks failed to be found, return detailed error\n if (notFoundBlocks.length === model.updates.length) {\n const allBlocks = discoveredArrays.flatMap(d => [\n ...d.contentData.map((b: BlockDataItem) => ({ key: b.key, type: \"content\", path: d.path })),\n ...d.settingsData.map((b: BlockDataItem) => ({ key: b.key, type: \"settings\", path: d.path }))\n ]);\n\n throw new ToolValidationError({\n title: \"Blocks not found\",\n detail: \"None of the specified blocks were found in the document\",\n extensions: {\n notFoundBlocks,\n availableBlocks: allBlocks\n }\n });\n }\n\n // Step 5: Prepare updated values array (strip editorAlias as it's read-only)\n const updatedValues: DocumentValueModel[] = currentDocument.values.map(existingValue => ({\n alias: existingValue.alias,\n culture: existingValue.culture,\n segment: existingValue.segment,\n value: existingValue.value\n }));\n\n // Step 6: Convert variants from response format to request format\n const variants: DocumentVariantRequestModel[] = currentDocument.variants.map(v => ({\n culture: v.culture,\n segment: v.segment,\n name: v.name\n }));\n\n // Step 7: Build the update payload\n const updatePayload: UpdateDocumentRequestModel = {\n values: updatedValues,\n variants: variants,\n template: currentDocument.template\n };\n\n // Step 8: Update the document\n await client.putDocumentById(model.documentId, updatePayload);\n\n return createToolResult({\n success: true,\n message: `Successfully processed ${model.updates.length} block update(s)`,\n results\n });\n }),\n} satisfies ToolDefinition<typeof updateBlockPropertySchema, typeof updateBlockPropertyOutputSchema.shape>;\n\nexport default withStandardDecorators(UpdateBlockPropertyTool);\n","/**\n * Pure helper functions for block structure discovery and traversal.\n * Used by update-block-property tool to navigate BlockList, BlockGrid, and RichText blocks.\n */\n\n/**\n * Represents a single block data item within a BlockList, BlockGrid, or RichText structure.\n */\nexport interface BlockDataItem {\n key: string;\n contentTypeKey: string;\n values: Array<{\n alias: string;\n culture?: string | null;\n segment?: string | null;\n value?: any;\n editorAlias?: string;\n }>;\n}\n\n/**\n * Represents a discovered set of block arrays with their location path.\n */\nexport interface DiscoveredBlockArrays {\n contentData: BlockDataItem[];\n settingsData: BlockDataItem[];\n path: string;\n}\n\n/**\n * Result of finding a block by key.\n */\nexport interface FoundBlock {\n block: BlockDataItem;\n arrayRef: BlockDataItem[];\n path: string;\n}\n\n/**\n * Checks if a value is a RichText structure.\n * RichText values have: { markup: \"...\", blocks: { layout: {}, contentData: [], settingsData: [], expose: [] } }\n *\n * @param value - The value to check\n * @returns true if the value is a RichText structure\n */\nexport function isRichTextValue(value: any): boolean {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (!(\"markup\" in value)) {\n return false;\n }\n if (!value.blocks || typeof value.blocks !== \"object\") {\n return false;\n }\n return Array.isArray(value.blocks.contentData) && Array.isArray(value.blocks.settingsData);\n}\n\n/**\n * Checks if a value is a BlockList/BlockGrid structure (has contentData and settingsData arrays).\n *\n * @param value - The value to check\n * @returns true if the value has block structure\n */\nexport function isBlockStructure(value: any): boolean {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n return Array.isArray(value.contentData) && Array.isArray(value.settingsData);\n}\n\n/**\n * Recursively discovers all block arrays (contentData and settingsData) in a value structure.\n * This handles nested blocks in RichText editors and deeply nested block structures.\n *\n * @param value - The value to search within\n * @param path - The current path (for debugging/error messages)\n * @returns Array of discovered block arrays with their paths\n */\nexport function discoverAllBlockArrays(value: any, path: string = \"root\"): DiscoveredBlockArrays[] {\n const results: DiscoveredBlockArrays[] = [];\n\n // Base case: null, undefined, or not an object\n if (!value || typeof value !== \"object\") {\n return results;\n }\n\n // Check for RichText structure at the top level (document property is an RTE)\n // This handles the case where the document property itself is an RTE\n if (isRichTextValue(value)) {\n const nestedResults = discoverAllBlockArrays(value.blocks, `${path}.blocks`);\n results.push(...nestedResults);\n return results;\n }\n\n // Check if this value has contentData and settingsData arrays (BlockList/BlockGrid or blocks from RTE)\n if (isBlockStructure(value)) {\n results.push({\n contentData: value.contentData,\n settingsData: value.settingsData,\n path\n });\n\n // Now recursively check each block in contentData for nested structures\n value.contentData.forEach((block: BlockDataItem, index: number) => {\n if (block.values && Array.isArray(block.values)) {\n block.values.forEach((prop: any, propIndex: number) => {\n const propPath = `${path}.contentData[${index}].values[${propIndex}](${prop.alias})`;\n\n // Check for RichText blocks structure (nested RTE inside blocks)\n if (isRichTextValue(prop.value)) {\n const nestedResults = discoverAllBlockArrays(prop.value.blocks, `${propPath}.blocks`);\n results.push(...nestedResults);\n }\n // Check for direct nested block structures (BlockList/BlockGrid nested inside blocks)\n else if (isBlockStructure(prop.value)) {\n const nestedResults = discoverAllBlockArrays(prop.value, propPath);\n results.push(...nestedResults);\n }\n });\n }\n });\n\n // Check settingsData blocks too\n value.settingsData.forEach((block: BlockDataItem, index: number) => {\n if (block.values && Array.isArray(block.values)) {\n block.values.forEach((prop: any, propIndex: number) => {\n const propPath = `${path}.settingsData[${index}].values[${propIndex}](${prop.alias})`;\n\n // Check for RichText blocks structure (nested RTE inside blocks)\n if (isRichTextValue(prop.value)) {\n const nestedResults = discoverAllBlockArrays(prop.value.blocks, `${propPath}.blocks`);\n results.push(...nestedResults);\n }\n // Check for direct nested block structures (BlockList/BlockGrid nested inside blocks)\n else if (isBlockStructure(prop.value)) {\n const nestedResults = discoverAllBlockArrays(prop.value, propPath);\n results.push(...nestedResults);\n }\n });\n }\n });\n }\n\n return results;\n}\n\n/**\n * Find a block by contentKey across all discovered block arrays.\n *\n * @param discoveredArrays - Array of discovered block structures\n * @param contentKey - The UUID key identifying the block\n * @param blockType - Whether to search in \"content\" or \"settings\" data\n * @returns The found block with its array reference and path, or null if not found\n */\nexport function findBlockByKey(\n discoveredArrays: DiscoveredBlockArrays[],\n contentKey: string,\n blockType: \"content\" | \"settings\"\n): FoundBlock | null {\n for (const discovered of discoveredArrays) {\n const array = blockType === \"content\" ? discovered.contentData : discovered.settingsData;\n const block = array.find((b: BlockDataItem) => b.key === contentKey);\n if (block) {\n return { block, arrayRef: array, path: discovered.path };\n }\n }\n return null;\n}\n","import { getTreeDocumentRootQueryParams, getTreeDocumentRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentRootTool = {\n name: \"get-document-root\",\n description: \"Gets root items for documents.\",\n inputSchema: getTreeDocumentRootQueryParams.shape,\n outputSchema: getTreeDocumentRootResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: z.infer<typeof getTreeDocumentRootQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentRootQueryParams.shape, typeof getTreeDocumentRootResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentRootTool);\n","import { getTreeDocumentChildrenQueryParams, getTreeDocumentChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentChildrenTool = {\n name: \"get-document-children\",\n description: \"Gets child items for a document.\",\n inputSchema: getTreeDocumentChildrenQueryParams.shape,\n outputSchema: getTreeDocumentChildrenResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: z.infer<typeof getTreeDocumentChildrenQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentChildrenQueryParams.shape, typeof getTreeDocumentChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentChildrenTool);\n","import { getTreeDocumentAncestorsQueryParams, getTreeDocumentAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDocumentAncestorsResponse,\n});\n\nconst GetDocumentAncestorsTool = {\n name: \"get-document-ancestors\",\n description: \"Gets ancestor items for a document.\",\n inputSchema: getTreeDocumentAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: z.infer<typeof getTreeDocumentAncestorsQueryParams>) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeDocumentAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentAncestorsTool);\n","import { getTreeDocumentSiblingsQueryParams, getTreeDocumentSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentSiblingsTool = {\n name: \"get-document-siblings\",\n description: \"Gets sibling documents for a given descendant id\",\n inputSchema: getTreeDocumentSiblingsQueryParams.shape,\n outputSchema: getTreeDocumentSiblingsResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: z.infer<typeof getTreeDocumentSiblingsQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentSiblingsQueryParams.shape, typeof getTreeDocumentSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentSiblingsTool);\n","import { getRecycleBinDocumentRootQueryParams, getRecycleBinDocumentRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinDocumentRootTool = {\n name: \"get-recycle-bin-document-root\",\n description: \"Gets root items for the document recycle bin.\",\n inputSchema: getRecycleBinDocumentRootQueryParams.shape,\n outputSchema: getRecycleBinDocumentRootResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree', 'recycle-bin'],\n handler: (async (params: z.infer<typeof getRecycleBinDocumentRootQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinDocumentRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinDocumentRootQueryParams.shape, typeof getRecycleBinDocumentRootResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinDocumentRootTool);\n","import { getRecycleBinDocumentChildrenQueryParams, getRecycleBinDocumentChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinDocumentChildrenTool = {\n name: \"get-recycle-bin-document-children\",\n description: \"Gets child items for a document in the recycle bin.\",\n inputSchema: getRecycleBinDocumentChildrenQueryParams.shape,\n outputSchema: getRecycleBinDocumentChildrenResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree', 'recycle-bin'],\n handler: (async (params: z.infer<typeof getRecycleBinDocumentChildrenQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinDocumentChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinDocumentChildrenQueryParams.shape, typeof getRecycleBinDocumentChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinDocumentChildrenTool);\n","import { getRecycleBinDocumentSiblingsQueryParams, getRecycleBinDocumentSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentRecycleBinSiblingsTool = {\n name: \"get-document-recycle-bin-siblings\",\n description: \"Gets sibling documents in the recycle bin for a given descendant id\",\n inputSchema: getRecycleBinDocumentSiblingsQueryParams.shape,\n outputSchema: getRecycleBinDocumentSiblingsResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree', 'recycle-bin'],\n handler: (async (params: z.infer<typeof getRecycleBinDocumentSiblingsQueryParams>) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinDocumentSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinDocumentSiblingsQueryParams.shape, typeof getRecycleBinDocumentSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentRecycleBinSiblingsTool);\n","import DeleteDocumentTool from \"./delete/delete-document.js\";\nimport DeleteFromRecycleBinTool from \"./delete/delete-from-recycle-bin.js\";\nimport DeleteDocumentPublicAccessTool from \"./delete/delete-document-public-access.js\";\nimport DeleteDocumentRecycleBinItemTool from \"./delete/delete-recycle-bin-item.js\";\nimport GetDocumentByIdTool from \"./get/get-document-by-id.js\";\nimport GetDocumentDomainsTool from \"./get/get-document-domains.js\";\nimport GetDocumentNotificationsTool from \"./get/get-document-notifications.js\";\nimport GetDocumentPublicAccessTool from \"./get/get-document-public-access.js\";\nimport GetDocumentAuditLogTool from \"./get/get-document-audit-log.js\";\nimport GetDocumentPublishTool from \"./get/get-document-publish.js\";\nimport GetDocumentConfigurationTool from \"./get/get-document-configuration.js\";\nimport GetDocumentUrlsTool from \"./get/get-document-urls.js\";\nimport GetDocumentPropertyValueTemplateTool from \"./get/get-document-property-value-template.js\";\nimport SearchDocumentTool from \"./get/search-document.js\";\nimport GetCollectionDocumentByIdTool from \"./get/get-collection-document-by-id.js\";\nimport GetItemDocumentTool from \"./get/get-item-document.js\";\nimport GetDocumentAreReferencedTool from \"./get/get-document-are-referenced.js\";\nimport GetDocumentByIdReferencedByTool from \"./get/get-document-by-id-referenced-by.js\";\nimport GetDocumentByIdReferencedDescendantsTool from \"./get/get-document-by-id-referenced-descendants.js\";\nimport GetDocumentAvailableSegmentOptionsTool from \"./get/get-document-available-segment-options.js\";\nimport GetRecycleBinDocumentOriginalParentTool from \"./get/get-recycle-bin-document-original-parent.js\";\nimport GetRecycleBinDocumentReferencedByTool from \"./get/get-recycle-bin-document-referenced-by.js\";\nimport PostDocumentPublicAccessTool from \"./post/post-document-public-access.js\";\nimport ValidateDocumentTool from \"./post/validate-document.js\";\nimport CopyDocumentTool from \"./post/copy-document.js\";\nimport CreateDocumentTool from \"./post/create-document.js\";\nimport PutDocumentPublicAccessTool from \"./put/put-document-public-access.js\";\nimport PutDocumentDomainsTool from \"./put/put-document-domains.js\";\nimport PutDocumentNotificationsTool from \"./put/put-document-notifications.js\";\nimport PublishDocumentWithDescendantsTool from \"./put/publish-document-with-descendants.js\";\nimport UnpublishDocumentTool from \"./put/unpublish-document.js\";\nimport SortDocumentTool from \"./put/sort-document.js\";\nimport MoveDocumentTool from \"./put/move-document.js\";\nimport PublishDocumentTool from \"./put/publish-document.js\";\nimport EmptyRecycleBinTool from \"./put/empty-recycle-bin.js\";\nimport RestoreFromRecycleBinTool from \"./put/restore-from-recycle-bin.js\";\nimport MoveToRecycleBinTool from \"./put/move-to-recycle-bin.js\";\nimport UpdateDocumentTool from \"./put/update-document.js\";\nimport UpdateDocumentPropertiesTool from \"./put/update-document-properties.js\";\nimport UpdateBlockPropertyTool from \"./put/update-block-property.js\";\nimport GetDocumentRootTool from \"./items/get/get-root.js\";\nimport GetDocumentChildrenTool from \"./items/get/get-children.js\";\nimport GetDocumentAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetDocumentSiblingsTool from \"./items/get/get-siblings.js\";\nimport GetRecycleBinRootTool from \"./items/get/get-recycle-bin-root.js\";\nimport GetRecycleBinChildrenTool from \"./items/get/get-recycle-bin-children.js\";\nimport GetDocumentRecycleBinSiblingsTool from \"./items/get/get-recycle-bin-siblings.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const DocumentCollection: ToolCollectionExport = {\n metadata: {\n name: 'document',\n displayName: 'Documents',\n description: 'Document content management and publishing',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessDocuments(user)) {\n tools.push(GetDocumentByIdTool);\n tools.push(GetDocumentPublishTool);\n tools.push(GetDocumentConfigurationTool);\n tools.push(GetDocumentPropertyValueTemplateTool);\n tools.push(CopyDocumentTool);\n tools.push(CreateDocumentTool);\n tools.push(PostDocumentPublicAccessTool);\n tools.push(DeleteDocumentTool);\n tools.push(DeleteDocumentPublicAccessTool);\n tools.push(DeleteDocumentRecycleBinItemTool);\n tools.push(GetDocumentUrlsTool);\n tools.push(GetDocumentDomainsTool);\n tools.push(GetDocumentAuditLogTool);\n tools.push(GetDocumentPublicAccessTool);\n tools.push(MoveDocumentTool);\n tools.push(MoveToRecycleBinTool);\n tools.push(GetDocumentNotificationsTool);\n tools.push(PublishDocumentTool);\n tools.push(PublishDocumentWithDescendantsTool);\n tools.push(SortDocumentTool);\n tools.push(UnpublishDocumentTool);\n tools.push(UpdateDocumentTool);\n tools.push(UpdateDocumentPropertiesTool);\n tools.push(UpdateBlockPropertyTool);\n tools.push(PutDocumentDomainsTool);\n tools.push(PutDocumentNotificationsTool);\n tools.push(PutDocumentPublicAccessTool);\n tools.push(DeleteFromRecycleBinTool);\n tools.push(EmptyRecycleBinTool);\n tools.push(RestoreFromRecycleBinTool);\n tools.push(GetRecycleBinRootTool);\n tools.push(GetRecycleBinChildrenTool);\n tools.push(SearchDocumentTool);\n tools.push(ValidateDocumentTool);\n tools.push(GetCollectionDocumentByIdTool);\n tools.push(GetItemDocumentTool);\n tools.push(GetDocumentAreReferencedTool);\n tools.push(GetDocumentByIdReferencedByTool);\n tools.push(GetDocumentByIdReferencedDescendantsTool);\n tools.push(GetDocumentAvailableSegmentOptionsTool);\n tools.push(GetRecycleBinDocumentOriginalParentTool);\n tools.push(GetRecycleBinDocumentReferencedByTool);\n }\n\n if (AuthorizationPolicies.SectionAccessForContentTree(user)) {\n tools.push(GetDocumentRootTool);\n tools.push(GetDocumentChildrenTool);\n tools.push(GetDocumentAncestorsTool);\n tools.push(GetDocumentSiblingsTool);\n tools.push(GetDocumentRecycleBinSiblingsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const DocumentTools = (user: CurrentUserResponseModel) => {\n return DocumentCollection.tools(user);\n};","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n createContainerHierarchy,\n} from \"./helpers/create-container-hierarchy.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Flattened schema - prevents LLM JSON stringification of parent object\nconst createDocumentTypeSchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n alias: z.string().min(1, \"Alias is required\"),\n description: z.string().optional(),\n icon: z.string().min(1, \"Icon is required\"),\n allowedAsRoot: z.boolean().default(false),\n parentId: z.string().uuid().optional(),\n compositions: z\n .array(z.string().uuid(\"Must be a valid document type UUID\"))\n .default([]),\n allowedDocumentTypes: z\n .array(z.string().uuid(\"Must be a valid document type UUID\"))\n .default([]),\n collection: z\n .string()\n .uuid(\"Must be a valid collection data type UUID\")\n .optional(),\n properties: z\n .array(\n z.object({\n name: z.string().min(1, \"Property name is required\"),\n alias: z.string().min(1, \"Property alias is required\"),\n dataTypeId: z.string().uuid(\"Must be a valid data type UUID\"),\n tab: z.string().optional(),\n group: z.string().optional(),\n }).refine(\n (data) => data.tab || data.group,\n {\n message: \"Property must specify either 'tab' or 'group' (or both) to appear in Umbraco UI. Properties without a container are invisible.\",\n path: [\"tab\"]\n }\n )\n )\n .default([]),\n});\n\ntype CreateDocumentTypeModel = z.infer<typeof createDocumentTypeSchema>;\n\nexport type { CreateDocumentTypeModel };\n\nexport const createDocumentTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateDocumentTypeTool = {\n name: \"create-document-type\",\n description: `Creates a new document type in Umbraco.\n\nIMPORTANT: IMPLEMENTATION REQUIREMENTS\n\n1. ALWAYS use the get-icons tool to find a valid icon name\n2. When referencing data types, first find them using find-data-type to get their correct IDs\n3. When adding compositions or allowed document types, first use get-document-type-root to find the actual IDs\n4. The tool will automatically generate UUIDs for properties and containers\n5. Document types can be created in folders by specifying a parentId, or at the root level by omitting the parentId\n6. Do not try to add templates to document types they are not currently supported\n7. Property container structure:\n - Properties MUST specify either a 'tab' or 'group' (or both) to appear in Umbraco UI\n - Property with only tab: appears directly in the tab\n - Property with only group: appears in the group (group has no parent tab)\n - Property with both tab and group: group is nested inside the tab, property appears in the group\n - The tool will automatically create the container hierarchy`,\n inputSchema: createDocumentTypeSchema.shape,\n outputSchema: createDocumentTypeOutputSchema.shape,\n slices: ['create'],\n handler: (async (rawModel: CreateDocumentTypeModel) => {\n // Validate the model with the schema (including refine rules)\n const model = createDocumentTypeSchema.parse(rawModel);\n\n // Generate UUIDs for the document type and its components\n const documentTypeId = uuidv4();\n\n // Create the container hierarchy\n const { containers, containerIds } = createContainerHierarchy(\n model.properties\n );\n\n // Create properties with their container references\n const properties = model.properties.map((prop, index) => {\n // Determine which container to use\n let containerId: string | undefined;\n if (prop.group) {\n // Use composite key for group lookup\n const key = `${prop.tab || 'NO_TAB'}::${prop.group}`;\n containerId = containerIds.get(key);\n } else if (prop.tab) {\n containerId = containerIds.get(prop.tab);\n }\n\n return {\n id: uuidv4(),\n name: prop.name,\n alias: prop.alias,\n dataType: {\n id: prop.dataTypeId,\n },\n sortOrder: index,\n appearance: {\n labelOnTop: false,\n },\n validation: {\n regEx: null,\n mandatory: false,\n regExMessage: null,\n mandatoryMessage: null,\n },\n variesByCulture: false,\n variesBySegment: false,\n container: containerId ? { id: containerId } : undefined,\n };\n });\n\n // Create the document type payload\n const payload = {\n id: documentTypeId,\n icon: model.icon,\n name: model.name,\n alias: model.alias,\n description: model.description || \"\",\n cleanup: {\n preventCleanup: false,\n },\n isElement: false,\n containers,\n properties,\n compositions: model.compositions.map((id) => ({\n documentType: { id },\n compositionType: \"Composition\" as const,\n })),\n allowedAsRoot: model.allowedAsRoot,\n variesByCulture: false,\n variesBySegment: false,\n allowedTemplates: [],\n allowedDocumentTypes: model.allowedDocumentTypes.map((id, index) => ({\n documentType: { id },\n sortOrder: index,\n })),\n collection: model.collection ? { id: model.collection } : undefined,\n parent: model.parentId ? { id: model.parentId } : undefined,\n };\n\n const client = UmbracoManagementClient.getClient();\n const response = await client.postDocumentType(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n const output = {\n message: \"Document type created successfully\",\n id: documentTypeId\n };\n return createToolResult(output);\n } else {\n // Handle error - Umbraco API returns ProblemDetails as structured data\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createDocumentTypeSchema.shape, typeof createDocumentTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateDocumentTypeTool);\n","import { v4 as uuidv4 } from 'uuid';\nimport { z } from 'zod';\n\n// Define the property schema that this helper expects\nconst propertySchema = z.object({\n name: z.string().min(1, \"Property name is required\"),\n alias: z.string().min(1, \"Property alias is required\"),\n dataTypeId: z.string().uuid(\"Must be a valid UUID\"),\n tab: z.string().optional(),\n group: z.string().optional()\n});\n\nexport type Property = z.infer<typeof propertySchema>;\n\nexport interface Container {\n id: string;\n name: string;\n type: \"Tab\" | \"Group\";\n parent: { id: string } | null;\n sortOrder: number;\n}\n\ninterface ContainerCreationResult {\n containers: Container[];\n containerIds: Map<string, string>;\n}\n\n/**\n * Creates the container hierarchy for an element type based on property tab and group assignments.\n * Uses composite keys (tab::group) to support same group name in different tabs.\n * @param properties The properties array from the element type model\n * @returns An object containing the containers array and a map of container names/keys to their IDs\n */\nexport function createContainerHierarchy(properties: Property[]): ContainerCreationResult {\n const containerIds = new Map<string, string>();\n\n // Collect unique tabs\n const tabs = new Set<string>();\n properties.forEach(prop => {\n if (prop.tab) tabs.add(prop.tab);\n });\n\n // Collect unique tab+group combinations (not just group names)\n interface GroupKey {\n groupName: string;\n tabName: string | undefined;\n }\n\n const groupKeys = new Map<string, GroupKey>();\n properties.forEach(prop => {\n if (prop.group) {\n // Create unique key for this tab+group combination\n const key = `${prop.tab || 'NO_TAB'}::${prop.group}`;\n if (!groupKeys.has(key)) {\n groupKeys.set(key, {\n groupName: prop.group,\n tabName: prop.tab\n });\n }\n }\n });\n\n // Create tab containers first\n const containers: Container[] = Array.from(tabs).map((tabName, index) => {\n const id = uuidv4();\n containerIds.set(tabName, id);\n return {\n id,\n name: tabName,\n type: \"Tab\" as const,\n parent: null,\n sortOrder: index\n };\n });\n\n // Create group containers with unique IDs per tab+group combination\n const groupContainers = Array.from(groupKeys.entries()).map(([key, groupKey], index) => {\n const id = uuidv4();\n containerIds.set(key, id); // Store by composite key\n return {\n id,\n name: groupKey.groupName,\n type: \"Group\" as const,\n parent: groupKey.tabName ? { id: containerIds.get(groupKey.tabName)! } : null,\n sortOrder: index\n };\n });\n\n containers.push(...groupContainers);\n\n return { containers, containerIds };\n} ","import { deleteDocumentTypeByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentTypeTool = {\n name: \"delete-document-type\",\n description: \"Deletes a document type by Id\",\n inputSchema: deleteDocumentTypeByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentTypeByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentTypeTool);\n","import { getDocumentTypeByIdParams, getDocumentTypeByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeByIdTool = {\n name: \"get-document-type-by-id\",\n description: \"Gets a document type by id\",\n inputSchema: getDocumentTypeByIdParams.shape,\n outputSchema: getDocumentTypeByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentTypeByIdParams.shape, typeof getDocumentTypeByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeByIdTool);\n","import { UpdateDocumentTypeRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putDocumentTypeByIdParams,\n putDocumentTypeByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDocumentTypeSchema = {\n id: putDocumentTypeByIdParams.shape.id,\n data: z.object(putDocumentTypeByIdBody.shape),\n};\n\nconst UpdateDocumentTypeTool = {\n name: \"update-document-type\",\n description: \"Updates a document type by Id\",\n inputSchema: updateDocumentTypeSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateDocumentTypeRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentTypeById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDocumentTypeSchema>;\n\nexport default withStandardDecorators(UpdateDocumentTypeTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CopyDocumentTypeRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport {\n postDocumentTypeByIdCopyParams,\n postDocumentTypeByIdCopyBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst copyDocumentTypeSchema = {\n id: postDocumentTypeByIdCopyParams.shape.id,\n data: z.object(postDocumentTypeByIdCopyBody.shape),\n};\n\nexport const copyDocumentTypeOutputSchema = z.object({\n id: z.string().uuid()\n});\n\nconst CopyDocumentTypeTool = {\n name: \"copy-document-type\",\n description: \"Copy a document type to a new location. Returns the new document type's ID on success.\",\n inputSchema: copyDocumentTypeSchema,\n outputSchema: copyDocumentTypeOutputSchema.shape,\n slices: ['copy'],\n handler: (async (model: { id: string; data: CopyDocumentTypeRequestModel }) => {\n const client = UmbracoManagementClient.getClient();\n\n const response = await client.postDocumentTypeByIdCopy(model.id, model.data, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract new ID from Location header: /umbraco/management/api/v1/document-type/{guid}\n const location = response.headers?.location || '';\n const newId = location.split('/').pop() || '';\n\n const output = { id: newId };\n return createToolResult(output);\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof copyDocumentTypeSchema, typeof copyDocumentTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CopyDocumentTypeTool);\n","import { MoveDocumentTypeRequestModel } from \"@/umb-management-api/schemas/moveDocumentTypeRequestModel.js\";\nimport {\n putDocumentTypeByIdMoveParams,\n putDocumentTypeByIdMoveBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst moveDocumentTypeSchema = {\n id: putDocumentTypeByIdMoveParams.shape.id,\n data: z.object(putDocumentTypeByIdMoveBody.shape),\n};\n\nconst MoveDocumentTypeTool = {\n name: \"move-document-type\",\n description: \"Move a document type to a new location\",\n inputSchema: moveDocumentTypeSchema,\n slices: ['move'],\n handler: (async (model: { id: string; data: MoveDocumentTypeRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentTypeByIdMove(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof moveDocumentTypeSchema>;\n\nexport default withStandardDecorators(MoveDocumentTypeTool);\n","import { GetTreeDocumentTypeRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentTypeRootQueryParams, getTreeDocumentTypeRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeRootTool = {\n name: \"get-document-type-root\",\n description: \"Gets the root level of the document type tree. Use get-all-document-types instead unless you specifically need only root level items.\",\n inputSchema: getTreeDocumentTypeRootQueryParams.shape,\n outputSchema: getTreeDocumentTypeRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentTypeRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentTypeRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentTypeRootQueryParams.shape, typeof getTreeDocumentTypeRootResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeRootTool);\n","import { GetTreeDocumentTypeChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentTypeChildrenQueryParams, getTreeDocumentTypeChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeChildrenTool = {\n name: \"get-document-type-children\",\n description: \"Gets the children of a document type. Use get-all-document-types instead unless you specifically need only child level items for a specific folder.\",\n inputSchema: getTreeDocumentTypeChildrenQueryParams.shape,\n outputSchema: getTreeDocumentTypeChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentTypeChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentTypeChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentTypeChildrenQueryParams.shape, typeof getTreeDocumentTypeChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeChildrenTool);\n","import { GetTreeDocumentTypeAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentTypeAncestorsQueryParams, getTreeDocumentTypeAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDocumentTypeAncestorsResponse,\n});\n\nconst GetDocumentTypeAncestorsTool = {\n name: \"get-document-type-ancestors\",\n description: \"Gets the ancestors of a document type\",\n inputSchema: getTreeDocumentTypeAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentTypeAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeDocumentTypeAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentTypeAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeAncestorsTool);\n","import { GetTreeDocumentTypeSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeDocumentTypeSiblingsQueryParams, getTreeDocumentTypeSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeSiblingsTool = {\n name: \"get-document-type-siblings\",\n description: \"Gets sibling document types or document type folders for a given descendant id\",\n inputSchema: getTreeDocumentTypeSiblingsQueryParams.shape,\n outputSchema: getTreeDocumentTypeSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeDocumentTypeSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeDocumentTypeSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeDocumentTypeSiblingsQueryParams.shape, typeof getTreeDocumentTypeSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeSiblingsTool);\n","import { CreateFolderRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { postDocumentTypeFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst CreateDocumentTypeFolderTool = {\n name: \"create-document-type-folder\",\n description: \"Creates a new document type folder\",\n inputSchema: postDocumentTypeFolderBody.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateFolderRequestModel) => {\n return executeVoidApiCall((client) =>\n client.postDocumentTypeFolder(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postDocumentTypeFolderBody.shape>;\n\nexport default withStandardDecorators(CreateDocumentTypeFolderTool);\n","import { deleteDocumentTypeFolderByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteDocumentTypeFolderTool = {\n name: \"delete-document-type-folder\",\n description: \"Deletes a document type folder by Id\",\n inputSchema: deleteDocumentTypeFolderByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteDocumentTypeFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteDocumentTypeFolderByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteDocumentTypeFolderTool);\n","import { getDocumentTypeFolderByIdParams, getDocumentTypeFolderByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeFolderTool = {\n name: \"get-document-type-folder\",\n description: \"Gets a document type folder by Id\",\n inputSchema: getDocumentTypeFolderByIdParams.shape,\n outputSchema: getDocumentTypeFolderByIdResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentTypeFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentTypeFolderByIdParams.shape, typeof getDocumentTypeFolderByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeFolderTool);\n","import {\n putDocumentTypeFolderByIdParams,\n putDocumentTypeFolderByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateDocumentTypeFolderSchema = {\n id: putDocumentTypeFolderByIdParams.shape.id,\n data: z.object(putDocumentTypeFolderByIdBody.shape),\n};\n\nconst UpdateDocumentTypeFolderTool = {\n name: \"update-document-type-folder\",\n description: \"Updates a document type folder by Id\",\n inputSchema: updateDocumentTypeFolderSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update', 'folders'],\n handler: (async (model: { id: string; data: { name: string } }) => {\n return executeVoidApiCall((client) =>\n client.putDocumentTypeFolderById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDocumentTypeFolderSchema>;\n\nexport default withStandardDecorators(UpdateDocumentTypeFolderTool);\n","import { getDocumentTypeByIdBlueprintParams, getDocumentTypeByIdBlueprintResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeBlueprintTool = {\n name: \"get-document-type-blueprint\",\n description: \"Gets the blueprints for a document type\",\n inputSchema: getDocumentTypeByIdBlueprintParams.shape,\n outputSchema: getDocumentTypeByIdBlueprintResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['blueprints'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentTypeByIdBlueprint(id, {}, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentTypeByIdBlueprintParams.shape, typeof getDocumentTypeByIdBlueprintResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeBlueprintTool);\n","import { getDocumentTypeByIdCompositionReferencesParams, getDocumentTypeByIdCompositionReferencesResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getDocumentTypeByIdCompositionReferencesResponse,\n});\n\nconst GetDocumentTypeCompositionReferencesTool = {\n name: \"get-document-type-composition-references\",\n description: \"Gets the composition references for a document type\",\n inputSchema: getDocumentTypeByIdCompositionReferencesParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetItemsApiCall((client) =>\n client.getDocumentTypeByIdCompositionReferences(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentTypeByIdCompositionReferencesParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeCompositionReferencesTool);\n","import { postDocumentTypeAvailableCompositionsBody, postDocumentTypeAvailableCompositionsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\ntype SchemaParams = z.infer<typeof postDocumentTypeAvailableCompositionsBody>;\n\nconst outputSchema = z.object({\n items: postDocumentTypeAvailableCompositionsResponse,\n});\n\nconst GetDocumentTypeAvailableCompositionsTool = {\n name: \"get-document-type-available-compositions\",\n description: \"Gets the available compositions for a document type\",\n inputSchema: postDocumentTypeAvailableCompositionsBody.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (model: SchemaParams) => {\n return executeGetItemsApiCall((client) =>\n client.postDocumentTypeAvailableCompositions(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postDocumentTypeAvailableCompositionsBody.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeAvailableCompositionsTool);\n","import {\n getDocumentTypeByIdAllowedChildrenParams,\n getDocumentTypeByIdAllowedChildrenQueryParams,\n getDocumentTypeByIdAllowedChildrenResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Combine both parameter schemas\nconst paramSchema = getDocumentTypeByIdAllowedChildrenParams.merge(\n getDocumentTypeByIdAllowedChildrenQueryParams\n);\n\nconst GetDocumentTypeAllowedChildrenTool = {\n name: \"get-document-type-allowed-children\",\n description: \"Gets the document types that are allowed as children of a document type\",\n inputSchema: paramSchema.shape,\n outputSchema: getDocumentTypeByIdAllowedChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async (model: { id: string; skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getDocumentTypeByIdAllowedChildren(model.id, {\n skip: model.skip,\n take: model.take,\n }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof paramSchema.shape, typeof getDocumentTypeByIdAllowedChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeAllowedChildrenTool);\n","import { getDocumentTypeConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentTypeConfigurationTool = {\n name: \"get-document-type-configuration\",\n description: \"Gets the global configuration for document types\",\n inputSchema: {},\n outputSchema: getDocumentTypeConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getDocumentTypeConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getDocumentTypeConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentTypeConfigurationTool);\n","import { getItemDocumentTypeQueryParams, getItemDocumentTypeResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemDocumentTypeParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemDocumentTypeResponse,\n});\n\nconst GetDocumentTypesByIdArrayTool = {\n name: \"get-document-types-by-id-array\",\n description: \"Gets document types by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemDocumentTypeQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetItemDocumentTypeParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemDocumentType(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemDocumentTypeQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetDocumentTypesByIdArrayTool);\n","import { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n//TODO: This really should be an endpoint\n\nconst getIconsOutputSchema = z.object({\n icons: z.array(z.string())\n});\n\nconst GetIconsTool = {\n name: \"get-icons\",\n description: \"Returns a list of all available Umbraco icons that can be used in document types and element types\",\n inputSchema: {},\n outputSchema: getIconsOutputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async () => {\n const icons = [\n \"icon-activity\",\n \"icon-add\",\n \"icon-addressbook\",\n \"icon-alarm-clock\",\n \"icon-alert-alt\",\n \"icon-alert\",\n \"icon-alt\",\n \"icon-anchor\",\n \"icon-app\",\n \"icon-application-error\",\n \"icon-application-window-alt\",\n \"icon-application-window\",\n \"icon-arrivals\",\n \"icon-arrow-down\",\n \"icon-arrow-left\",\n \"icon-arrow-right\",\n \"icon-arrow-up\",\n \"icon-attachment\",\n \"icon-audio-lines\",\n \"icon-autofill\",\n \"icon-award\",\n \"icon-axis-rotation-2\",\n \"icon-axis-rotation-3\",\n \"icon-axis-rotation\",\n \"icon-backspace\",\n \"icon-badge-add\",\n \"icon-badge-remove\",\n \"icon-ball\",\n \"icon-bar-chart\",\n \"icon-barcode\",\n \"icon-bars\",\n \"icon-battery-full\",\n \"icon-battery-low\",\n \"icon-beer-glass\",\n \"icon-bell-off\",\n \"icon-bell\",\n \"icon-binarycode\",\n \"icon-bird\",\n \"icon-birthday-cake\",\n \"icon-block\",\n \"icon-blockquote\",\n \"icon-bluetooth\",\n \"icon-boat-shipping\",\n \"icon-bold\",\n \"icon-bones\",\n \"icon-book-alt-2\",\n \"icon-book-alt\",\n \"icon-book\",\n \"icon-bookmark\",\n \"icon-books\",\n \"icon-box-alt\",\n \"icon-box-open\",\n \"icon-box\",\n \"icon-brackets\",\n \"icon-brick\",\n \"icon-briefcase\",\n \"icon-browser-window\",\n \"icon-brush-alt-2\",\n \"icon-brush-alt\",\n \"icon-brush\",\n \"icon-bug\",\n \"icon-bulleted-list\",\n \"icon-burn\",\n \"icon-bus\",\n \"icon-calculator\",\n \"icon-calendar-alt\",\n \"icon-calendar\",\n \"icon-camera-roll\",\n \"icon-candy\",\n \"icon-caps-lock\",\n \"icon-car\",\n \"icon-categories\",\n \"icon-certificate\",\n \"icon-chart-curve\",\n \"icon-chart\",\n \"icon-chat\",\n \"icon-check\",\n \"icon-checkbox-dotted\",\n \"icon-checkbox\",\n \"icon-chip\",\n \"icon-cinema\",\n \"icon-circle-dotted-active\",\n \"icon-circle-dotted\",\n \"icon-circuits\",\n \"icon-clear-formatting\",\n \"icon-clipboard\",\n \"icon-clipboard-copy\",\n \"icon-clipboard-entry\",\n \"icon-clipboard-paste\",\n \"icon-cloud-drive\",\n \"icon-cloud-upload\",\n \"icon-cloud\",\n \"icon-cloudy\",\n \"icon-clubs\",\n \"icon-cocktail\",\n \"icon-code\",\n \"icon-code-xml\",\n \"icon-coffee\",\n \"icon-coin-dollar\",\n \"icon-coin-euro\",\n \"icon-coin-pound\",\n \"icon-coin-yen\",\n \"icon-coins\",\n \"icon-color-bucket\",\n \"icon-colorpicker\",\n \"icon-columns\",\n \"icon-combination-lock-open\",\n \"icon-combination-lock\",\n \"icon-command\",\n \"icon-company\",\n \"icon-compress\",\n \"icon-connection\",\n \"icon-console\",\n \"icon-contrast\",\n \"icon-conversation-alt\",\n \"icon-coverflow\",\n \"icon-credit-card\",\n \"icon-crop\",\n \"icon-crosshair\",\n \"icon-crown\",\n \"icon-curve\",\n \"icon-cut\",\n \"icon-dashboard\",\n \"icon-defrag\",\n \"icon-delete-key\",\n \"icon-delete\",\n \"icon-departure\",\n \"icon-diagnostics\",\n \"icon-diagonal-arrow-alt\",\n \"icon-diagonal-arrow\",\n \"icon-diamond\",\n \"icon-diamonds\",\n \"icon-dice\",\n \"icon-diploma\",\n \"icon-directions-alt\",\n \"icon-directions\",\n \"icon-disc\",\n \"icon-disk-image\",\n \"icon-display\",\n \"icon-dna\",\n \"icon-dock-connector\",\n \"icon-document\",\n \"icon-documents\",\n \"icon-door-open\",\n \"icon-download-alt\",\n \"icon-download\",\n \"icon-drop\",\n \"icon-eco\",\n \"icon-edit\",\n \"icon-embed\",\n \"icon-energy-saving-bulb\",\n \"icon-enter\",\n \"icon-equalizer\",\n \"icon-escape\",\n \"icon-ethernet\",\n \"icon-eye\",\n \"icon-exit-fullscreen\",\n \"icon-facebook-like\",\n \"icon-factory\",\n \"icon-favorite\",\n \"icon-file-cabinet\",\n \"icon-files\",\n \"icon-filter-arrows\",\n \"icon-filter\",\n \"icon-fingerprint\",\n \"icon-fire\",\n \"icon-flag-alt\",\n \"icon-flag\",\n \"icon-flash\",\n \"icon-flashlight\",\n \"icon-flowerpot\",\n \"icon-folder\",\n \"icon-folders\",\n \"icon-font\",\n \"icon-food\",\n \"icon-footprints\",\n \"icon-forking\",\n \"icon-frame\",\n \"icon-fullscreen-alt\",\n \"icon-fullscreen\",\n \"icon-game\",\n \"icon-gift\",\n \"icon-glasses\",\n \"icon-globe-alt\",\n \"icon-globe\",\n \"icon-gps\",\n \"icon-graduate\",\n \"icon-grid\",\n \"icon-hammer\",\n \"icon-hand-active\",\n \"icon-hand-pointer\",\n \"icon-handshake\",\n \"icon-handtool\",\n \"icon-heading-1\",\n \"icon-heading-2\",\n \"icon-heading-3\",\n \"icon-headphones\",\n \"icon-hearts\",\n \"icon-height\",\n \"icon-help-alt\",\n \"icon-help\",\n \"icon-history\",\n \"icon-home\",\n \"icon-horizontal-rule\",\n \"icon-hourglass\",\n \"icon-image-up\",\n \"icon-inbox\",\n \"icon-indent\",\n \"icon-infinity\",\n \"icon-info\",\n \"icon-italic\",\n \"icon-junk\",\n \"icon-key\",\n \"icon-keyboard\",\n \"icon-lab\",\n \"icon-laptop\",\n \"icon-layers\",\n \"icon-layout\",\n \"icon-left-double-arrow\",\n \"icon-legal\",\n \"icon-library\",\n \"icon-light-down\",\n \"icon-light-up\",\n \"icon-lightbulb-active\",\n \"icon-lightning\",\n \"icon-link\",\n \"icon-list\",\n \"icon-locate\",\n \"icon-location-nearby\",\n \"icon-lock\",\n \"icon-log-out\",\n \"icon-magnet\",\n \"icon-mailbox\",\n \"icon-map-alt\",\n \"icon-map-marker\",\n \"icon-map\",\n \"icon-medal\",\n \"icon-medical-emergency\",\n \"icon-medicine\",\n \"icon-megaphone\",\n \"icon-merge\",\n \"icon-message-open\",\n \"icon-message\",\n \"icon-microscope\",\n \"icon-mobile\",\n \"icon-mountain\",\n \"icon-mouse-cursor\",\n \"icon-mouse\",\n \"icon-movie-alt\",\n \"icon-movie\",\n \"icon-multiple-credit-cards\",\n \"icon-multiple-windows\",\n \"icon-music\",\n \"icon-navigational-arrow\",\n \"icon-network-alt\",\n \"icon-newspaper\",\n \"icon-notepad\",\n \"icon-old-key\",\n \"icon-operator\",\n \"icon-ordered-list\",\n \"icon-origami\",\n \"icon-out\",\n \"icon-outdent\",\n \"icon-page-add\",\n \"icon-page-down\",\n \"icon-page-remove\",\n \"icon-page-restricted\",\n \"icon-page-up\",\n \"icon-palette\",\n \"icon-panel-show\",\n \"icon-pannel-close\",\n \"icon-paper-plane-alt\",\n \"icon-paper-plane\",\n \"icon-partly-cloudy\",\n \"icon-pause\",\n \"icon-people\",\n \"icon-phone-ring\",\n \"icon-phone\",\n \"icon-photo-album\",\n \"icon-picture\",\n \"icon-pictures-alt-2\",\n \"icon-pictures\",\n \"icon-pie-chart\",\n \"icon-piggy-bank\",\n \"icon-pin-location\",\n \"icon-plane\",\n \"icon-play\",\n \"icon-playlist\",\n \"icon-plugin\",\n \"icon-podcast\",\n \"icon-post-it\",\n \"icon-power\",\n \"icon-presentation\",\n \"icon-previous-media\",\n \"icon-previous\",\n \"icon-print\",\n \"icon-projector\",\n \"icon-pulse\",\n \"icon-pushpin\",\n \"icon-qr-code\",\n \"icon-quote\",\n \"icon-radio-alt\",\n \"icon-radio-receiver\",\n \"icon-radio\",\n \"icon-rain\",\n \"icon-re-post\",\n \"icon-readonly\",\n \"icon-receipt-alt\",\n \"icon-reception\",\n \"icon-rectangle-ellipsis\",\n \"icon-redo\",\n \"icon-refresh\",\n \"icon-remove\",\n \"icon-repeat-one\",\n \"icon-repeat\",\n \"icon-reply-arrow\",\n \"icon-resize\",\n \"icon-rocket\",\n \"icon-rss\",\n \"icon-ruler-alt\",\n \"icon-ruler\",\n \"icon-satellite-dish\",\n \"icon-save\",\n \"icon-scan\",\n \"icon-school\",\n \"icon-screensharing\",\n \"icon-script\",\n \"icon-scull\",\n \"icon-search\",\n \"icon-sensor\",\n \"icon-server\",\n \"icon-settings\",\n \"icon-share-alt\",\n \"icon-share\",\n \"icon-sharing-iphone\",\n \"icon-shield\",\n \"icon-shift\",\n \"icon-shipping-box\",\n \"icon-shipping\",\n \"icon-shopping-basket-alt\",\n \"icon-shopping-basket\",\n \"icon-shuffle\",\n \"icon-science\",\n \"icon-single-note\",\n \"icon-sleep\",\n \"icon-smiley\",\n \"icon-snow\",\n \"icon-sound-low\",\n \"icon-sound-off\",\n \"icon-sound-waves\",\n \"icon-sound\",\n \"icon-spades\",\n \"icon-speaker\",\n \"icon-speed-gauge\",\n \"icon-split-alt\",\n \"icon-split\",\n \"icon-sprout\",\n \"icon-stop-alt\",\n \"icon-stop\",\n \"icon-store\",\n \"icon-strikethrough\",\n \"icon-subscript\",\n \"icon-superscript\",\n \"icon-sunny\",\n \"icon-sync\",\n \"icon-t-shirt\",\n \"icon-tab-key\",\n \"icon-table\",\n \"icon-tag\",\n \"icon-tags\",\n \"icon-target\",\n \"icon-temperatrure-alt\",\n \"icon-temperature\",\n \"icon-terminal\",\n \"icon-text-align-center\",\n \"icon-text-align-justify\",\n \"icon-text-align-left\",\n \"icon-text-align-right\",\n \"icon-text-direction-ltr\",\n \"icon-text-direction-rtl\",\n \"icon-theater\",\n \"icon-thumb-down\",\n \"icon-thumb-up\",\n \"icon-thumbnail-list\",\n \"icon-thumbnails-small\",\n \"icon-thumbnails\",\n \"icon-ticket\",\n \"icon-time\",\n \"icon-timer\",\n \"icon-trafic\",\n \"icon-train\",\n \"icon-trash\",\n \"icon-tree\",\n \"icon-trophy\",\n \"icon-truck\",\n \"icon-tv-old\",\n \"icon-tv\",\n \"icon-umbrella\",\n \"icon-undo\",\n \"icon-underline\",\n \"icon-unlink\",\n \"icon-unlocked\",\n \"icon-unplug\",\n \"icon-usb\",\n \"icon-user\",\n \"icon-users\",\n \"icon-utilities\",\n \"icon-vcard\",\n \"icon-video\",\n \"icon-voice\",\n \"icon-wall-plug\",\n \"icon-wallet\",\n \"icon-wand\",\n \"icon-webhook\",\n \"icon-weight\",\n \"icon-width\",\n \"icon-wifi\",\n \"icon-window-popin\",\n \"icon-window-popout\",\n \"icon-window-sizes\",\n \"icon-wine-glass\",\n \"icon-wrench\",\n \"icon-wrong\",\n \"icon-zip\",\n \"icon-zoom-in\",\n \"icon-zoom-out\",\n \"icon-star\",\n \"icon-database\",\n \"icon-puzzle-piece\",\n \"icon-document-3d\",\n \"icon-document-medal\",\n \"icon-document-chart-bar\",\n \"icon-document-chart-graph\",\n \"icon-document-html\",\n \"icon-document-js\",\n \"icon-document-key\",\n \"icon-document-search\",\n \"icon-document-settings\",\n \"icon-document-spreadsheet\",\n \"icon-document-command\",\n \"icon-document-font\",\n \"icon-document-user\",\n \"icon-document-image\",\n \"icon-document-play\",\n \"icon-facebook\",\n \"icon-gitbook\",\n \"icon-github\",\n \"icon-gitlab\",\n \"icon-google\",\n \"icon-mastodon\",\n \"icon-twitter-x\",\n \"icon-art-easel\",\n \"icon-article\",\n \"icon-auction-hammer\",\n \"icon-badge-count\",\n \"icon-band-aid\",\n \"icon-baby-stroller\",\n \"icon-bill-dollar\",\n \"icon-bill-euro\",\n \"icon-bill-pound\",\n \"icon-bill-yen\",\n \"icon-bill\",\n \"icon-billboard\",\n \"icon-bills-dollar\",\n \"icon-bills-euro\",\n \"icon-bills-pound\",\n \"icon-bills-yen\",\n \"icon-bills\",\n \"icon-blueprint\",\n \"icon-bomb\",\n \"icon-cash-register\",\n \"icon-checkbox-dotted-active\",\n \"icon-chess\",\n \"icon-circus\",\n \"icon-clothes-hanger\",\n \"icon-coin\",\n \"icon-coins-dollar-alt\",\n \"icon-coins-dollar\",\n \"icon-coins-euro-alt\",\n \"icon-coins-euro\",\n \"icon-coins-pound-alt\",\n \"icon-coins-pound\",\n \"icon-coins-yen-alt\",\n \"icon-coins-yen\",\n \"icon-comb\",\n \"icon-desk\",\n \"icon-dollar-bag\",\n \"icon-eject\",\n \"icon-euro-bag\",\n \"icon-female-symbol\",\n \"icon-firewall\",\n \"icon-folder-open\",\n \"icon-folder-outline\",\n \"icon-handprint\",\n \"icon-hat\",\n \"icon-hd\",\n \"icon-inactive-line\",\n \"icon-keychain\",\n \"icon-keyhole\",\n \"icon-linkedin\",\n \"icon-linux-tux\",\n \"icon-male-and-female\",\n \"icon-male-symbol\",\n \"icon-molecular-network\",\n \"icon-molecular\",\n \"icon-umbraco\"\n ];\n\n return createToolResult({ icons });\n }),\n} satisfies ToolDefinition<{}, typeof getIconsOutputSchema.shape>;\n\nexport default withStandardDecorators(GetIconsTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n createContainerHierarchy,\n type Property,\n} from \"./helpers/create-container-hierarchy.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Schema for creating an element type\nconst createElementTypeSchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n alias: z.string().min(1, \"Alias is required\"),\n description: z.string().optional(),\n icon: z.string().min(1, \"Icon is required\"),\n compositions: z\n .array(z.string().uuid(\"Must be a valid document type UUID\"))\n .default([]),\n properties: z\n .array(\n z.object({\n name: z.string().min(1, \"Property name is required\"),\n alias: z.string().min(1, \"Property alias is required\"),\n dataTypeId: z.string().uuid(\"Must be a valid data type UUID\"),\n tab: z.string().optional(),\n group: z.string().optional(),\n }).refine(\n (data) => data.tab || data.group,\n {\n message: \"Property must specify either 'tab' or 'group' (or both) to appear in Umbraco UI. Properties without a container are invisible.\",\n path: [\"tab\"]\n }\n )\n )\n .default([]),\n});\n\ntype CreateElementTypeModel = z.infer<typeof createElementTypeSchema>;\n\nexport const createElementTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateElementTypeTool = {\n name: \"create-element-type\",\n description: `Creates a new element type in Umbraco.\n\nIMPORTANT: IMPLEMENTATION REQUIREMENTS\n\n1. ALWAYS use the get-icons tool to find a valid icon name\n2. When referencing data types, first find them using find-data-type to get their correct IDs\n3. When adding compositions, first use get-document-type-root to find the actual ID of the document type\n4. The tool will automatically generate UUIDs for properties and containers\n5. Always create new element types in the root before copying to a new folder if required\n6. Property container structure:\n - Properties MUST specify either a 'tab' or 'group' (or both) to appear in Umbraco UI\n - Property with only tab: appears directly in the tab\n - Property with only group: appears in the group (group has no parent tab)\n - Property with both tab and group: group is nested inside the tab, property appears in the group\n - The tool will automatically create the container hierarchy`,\n inputSchema: createElementTypeSchema.shape,\n outputSchema: createElementTypeOutputSchema.shape,\n slices: ['create'],\n handler: (async (rawModel: CreateElementTypeModel) => {\n // Validate the model with the schema (including refine rules)\n const model = createElementTypeSchema.parse(rawModel);\n\n // Generate UUIDs for the element type and its components\n const elementTypeId = uuidv4();\n\n // Create the container hierarchy\n const { containers, containerIds } = createContainerHierarchy(\n model.properties\n );\n\n // Create properties with their container references\n const properties = model.properties.map((prop, index) => {\n // Determine which container to use\n let containerId: string | undefined;\n if (prop.group) {\n // Use composite key for group lookup\n const key = `${prop.tab || 'NO_TAB'}::${prop.group}`;\n containerId = containerIds.get(key);\n } else if (prop.tab) {\n containerId = containerIds.get(prop.tab);\n }\n\n return {\n id: uuidv4(),\n name: prop.name,\n alias: prop.alias,\n dataType: {\n id: prop.dataTypeId,\n },\n sortOrder: index,\n appearance: {\n labelOnTop: false,\n },\n validation: {\n regEx: null,\n mandatory: false,\n regExMessage: null,\n mandatoryMessage: null,\n },\n variesByCulture: false,\n variesBySegment: false,\n container: containerId ? { id: containerId } : undefined,\n };\n });\n\n // Create the element type payload\n const payload = {\n id: elementTypeId,\n icon: model.icon,\n name: model.name,\n alias: model.alias,\n description: model.description || \"\",\n cleanup: {\n preventCleanup: false,\n },\n isElement: true,\n containers,\n properties,\n compositions: model.compositions.map((id) => ({\n documentType: { id },\n compositionType: \"Composition\" as const,\n })),\n allowedAsRoot: false,\n variesByCulture: false,\n variesBySegment: false,\n allowedTemplates: [],\n allowedDocumentTypes: [],\n };\n\n const client = UmbracoManagementClient.getClient();\n const response = await client.postDocumentType(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n const output = {\n message: \"Element type created successfully\",\n id: elementTypeId\n };\n return createToolResult(output);\n } else {\n // Handle error - Umbraco API returns ProblemDetails as structured data\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createElementTypeSchema.shape, typeof createElementTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateElementTypeTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { getTreeDocumentTypeRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeDocumentTypeRootResponse.shape.items,\n});\n\nconst GetAllDocumentTypesTool = {\n name: \"get-all-document-types\",\n description: `Gets all document types by recursively fetching from root and all children.\n This is the preferred approach when you need to understand the full folder structure.\n For large sites, this may take a while to complete. For smaller sites its more efficient than fetching all documents by folder.`,\n inputSchema: {},\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async () => {\n const client = UmbracoManagementClient.getClient();\n const allItems: any[] = [];\n\n // Get root items\n const rootResponse = await client.getTreeDocumentTypeRoot({\n skip: 0,\n take: 10000\n });\n allItems.push(...rootResponse.items);\n\n // Recursively get children for each item\n async function getChildrenForItems(items: any[]) {\n for (const item of items) {\n if (item.hasChildren) {\n const childrenResponse = await client.getTreeDocumentTypeChildren({\n parentId: item.id,\n skip: 0,\n take: 10000\n });\n\n // Add these children to our collection\n allItems.push(...childrenResponse.items);\n\n // Recursively get children of these children\n if (childrenResponse.items.length > 0) {\n await getChildrenForItems(childrenResponse.items);\n }\n }\n }\n }\n\n await getChildrenForItems(rootResponse.items);\n\n return createToolResult({\n items: allItems\n });\n }),\n} satisfies ToolDefinition<{}, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetAllDocumentTypesTool); ","import CreateDocumentTypeTool from \"./post/create-document-type.js\";\nimport DeleteDocumentTypeTool from \"./delete/delete-document-type.js\";\nimport GetDocumentTypeTool from \"./get/get-document-type-by-ids.js\";\nimport UpdateDocumentTypeTool from \"./put/update-document-type.js\";\nimport CopyDocumentTypeTool from \"./post/copy-document-type.js\";\nimport MoveDocumentTypeTool from \"./put/move-document-type.js\";\nimport GetDocumentTypeRootTool from \"./items/get/get-root.js\";\nimport GetDocumentTypeChildrenTool from \"./items/get/get-children.js\";\nimport GetDocumentTypeAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetDocumentTypeSiblingsTool from \"./items/get/get-siblings.js\";\nimport CreateDocumentTypeFolderTool from \"./folders/post/create-folder.js\";\nimport DeleteDocumentTypeFolderTool from \"./folders/delete/delete-folder.js\";\nimport GetDocumentTypeFolderTool from \"./folders/get/get-folder.js\";\nimport UpdateDocumentTypeFolderTool from \"./folders/put/update-folder.js\";\nimport GetDocumentTypeBlueprintTool from \"./get/get-document-type-blueprint.js\";\nimport GetDocumentTypeCompositionReferencesTool from \"./get/get-document-type-composition-references.js\";\nimport GetDocumentTypeAvailableCompositionsTool from \"./post/get-document-type-available-compositions.js\";\nimport GetDocumentTypeAllowedChildrenTool from \"./get/get-document-type-allowed-children.js\";\nimport GetDocumentTypeConfigurationTool from \"./get/get-document-type-configuration.js\";\nimport GetDocumentTypesByIdArrayTool from \"./get/get-document-type-by-id-array.js\";\nimport GetIconsTool from \"./templates/get-icons.js\";\nimport CreateElementTypeTool from \"./post/create-element-type.js\";\nimport GetAllDocumentTypesTool from \"./items/get/get-all.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const DocumentTypeCollection: ToolCollectionExport = {\n metadata: {\n name: 'document-type',\n displayName: 'Document Types',\n description: 'Document type definitions and composition management',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n tools.push(GetDocumentTypeTool);\n\n if (AuthorizationPolicies.TreeAccessDocumentsOrDocumentTypes(user)) {\n tools.push(GetDocumentTypeConfigurationTool);\n tools.push(GetDocumentTypeBlueprintTool);\n tools.push(GetDocumentTypesByIdArrayTool);\n }\n\n if (AuthorizationPolicies.TreeAccessDocumentTypes(user)) {\n tools.push(GetDocumentTypeAvailableCompositionsTool);\n tools.push(GetDocumentTypeCompositionReferencesTool);\n tools.push(UpdateDocumentTypeTool);\n tools.push(CopyDocumentTypeTool);\n tools.push(MoveDocumentTypeTool);\n tools.push(CreateDocumentTypeTool);\n tools.push(DeleteDocumentTypeTool);\n tools.push(CreateElementTypeTool);\n tools.push(GetIconsTool);\n tools.push(GetDocumentTypeAllowedChildrenTool);\n tools.push(GetAllDocumentTypesTool);\n\n tools.push(CreateDocumentTypeFolderTool);\n tools.push(DeleteDocumentTypeFolderTool);\n tools.push(GetDocumentTypeFolderTool);\n tools.push(UpdateDocumentTypeFolderTool);\n\n tools.push(GetDocumentTypeRootTool);\n tools.push(GetDocumentTypeAncestorsTool);\n tools.push(GetDocumentTypeChildrenTool);\n tools.push(GetDocumentTypeSiblingsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const DocumentTypeTools = (user: CurrentUserResponseModel) => {\n return DocumentTypeCollection.tools(user);\n};\n","import { getDocumentVersionQueryParams, getDocumentVersionResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetDocumentVersionParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentVersionTool = {\n name: \"get-document-version\",\n description: \"List document versions with pagination\",\n inputSchema: getDocumentVersionQueryParams.shape,\n outputSchema: getDocumentVersionResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async (model: GetDocumentVersionParams) => {\n return executeGetApiCall((client) =>\n client.getDocumentVersion(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentVersionQueryParams.shape, typeof getDocumentVersionResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentVersionTool);\n","import { getDocumentVersionByIdParams, getDocumentVersionByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDocumentVersionByIdTool = {\n name: \"get-document-version-by-id\",\n description: \"Get specific document version by ID\",\n inputSchema: getDocumentVersionByIdParams.shape,\n outputSchema: getDocumentVersionByIdResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getDocumentVersionById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getDocumentVersionByIdParams.shape, typeof getDocumentVersionByIdResponse.shape>;\n\nexport default withStandardDecorators(GetDocumentVersionByIdTool);\n","import { putDocumentVersionByIdPreventCleanupParams, putDocumentVersionByIdPreventCleanupQueryParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Combined schema for both path params and query params\nconst updateDocumentVersionPreventCleanupSchema = putDocumentVersionByIdPreventCleanupParams.merge(\n putDocumentVersionByIdPreventCleanupQueryParams\n);\n\ntype SchemaParams = z.infer<typeof updateDocumentVersionPreventCleanupSchema>;\n\nconst UpdateDocumentVersionPreventCleanupTool = {\n name: \"update-document-version-prevent-cleanup\",\n description: \"Prevent cleanup for a specific document version\",\n inputSchema: updateDocumentVersionPreventCleanupSchema.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async ({ id, preventCleanup }: SchemaParams) => {\n return executeVoidApiCall((client) =>\n client.putDocumentVersionByIdPreventCleanup(id, { preventCleanup }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateDocumentVersionPreventCleanupSchema.shape>;\n\nexport default withStandardDecorators(UpdateDocumentVersionPreventCleanupTool);\n","import { postDocumentVersionByIdRollbackParams, postDocumentVersionByIdRollbackQueryParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Combined schema for both path params and query params\nconst createDocumentVersionRollbackSchema = postDocumentVersionByIdRollbackParams.merge(\n postDocumentVersionByIdRollbackQueryParams\n);\n\nconst CreateDocumentVersionRollbackTool = {\n name: \"create-document-version-rollback\",\n description: \"Rollback document to a specific version\",\n inputSchema: createDocumentVersionRollbackSchema.shape,\n slices: ['create'],\n handler: (async ({ id, culture }: { id: string; culture?: string }) => {\n return executeVoidApiCall((client) =>\n client.postDocumentVersionByIdRollback(id, { culture }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof createDocumentVersionRollbackSchema.shape>;\n\nexport default withStandardDecorators(CreateDocumentVersionRollbackTool);\n","import GetDocumentVersionTool from \"./get/get-document-version.js\";\nimport GetDocumentVersionByIdTool from \"./get/get-document-version-by-id.js\";\nimport UpdateDocumentVersionPreventCleanupTool from \"./put/update-document-version-prevent-cleanup.js\";\nimport CreateDocumentVersionRollbackTool from \"./post/create-document-version-rollback.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const DocumentVersionCollection: ToolCollectionExport = {\n metadata: {\n name: 'document-version',\n displayName: 'Document Version',\n description: 'Document version management and rollback operations',\n dependencies: ['document']\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessContent(user)) {\n tools.push(GetDocumentVersionTool);\n tools.push(GetDocumentVersionByIdTool);\n tools.push(UpdateDocumentVersionPreventCleanupTool);\n tools.push(CreateDocumentVersionRollbackTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const DocumentVersionTools = (user: CurrentUserResponseModel) => {\n return DocumentVersionCollection.tools(user);\n};","import { getHealthCheckGroupQueryParams, getHealthCheckGroupResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetHealthCheckGroupsTool = {\n name: \"get-health-check-groups\",\n description: \"Gets a paged list of health check groups for system monitoring\",\n inputSchema: getHealthCheckGroupQueryParams.shape,\n outputSchema: getHealthCheckGroupResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (params: { skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getHealthCheckGroup(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getHealthCheckGroupQueryParams.shape, typeof getHealthCheckGroupResponse.shape>;\n\nexport default withStandardDecorators(GetHealthCheckGroupsTool);\n","import { getHealthCheckGroupByNameParams, getHealthCheckGroupByNameResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetHealthCheckGroupByNameTool = {\n name: \"get-health-check-group-by-name\",\n description: \"Gets specific health check group details by name for system monitoring\",\n inputSchema: getHealthCheckGroupByNameParams.shape,\n outputSchema: getHealthCheckGroupByNameResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (params: { name: string }) => {\n return executeGetApiCall((client) =>\n client.getHealthCheckGroupByName(params.name, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getHealthCheckGroupByNameParams.shape, typeof getHealthCheckGroupByNameResponse.shape>;\n\nexport default withStandardDecorators(GetHealthCheckGroupByNameTool);\n","import { postHealthCheckGroupByNameCheckParams, postHealthCheckGroupByNameCheckResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst RunHealthCheckGroupTool = {\n name: \"run-health-check-group\",\n description: \"Executes health checks for a specific group. WARNING: This will run system diagnostics which may take time and could temporarily affect system performance.\",\n inputSchema: postHealthCheckGroupByNameCheckParams.shape,\n outputSchema: postHealthCheckGroupByNameCheckResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (params: { name: string }) => {\n return executeGetApiCall((client) =>\n client.postHealthCheckGroupByNameCheck(params.name, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postHealthCheckGroupByNameCheckParams.shape, typeof postHealthCheckGroupByNameCheckResponse.shape>;\n\nexport default withStandardDecorators(RunHealthCheckGroupTool);\n","import { postHealthCheckExecuteActionBody, postHealthCheckExecuteActionResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { HealthCheckActionRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst ExecuteHealthCheckActionTool = {\n name: \"execute-health-check-action\",\n description: \"Executes remedial actions for health issues. WARNING: This performs system remedial actions that may modify system configuration, files, or database content. Use with caution.\",\n inputSchema: postHealthCheckExecuteActionBody.shape,\n outputSchema: postHealthCheckExecuteActionResponse.shape,\n slices: ['diagnostics'],\n handler: (async (model: HealthCheckActionRequestModel) => {\n return executeGetApiCall((client) =>\n client.postHealthCheckExecuteAction(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postHealthCheckExecuteActionBody.shape, typeof postHealthCheckExecuteActionResponse.shape>;\n\nexport default withStandardDecorators(ExecuteHealthCheckActionTool);\n","import GetHealthCheckGroupsTool from \"./get/get-health-check-groups.js\";\nimport GetHealthCheckGroupByNameTool from \"./get/get-health-check-group-by-name.js\";\nimport RunHealthCheckGroupTool from \"./post/run-health-check-group.js\";\nimport ExecuteHealthCheckActionTool from \"./post/execute-health-check-action.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const HealthCollection: ToolCollectionExport = {\n metadata: {\n name: 'health',\n displayName: 'Health Checks',\n description: 'System health monitoring and diagnostic capabilities',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n // Health checks are system-level operations requiring settings access\n if (AuthorizationPolicies.SectionAccessSettings(user)) {\n tools.push(GetHealthCheckGroupsTool);\n tools.push(GetHealthCheckGroupByNameTool);\n tools.push(RunHealthCheckGroupTool);\n tools.push(ExecuteHealthCheckActionTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const HealthTools = (user: CurrentUserResponseModel) => {\n return HealthCollection.tools(user);\n};","import { getImagingResizeUrlsQueryParams, getImagingResizeUrlsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetImagingResizeUrlsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object (MCP requirement)\nconst outputSchema = z.object({\n items: getImagingResizeUrlsResponse,\n});\n\nconst GetImagingResizeUrlsTool = {\n name: \"get-imaging-resize-urls\",\n description: `Generates resized image URLs for media items.\n Takes media item IDs and resize parameters to generate optimized image URLs.\n Returns an object containing:\n - Array of media items with their resize URL information\n - Each item includes the media ID and URL info with culture and resized URLs\n\n Parameters:\n - id: Array of media item UUIDs\n - height: Target height in pixels (default: 200)\n - width: Target width in pixels (default: 200)\n - mode: Resize mode (Crop, Max, Stretch, Pad, BoxPad, Min)`,\n inputSchema: getImagingResizeUrlsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async (model: GetImagingResizeUrlsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getImagingResizeUrls(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getImagingResizeUrlsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetImagingResizeUrlsTool);\n","import GetImagingResizeUrlsTool from \"./get/get-imaging-resize-urls.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const ImagingCollection: ToolCollectionExport = {\n metadata: {\n name: 'imaging',\n displayName: 'Imaging',\n description: 'Image processing and URL generation utilities',\n dependencies: ['media']\n },\n tools: (user: CurrentUserResponseModel) => {\n\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessContentOrMedia(user)) {\n tools.push(GetImagingResizeUrlsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const ImagingTools = (user: CurrentUserResponseModel) => {\n return ImagingCollection.tools(user);\n};","import { getIndexerQueryParams, getIndexerResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetIndexerParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetIndexerTool = {\n name: \"get-indexer\",\n description: `Lists all indexes with pagination support.\n Returns an object containing:\n - total: Total number of indexes (number)\n - items: Array of index objects with name, searcherName, and other properties`,\n inputSchema: getIndexerQueryParams.shape,\n outputSchema: getIndexerResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetIndexerParams) => {\n return executeGetApiCall((client) =>\n client.getIndexer(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getIndexerQueryParams.shape, typeof getIndexerResponse.shape>;\n\nexport default withStandardDecorators(GetIndexerTool);\n","import { getIndexerByIndexNameParams, getIndexerByIndexNameResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetIndexerByIndexNameTool = {\n name: \"get-indexer-by-index-name\",\n description: `Gets a specific index by its name.\n Returns detailed information about the index including its configuration and status.`,\n inputSchema: getIndexerByIndexNameParams.shape,\n outputSchema: getIndexerByIndexNameResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: { indexName: string }) => {\n return executeGetApiCall((client) =>\n client.getIndexerByIndexName(model.indexName, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getIndexerByIndexNameParams.shape, typeof getIndexerByIndexNameResponse.shape>;\n\nexport default withStandardDecorators(GetIndexerByIndexNameTool);\n","import { postIndexerByIndexNameRebuildParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst PostIndexerByIndexNameRebuildTool = {\n name: \"post-indexer-by-index-name-rebuild\",\n description: `Rebuilds a specific index by name.\n This operation will trigger a full rebuild of the index, which may take some time depending on the amount of content.\n Use this only when asked to by the user.`,\n inputSchema: postIndexerByIndexNameRebuildParams.shape,\n slices: ['diagnostics'],\n handler: (async (model: { indexName: string }) => {\n return executeVoidApiCall((client) =>\n client.postIndexerByIndexNameRebuild(model.indexName, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postIndexerByIndexNameRebuildParams.shape>;\n\nexport default withStandardDecorators(PostIndexerByIndexNameRebuildTool);\n","import GetIndexerTool from \"./get/get-indexer.js\";\nimport GetIndexerByIndexNameTool from \"./get/get-indexer-by-index-name.js\";\nimport PostIndexerByIndexNameRebuildTool from \"./post/post-indexer-by-index-name-rebuild.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const IndexerCollection: ToolCollectionExport = {\n metadata: {\n name: 'indexer',\n displayName: 'Indexer',\n description: 'Index management and configuration operations',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessSettings(user)) {\n tools.push(GetIndexerTool);\n tools.push(GetIndexerByIndexNameTool);\n tools.push(PostIndexerByIndexNameRebuildTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const IndexerTools = (user: CurrentUserResponseModel) => {\n return IndexerCollection.tools(user);\n};","import {\n getItemLanguageQueryParams,\n getItemLanguageResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { GetItemLanguageParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemLanguageResponse,\n});\n\nconst GetLanguageItemsTool = {\n name: \"get-language-items\",\n description: \"Gets language items (optionally filtered by isoCode)\",\n inputSchema: getItemLanguageQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: GetItemLanguageParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemLanguage(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemLanguageQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetLanguageItemsTool);\n","import { getItemLanguageDefaultResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetDefaultLanguageTool = {\n name: \"get-default-language\",\n description: \"Gets the default language\",\n inputSchema: {},\n outputSchema: getItemLanguageDefaultResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getItemLanguageDefault(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getItemLanguageDefaultResponse.shape>;\n\nexport default withStandardDecorators(GetDefaultLanguageTool);\n","import {\n getLanguageByIsoCodeParams,\n getLanguageByIsoCodeResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLanguageByIsoCodeTool = {\n name: \"get-language-by-iso-code\",\n description: \"Gets a language by ISO code\",\n inputSchema: getLanguageByIsoCodeParams.shape,\n outputSchema: getLanguageByIsoCodeResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async ({ isoCode }: { isoCode: string }) => {\n return executeGetApiCall((client) =>\n client.getLanguageByIsoCode(isoCode, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLanguageByIsoCodeParams.shape, typeof getLanguageByIsoCodeResponse.shape>;\n\nexport default withStandardDecorators(GetLanguageByIsoCodeTool);\n","import {\n getLanguageQueryParams,\n getLanguageResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLanguageParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLanguageTool = {\n name: \"get-language\",\n description: \"Gets all languages with optional pagination\",\n inputSchema: getLanguageQueryParams.shape,\n outputSchema: getLanguageResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: GetLanguageParams) => {\n return executeGetApiCall((client) =>\n client.getLanguage(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLanguageQueryParams.shape, typeof getLanguageResponse.shape>;\n\nexport default withStandardDecorators(GetLanguageTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { postLanguageBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createOutputSchema = z.object({\n message: z.string(),\n isoCode: z.string()\n});\n\ntype CreateLanguageModel = z.infer<typeof postLanguageBody>;\n\nconst CreateLanguageTool = {\n name: \"create-language\",\n description: \"Creates a new language\",\n inputSchema: postLanguageBody.shape,\n outputSchema: createOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateLanguageModel) => {\n const client = UmbracoManagementClient.getClient();\n const validated = postLanguageBody.parse(model);\n\n const response = await client.postLanguage(validated, CAPTURE_RAW_HTTP_RESPONSE) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n return createToolResult({\n message: \"Language created successfully\",\n isoCode: validated.isoCode\n });\n } else {\n return createToolResultError(response.data || {\n status: response.status,\n detail: response.statusText\n });\n }\n }),\n} satisfies ToolDefinition<typeof postLanguageBody.shape, typeof createOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateLanguageTool);\n","import {\n putLanguageByIsoCodeParams,\n putLanguageByIsoCodeBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n isoCode: putLanguageByIsoCodeParams.shape.isoCode,\n data: z.object(putLanguageByIsoCodeBody.shape),\n};\n\ntype UpdateLanguageModel = {\n isoCode: string;\n data: z.infer<typeof putLanguageByIsoCodeBody>;\n};\n\nconst UpdateLanguageTool = {\n name: \"update-language\",\n description: \"Updates an existing language by ISO code\",\n inputSchema: inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: UpdateLanguageModel) => {\n const params = putLanguageByIsoCodeParams.parse({ isoCode: model.isoCode });\n const body = putLanguageByIsoCodeBody.parse(model.data);\n\n return executeVoidApiCall((client) =>\n client.putLanguageByIsoCode(params.isoCode, body, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(UpdateLanguageTool);\n","import { deleteLanguageByIsoCodeParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteLanguageTool = {\n name: \"delete-language\",\n description: \"Deletes a language by ISO code\",\n inputSchema: deleteLanguageByIsoCodeParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ isoCode }: { isoCode: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteLanguageByIsoCode(isoCode, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteLanguageByIsoCodeParams.shape>;\n\nexport default withStandardDecorators(DeleteLanguageTool);\n","import GetLanguageItemsTool from \"./get/get-language-items.js\";\nimport GetDefaultLanguageTool from \"./get/get-default-language.js\";\nimport GetLanguageByIsoCodeTool from \"./get/get-language-by-iso-code.js\";\nimport GetLanguageTool from \"./get/get-language.js\";\nimport CreateLanguageTool from \"./post/create-language.js\";\nimport UpdateLanguageTool from \"./put/update-language.js\";\nimport DeleteLanguageTool from \"./delete/delete-language.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const LanguageCollection: ToolCollectionExport = {\n metadata: {\n name: 'language',\n displayName: 'Languages',\n description: 'Language and localization configuration',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n tools.push(GetLanguageItemsTool);\n tools.push(GetDefaultLanguageTool);\n tools.push(GetLanguageTool);\n\n if (AuthorizationPolicies.TreeAccessLanguages(user)) {\n tools.push(CreateLanguageTool);\n tools.push(UpdateLanguageTool);\n tools.push(DeleteLanguageTool);\n tools.push(GetLanguageByIsoCodeTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const LanguageTools = (user: CurrentUserResponseModel) => {\n return LanguageCollection.tools(user);\n};\n","import { getLogViewerLogQueryParams, getLogViewerLogResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLogViewerLogParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerLogTool = {\n name: \"get-log-viewer-log\",\n description: \"Get log viewer logs\",\n inputSchema: getLogViewerLogQueryParams.shape,\n outputSchema: getLogViewerLogResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetLogViewerLogParams) => {\n return executeGetApiCall((client) =>\n client.getLogViewerLog(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerLogQueryParams.shape, typeof getLogViewerLogResponse.shape>;\n\nexport default withStandardDecorators(GetLogViewerLogTool);\n","import { getLogViewerLevelQueryParams, getLogViewerLevelResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLogViewerLevelParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerLevelTool = {\n name: \"get-log-viewer-level\",\n description: \"Get log viewer levels\",\n inputSchema: getLogViewerLevelQueryParams.shape,\n outputSchema: getLogViewerLevelResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetLogViewerLevelParams) => {\n return executeGetApiCall((client) =>\n client.getLogViewerLevel(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerLevelQueryParams.shape, typeof getLogViewerLevelResponse.shape>;\n\nexport default withStandardDecorators(GetLogViewerLevelTool);\n","import { getLogViewerSavedSearchQueryParams, getLogViewerSavedSearchResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLogViewerSavedSearchParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerSavedSearchTool = {\n name: \"get-log-viewer-saved-search\",\n description: \"Get log viewer saved searches\",\n inputSchema: getLogViewerSavedSearchQueryParams.shape,\n outputSchema: getLogViewerSavedSearchResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetLogViewerSavedSearchParams) => {\n return executeGetApiCall((client) =>\n client.getLogViewerSavedSearch(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerSavedSearchQueryParams.shape, typeof getLogViewerSavedSearchResponse.shape>;\n\nexport default withStandardDecorators(GetLogViewerSavedSearchTool);\n","import { getLogViewerValidateLogsSizeQueryParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLogViewerValidateLogsSizeParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerValidateLogsSizeTool = {\n name: \"get-log-viewer-validate-logs-size\",\n description: \"Validates the size of the logs, for the given start and end date, or the lase day if not provided\",\n inputSchema: getLogViewerValidateLogsSizeQueryParams.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetLogViewerValidateLogsSizeParams) => {\n return executeVoidApiCall((client) =>\n client.getLogViewerValidateLogsSize(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerValidateLogsSizeQueryParams.shape>;\n\nexport default withStandardDecorators(GetLogViewerValidateLogsSizeTool);\n","import { getLogViewerMessageTemplateQueryParams, getLogViewerMessageTemplateResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLogViewerMessageTemplateParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerMessageTemplateTool = {\n name: \"get-log-viewer-message-template\",\n description: \"Get log viewer message templates\",\n inputSchema: getLogViewerMessageTemplateQueryParams.shape,\n outputSchema: getLogViewerMessageTemplateResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetLogViewerMessageTemplateParams) => {\n return executeGetApiCall((client) =>\n client.getLogViewerMessageTemplate(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerMessageTemplateQueryParams.shape, typeof getLogViewerMessageTemplateResponse.shape>;\n\nexport default withStandardDecorators(GetLogViewerMessageTemplateTool);\n","import { getLogViewerSavedSearchByNameParams, getLogViewerSavedSearchByNameResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerSavedSearchByNameTool = {\n name: \"get-log-viewer-saved-search-by-name\",\n description: \"Gets a saved search by name\",\n inputSchema: getLogViewerSavedSearchByNameParams.shape,\n outputSchema: getLogViewerSavedSearchByNameResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async ({ name }: { name: string }) => {\n return executeGetApiCall((client) =>\n client.getLogViewerSavedSearchByName(name, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerSavedSearchByNameParams.shape, typeof getLogViewerSavedSearchByNameResponse.shape>;\n\nexport default withStandardDecorators(GetLogViewerSavedSearchByNameTool);\n","import { getLogViewerLevelCountQueryParams, getLogViewerLevelCountResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetLogViewerLevelCountParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetLogViewerLevelCountTool = {\n name: \"get-log-viewer-level-count\",\n description: \"Get log viewer level counts\",\n inputSchema: getLogViewerLevelCountQueryParams.shape,\n outputSchema: getLogViewerLevelCountResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['diagnostics'],\n handler: (async (model: GetLogViewerLevelCountParams) => {\n return executeGetApiCall((client) =>\n client.getLogViewerLevelCount(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getLogViewerLevelCountQueryParams.shape, typeof getLogViewerLevelCountResponse.shape>;\n\nexport default withStandardDecorators(GetLogViewerLevelCountTool);\n","import { postLogViewerSavedSearchBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { SavedLogSearchRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst PostLogViewerSavedSearchTool = {\n name: \"post-log-viewer-saved-search\",\n description: \"Create a new log viewer saved search\",\n inputSchema: postLogViewerSavedSearchBody.shape,\n slices: ['diagnostics'],\n handler: (async (model: SavedLogSearchRequestModel) => {\n return executeVoidApiCall((client) =>\n client.postLogViewerSavedSearch(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postLogViewerSavedSearchBody.shape>;\n\nexport default withStandardDecorators(PostLogViewerSavedSearchTool);\n","import { deleteLogViewerSavedSearchByNameParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteLogViewerSavedSearchByNameTool = {\n name: \"delete-log-viewer-saved-search-by-name\",\n description: \"Deletes a saved search by name\",\n inputSchema: deleteLogViewerSavedSearchByNameParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['diagnostics'],\n handler: (async ({ name }: { name: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteLogViewerSavedSearchByName(name, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteLogViewerSavedSearchByNameParams.shape>;\n\nexport default withStandardDecorators(DeleteLogViewerSavedSearchByNameTool);\n","import GetLogViewerTool from \"./get/get-log-viewer-log.js\";\nimport GetLogViewerLevelTool from \"./get/get-log-viewer-level.js\";\nimport GetLogViewerSearchTool from \"./get/get-log-viewer-saved-search.js\";\nimport GetLogViewerValidateLogsTool from \"./get/get-log-viewer-validate-logs-size.js\";\nimport GetLogViewerMessageTemplateTool from \"./get/get-log-viewer-message-template.js\";\nimport GetLogViewerSavedSearchByNameTool from \"./get/get-log-viewer-saved-search-by-name.js\";\nimport GetLogViewerLevelCountTool from \"./get/get-log-viewer-level-count.js\";\nimport PostLogViewerSavedSearchTool from \"./post/post-log-viewer-saved-search.js\";\nimport DeleteLogViewerSavedSearchByNameTool from \"./delete/delete-log-viewer-saved-search-by-name.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const LogViewerCollection: ToolCollectionExport = {\n metadata: {\n name: 'log-viewer',\n displayName: 'Log Viewer',\n description: 'Application log viewing and analysis',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessSettings(user)) {\n tools.push(GetLogViewerSavedSearchByNameTool);\n tools.push(GetLogViewerLevelCountTool);\n tools.push(PostLogViewerSavedSearchTool);\n tools.push(DeleteLogViewerSavedSearchByNameTool);\n\n tools.push(GetLogViewerTool)\n tools.push(GetLogViewerLevelTool);\n tools.push(GetLogViewerSearchTool);\n tools.push(GetLogViewerValidateLogsTool);\n tools.push(GetLogViewerMessageTemplateTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const LogViewerTools = (user: CurrentUserResponseModel) => {\n return LogViewerCollection.tools(user);\n};","import { getManifestManifestResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object (MCP requirement)\nconst outputSchema = z.object({\n items: getManifestManifestResponse,\n});\n\nconst GetManifestManifestTool = {\n name: \"get-manifest-manifest\",\n description: \"Gets all manifests (both public and private) from the Umbraco installation. Each manifest contains an extensions property showing what the package exposes to Umbraco. Use to see which packages are installed, troubleshoot package issues, or list available extensions.\",\n inputSchema: {},\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async () => {\n return executeGetItemsApiCall((client) =>\n client.getManifestManifest(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetManifestManifestTool);\n","import { getManifestManifestPrivateResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object (MCP requirement)\nconst outputSchema = z.object({\n items: getManifestManifestPrivateResponse,\n});\n\nconst GetManifestManifestPrivateTool = {\n name: \"get-manifest-manifest-private\",\n description: \"Gets private manifests from the Umbraco installation. Private manifests require authentication and contain administrative/sensitive extensions.\",\n inputSchema: {},\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async () => {\n return executeGetItemsApiCall((client) =>\n client.getManifestManifestPrivate(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetManifestManifestPrivateTool);\n","import { getManifestManifestPublicResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object (MCP requirement)\nconst outputSchema = z.object({\n items: getManifestManifestPublicResponse,\n});\n\nconst GetManifestManifestPublicTool = {\n name: \"get-manifest-manifest-public\",\n description: \"Gets public manifests from the Umbraco installation. Public manifests can be accessed without authentication and contain public-facing extensions.\",\n inputSchema: {},\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async () => {\n return executeGetItemsApiCall((client) =>\n client.getManifestManifestPublic(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetManifestManifestPublicTool);\n","import GetManifestManifestTool from \"./get/get-manifest-manifest.js\";\nimport GetManifestManifestPrivateTool from \"./get/get-manifest-manifest-private.js\";\nimport GetManifestManifestPublicTool from \"./get/get-manifest-manifest-public.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const ManifestCollection: ToolCollectionExport = {\n metadata: {\n name: 'manifest',\n displayName: 'Manifest',\n description: 'System manifests and extension definitions',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessSettings(user)) {\n tools.push(GetManifestManifestTool);\n tools.push(GetManifestManifestPrivateTool);\n tools.push(GetManifestManifestPublicTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const ManifestTools = (user: CurrentUserResponseModel) => {\n return ManifestCollection.tools(user);\n};","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { uploadMediaFile } from \"./helpers/media-upload-helpers.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n MEDIA_TYPE_ARTICLE,\n MEDIA_TYPE_AUDIO,\n MEDIA_TYPE_FILE,\n MEDIA_TYPE_IMAGE,\n MEDIA_TYPE_VECTOR_GRAPHICS,\n MEDIA_TYPE_VIDEO,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst createMediaSchema = z.object({\n sourceType: z.enum([\"filePath\", \"url\", \"base64\"]).describe(\"Media source type: 'filePath' for local files (most efficient), 'url' for web files, 'base64' for embedded data (small files only)\"),\n name: z.string().describe(\"The name of the media item\"),\n mediaTypeName: z.string().describe(`Media type: '${MEDIA_TYPE_IMAGE}', '${MEDIA_TYPE_ARTICLE}', '${MEDIA_TYPE_AUDIO}', '${MEDIA_TYPE_VIDEO}', '${MEDIA_TYPE_VECTOR_GRAPHICS}', '${MEDIA_TYPE_FILE}', or custom media type name`),\n filePath: z.string().optional().describe(\"Absolute path to the file (required if sourceType is 'filePath')\"),\n fileUrl: z.string().url().optional().describe(\"URL to fetch the file from (required if sourceType is 'url')\"),\n fileAsBase64: z.string().optional().describe(\"Base64 encoded file data (required if sourceType is 'base64')\"),\n parentId: z.string().uuid().optional().describe(\"Parent folder ID (defaults to root)\"),\n});\n\ntype CreateMediaParams = z.infer<typeof createMediaSchema>;\n\nexport const createMediaOutputSchema = z.object({\n message: z.string(),\n name: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMediaTool = {\n name: \"create-media\",\n description: `Upload any media file to Umbraco (images, documents, audio, video, SVG, or custom types).\n\n Media Types:\n - ${MEDIA_TYPE_IMAGE}: jpg, png, gif, webp, etc. (supports cropping)\n - ${MEDIA_TYPE_ARTICLE}: pdf, docx, doc (documents)\n - ${MEDIA_TYPE_AUDIO}: mp3, wav, etc.\n - ${MEDIA_TYPE_VIDEO}: mp4, webm, etc.\n - ${MEDIA_TYPE_VECTOR_GRAPHICS}: svg files only\n - ${MEDIA_TYPE_FILE}: any other file type\n - Custom: any custom media type created in Umbraco\n\n Source Types:\n 1. filePath - Most efficient for local files, works with any size\n SECURITY: Requires UMBRACO_ALLOWED_MEDIA_PATHS environment variable\n to be configured with comma-separated allowed directories.\n Example: UMBRACO_ALLOWED_MEDIA_PATHS=\"/tmp/uploads,/var/media\"\n 2. url - Fetch from web URL\n 3. base64 - Only for small files (<10KB) due to token usage\n\n The tool automatically:\n - Creates temporary files\n - Detects and validates media types (auto-corrects SVG vs Image)\n - Configures correct property editors (ImageCropper vs UploadField)\n - Cleans up temporary files`,\n inputSchema: createMediaSchema.shape,\n outputSchema: createMediaOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateMediaParams) => {\n try {\n const client = UmbracoManagementClient.getClient();\n const temporaryFileId = uuidv4();\n\n const { name: actualName, id } = await uploadMediaFile(client, {\n sourceType: model.sourceType,\n name: model.name,\n mediaTypeName: model.mediaTypeName,\n filePath: model.filePath,\n fileUrl: model.fileUrl,\n fileAsBase64: model.fileAsBase64,\n parentId: model.parentId,\n temporaryFileId,\n });\n\n return createToolResult({\n message: `Media \"${actualName}\" created successfully`,\n name: actualName,\n id: id\n });\n } catch (error) {\n return createToolResultError({\n detail: `Error creating media: ${(error as Error).message}`,\n });\n }\n }),\n} satisfies ToolDefinition<typeof createMediaSchema.shape, typeof createMediaOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMediaTool);\n","import * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport mime from \"mime-types\";\nimport { validateFilePath } from \"./validate-file-path.js\";\nimport {\n CAPTURE_RAW_HTTP_RESPONSE,\n MEDIA_TYPE_IMAGE,\n MEDIA_TYPE_VECTOR_GRAPHICS,\n STANDARD_MEDIA_TYPES,\n detectFileExtensionFromBuffer,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n/**\n * Maps MIME types to file extensions using the mime-types library.\n * Returns undefined if MIME type is unknown.\n */\nfunction getExtensionFromMimeType(mimeType: string | undefined): string | undefined {\n if (!mimeType) return undefined;\n\n // Remove charset and other parameters, then get extension\n const baseMimeType = mimeType.split(';')[0].trim();\n const extension = mime.extension(baseMimeType);\n\n return extension ? `.${extension}` : undefined;\n}\n\n/**\n * Validates and corrects media type for SVG files.\n * SVG files should use \"Vector Graphics (SVG)\" media type, not \"Image\".\n */\nexport function validateMediaTypeForSvg(\n filePath: string | undefined,\n fileUrl: string | undefined,\n fileName: string,\n mediaTypeName: string\n): string {\n // Check if any of the file identifiers end with .svg\n const isSvg =\n filePath?.toLowerCase().endsWith('.svg') ||\n fileUrl?.toLowerCase().endsWith('.svg') ||\n fileName.toLowerCase().endsWith('.svg');\n\n if (isSvg && mediaTypeName === MEDIA_TYPE_IMAGE) {\n console.warn(`SVG detected - using ${MEDIA_TYPE_VECTOR_GRAPHICS} media type instead of ${MEDIA_TYPE_IMAGE}`);\n return MEDIA_TYPE_VECTOR_GRAPHICS;\n }\n\n return mediaTypeName;\n}\n\n/**\n * Fetches media type ID from Umbraco API by name.\n * For standard Umbraco media types, returns the hardcoded GUID immediately.\n * For custom media types, queries the API.\n * Throws error with helpful message if media type not found.\n */\nexport async function fetchMediaTypeId(client: any, mediaTypeName: string): Promise<string> {\n // Check if this is a standard media type (case-insensitive)\n const standardTypeKey = Object.keys(STANDARD_MEDIA_TYPES).find(\n key => key.toLowerCase() === mediaTypeName.toLowerCase()\n );\n\n if (standardTypeKey) {\n return STANDARD_MEDIA_TYPES[standardTypeKey];\n }\n\n // Fall back to API search for custom media types\n const response = await client.getItemMediaTypeSearch({ query: mediaTypeName });\n\n const mediaType = response.items.find(\n (mt: any) => mt.name.toLowerCase() === mediaTypeName.toLowerCase()\n );\n\n if (!mediaType) {\n const availableTypes = response.items.map((mt: any) => mt.name).join(', ');\n throw new Error(\n `Media type '${mediaTypeName}' not found. Available types: ${availableTypes || 'None found'}`\n );\n }\n\n return mediaType.id;\n}\n\n/**\n * Gets the appropriate editor alias based on media type.\n * Image uses ImageCropper, everything else uses UploadField.\n */\nexport function getEditorAlias(mediaTypeName: string): string {\n return mediaTypeName === MEDIA_TYPE_IMAGE ? 'Umbraco.ImageCropper' : 'Umbraco.UploadField';\n}\n\n/**\n * Builds the value structure for media creation based on media type.\n * Image media type requires crops and focal point, others just need temporaryFileId.\n */\nexport function buildValueStructure(mediaTypeName: string, temporaryFileId: string) {\n const base = {\n alias: \"umbracoFile\",\n editorAlias: getEditorAlias(mediaTypeName),\n entityType: \"media-property-value\",\n };\n\n if (mediaTypeName === MEDIA_TYPE_IMAGE) {\n return {\n ...base,\n value: {\n crops: [],\n culture: null,\n segment: null,\n focalPoint: {\n top: 0.5,\n right: 0.5,\n },\n temporaryFileId\n }\n };\n }\n\n return {\n ...base,\n value: { temporaryFileId }\n };\n}\n\n/**\n * Creates a file stream based on source type.\n * Returns the stream and the temporary file path (if created).\n * Note: Temp files need a filename for Umbraco's string parsing to work correctly.\n * Exported for testing.\n */\nexport async function createFileStream(\n sourceType: \"filePath\" | \"url\" | \"base64\",\n filePath: string | undefined,\n fileUrl: string | undefined,\n fileAsBase64: string | undefined,\n fileName: string\n): Promise<{ readStream: fs.ReadStream; tempFilePath: string | null }> {\n let tempFilePath: string | null = null;\n let readStream: fs.ReadStream;\n\n switch (sourceType) {\n case \"filePath\":\n if (!filePath) {\n throw new Error(\"filePath is required when sourceType is 'filePath'\");\n }\n // Validate file path is within allowed directories (security check)\n const validatedPath = await validateFilePath(filePath);\n readStream = fs.createReadStream(validatedPath);\n break;\n\n case \"url\":\n if (!fileUrl) {\n throw new Error(\"fileUrl is required when sourceType is 'url'\");\n }\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 30000);\n let response: Response;\n try {\n response = await fetch(fileUrl, { signal: controller.signal });\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (response.status >= 400) {\n throw new Error(`Failed to fetch file from URL: HTTP ${response.status} ${response.statusText}`);\n }\n\n const arrayBuffer = await response.arrayBuffer();\n\n // Extract extension from URL, or try to detect from Content-Type header\n let fileNameWithExtension = fileName;\n if (!fileName.includes('.')) {\n const urlPath = new URL(fileUrl).pathname;\n const urlExtension = path.extname(urlPath);\n\n if (urlExtension) {\n // Use extension from URL\n fileNameWithExtension = `${fileName}${urlExtension}`;\n } else {\n // Try to detect extension from Content-Type header\n const contentType = response.headers.get('content-type') ?? undefined;\n const extensionFromMime = getExtensionFromMimeType(contentType);\n if (extensionFromMime) {\n fileNameWithExtension = `${fileName}${extensionFromMime}`;\n } else {\n // Default to .bin if we can't determine the type\n fileNameWithExtension = `${fileName}.bin`;\n }\n }\n }\n\n // Use the filename with extension so Umbraco can parse it correctly\n tempFilePath = path.join(os.tmpdir(), fileNameWithExtension);\n fs.writeFileSync(tempFilePath, Buffer.from(arrayBuffer));\n readStream = fs.createReadStream(tempFilePath);\n } catch (error) {\n if ((error as any).name === 'AbortError') {\n throw new Error(`Request timeout after 30s fetching URL: ${fileUrl}`);\n }\n throw new Error(`Failed to fetch URL: ${fileUrl} - ${(error as Error).message}`);\n }\n break;\n\n case \"base64\":\n if (!fileAsBase64) {\n throw new Error(\"fileAsBase64 is required when sourceType is 'base64'\");\n }\n const fileContent = Buffer.from(fileAsBase64, 'base64');\n\n // Ensure fileName has an extension - add one based on magic bytes if missing\n let fileNameWithExtension = fileName;\n if (!fileName.includes('.')) {\n const extension = detectFileExtensionFromBuffer(fileContent);\n fileNameWithExtension = `${fileName}${extension}`;\n }\n\n // Use just the filename so Umbraco can parse it correctly\n tempFilePath = path.join(os.tmpdir(), fileNameWithExtension);\n fs.writeFileSync(tempFilePath, fileContent);\n readStream = fs.createReadStream(tempFilePath);\n break;\n }\n\n return { readStream, tempFilePath };\n}\n\n/**\n * Cleans up a temporary file if it exists.\n */\nexport function cleanupTempFile(tempFilePath: string | null): void {\n if (tempFilePath && fs.existsSync(tempFilePath)) {\n try {\n fs.unlinkSync(tempFilePath);\n } catch (e) {\n console.error('Failed to cleanup temp file:', e);\n }\n }\n}\n\n/**\n * Uploads media file to Umbraco.\n * Handles the complete workflow: file stream creation, temporary file upload, and media creation.\n * Returns the media item name and ID.\n */\nexport async function uploadMediaFile(\n client: any,\n params: {\n sourceType: \"filePath\" | \"url\" | \"base64\";\n name: string;\n mediaTypeName: string;\n filePath?: string;\n fileUrl?: string;\n fileAsBase64?: string;\n parentId?: string;\n temporaryFileId: string;\n }\n): Promise<{name: string, id: string}> {\n let tempFilePath: string | null = null;\n\n try {\n // Step 1: Validate media type (SVG special case - only auto-correction we do)\n // We trust the LLM for all other media type decisions\n const validatedMediaTypeName = validateMediaTypeForSvg(\n params.filePath,\n params.fileUrl,\n params.name,\n params.mediaTypeName\n );\n\n // Step 2: Fetch media type ID\n const mediaTypeId = await fetchMediaTypeId(client, validatedMediaTypeName);\n\n // Step 3: Create file stream\n const { readStream, tempFilePath: createdTempPath } = await createFileStream(\n params.sourceType,\n params.filePath,\n params.fileUrl,\n params.fileAsBase64,\n params.name\n );\n tempFilePath = createdTempPath;\n\n // Step 4: Upload to temporary file endpoint\n try {\n await client.postTemporaryFile({\n Id: params.temporaryFileId,\n File: readStream,\n });\n } catch (error) {\n const err = error as any;\n const errorData = err.response?.data\n ? (typeof err.response.data === 'string' ? err.response.data : JSON.stringify(err.response.data))\n : err.message;\n throw new Error(`Failed to upload temporary file: ${err.response?.status || 'Unknown error'} - ${errorData}`);\n }\n\n // Step 5: Build value structure\n const valueStructure = buildValueStructure(validatedMediaTypeName, params.temporaryFileId);\n\n // Step 6: Create media item\n let response: any;\n try {\n response = await client.postMedia({\n mediaType: { id: mediaTypeId },\n variants: [\n {\n culture: null,\n segment: null,\n name: params.name, // Use original name provided by user\n },\n ],\n values: [valueStructure] as any,\n parent: params.parentId ? { id: params.parentId } : null,\n }, CAPTURE_RAW_HTTP_RESPONSE);\n } catch (error) {\n const err = error as any;\n throw new Error(`Failed to create media item: ${err.response?.status || 'Unknown error'} - ${JSON.stringify(err.response?.data) || err.message}`);\n }\n\n // Check if request was successful (status 200-299)\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n // Extract ID from Location header (standard REST pattern)\n const locationHeader = response.headers?.location || response.headers?.Location;\n if (!locationHeader) {\n throw new Error(\"No Location header in response - cannot determine created media ID\");\n }\n\n // Location header format: /umbraco/management/api/v1/media/{id}\n const idMatch = locationHeader.match(/\\/([a-f0-9-]{36})$/i);\n if (!idMatch) {\n throw new Error(`Could not extract ID from Location header: ${locationHeader}`);\n }\n\n const mediaId = idMatch[1];\n\n // Return the original name and the created media ID\n return { name: params.name, id: mediaId };\n } finally {\n cleanupTempFile(tempFilePath);\n }\n}\n","import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { getServerConfig } from \"@umbraco-cms/mcp-server-sdk\";\n\n/**\n * Validates file path is within allowed directories (UMBRACO_ALLOWED_MEDIA_PATHS).\n * Prevents path traversal attacks and validates symlink targets.\n * Exported for testing.\n */\nexport async function validateFilePath(filePath: string, allowedPaths?: string[]): Promise<string> {\n // Get configuration (in stdio mode, this won't log) or use provided paths\n const allowedMediaPaths = allowedPaths ?? (await getServerConfig(true)).config.allowedMediaPaths;\n\n // Check if UMBRACO_ALLOWED_MEDIA_PATHS is configured\n if (!allowedMediaPaths || allowedMediaPaths.length === 0) {\n throw new Error(\n \"File path uploads are disabled. To enable, set UMBRACO_ALLOWED_MEDIA_PATHS environment variable \" +\n \"with comma-separated allowed directory paths (e.g., UMBRACO_ALLOWED_MEDIA_PATHS=\\\"/tmp/uploads,/var/media\\\")\"\n );\n }\n\n // Normalize the requested path to absolute form\n // This prevents path traversal attacks like \"../../../etc/passwd\"\n const normalizedPath = path.resolve(filePath);\n\n // Check if the normalized path starts with any of the allowed directories\n const isAllowed = allowedMediaPaths.some((allowedPath: string) => {\n // Ensure we're comparing normalized paths\n // Use realpath for comparison to handle symlinks in the path itself (e.g., /tmp -> /private/tmp on macOS)\n const realAllowedPath = fs.realpathSync(allowedPath);\n return normalizedPath.startsWith(allowedPath) || normalizedPath.startsWith(realAllowedPath);\n });\n\n if (!isAllowed) {\n throw new Error(\n `File path \"${filePath}\" is not in an allowed directory. ` +\n `Allowed directories: ${allowedMediaPaths.join(\", \")}`\n );\n }\n\n // Additional security check: verify the file exists and is a real file (not a symlink to outside allowed paths)\n try {\n const stats = fs.lstatSync(normalizedPath);\n\n if (stats.isSymbolicLink()) {\n // Resolve the symlink and verify it's also within allowed paths\n const realPath = fs.realpathSync(normalizedPath);\n const symlinkAllowed = allowedMediaPaths.some((allowedPath: string) => {\n // Use realpath for comparison to handle symlinks in paths (e.g., /tmp -> /private/tmp on macOS)\n const realAllowedPath = fs.realpathSync(allowedPath);\n return realPath.startsWith(allowedPath) || realPath.startsWith(realAllowedPath);\n });\n\n if (!symlinkAllowed) {\n throw new Error(\n `File path \"${filePath}\" is a symbolic link to \"${realPath}\" which is outside allowed directories`\n );\n }\n }\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') {\n // File doesn't exist - let the caller handle this error\n throw new Error(`File not found: ${filePath}`);\n }\n throw error;\n }\n\n return normalizedPath;\n}\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { uploadMediaFile } from \"./helpers/media-upload-helpers.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n MEDIA_TYPE_ARTICLE,\n MEDIA_TYPE_AUDIO,\n MEDIA_TYPE_FILE,\n MEDIA_TYPE_IMAGE,\n MEDIA_TYPE_VECTOR_GRAPHICS,\n MEDIA_TYPE_VIDEO,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst createMediaMultipleSchema = z.object({\n sourceType: z.enum([\"filePath\", \"url\"]).describe(\"Media source type: 'filePath' for local files (most efficient), 'url' for web files. Base64 not supported for batch uploads due to token usage.\"),\n files: z.array(z.object({\n name: z.string().describe(\"The name of the media item\"),\n filePath: z.string().optional().describe(\"Absolute path to the file (required if sourceType is 'filePath')\"),\n fileUrl: z.string().url().optional().describe(\"URL to fetch the file from (required if sourceType is 'url')\"),\n mediaTypeName: z.string().optional().describe(`Optional override: '${MEDIA_TYPE_IMAGE}', '${MEDIA_TYPE_ARTICLE}', '${MEDIA_TYPE_AUDIO}', '${MEDIA_TYPE_VIDEO}', '${MEDIA_TYPE_VECTOR_GRAPHICS}', '${MEDIA_TYPE_FILE}', or custom media type name. If not specified, defaults to '${MEDIA_TYPE_FILE}'`),\n })).describe(\"Array of files to upload (maximum 20 files per batch)\"),\n parentId: z.string().uuid().optional().describe(\"Parent folder ID (defaults to root)\"),\n});\n\ntype CreateMediaMultipleParams = z.infer<typeof createMediaMultipleSchema>;\n\ninterface UploadResult {\n success: boolean;\n name: string;\n id?: string;\n error?: string;\n}\n\nexport const createMediaMultipleOutputSchema = z.object({\n summary: z.string(),\n results: z.array(z.object({\n success: z.boolean(),\n name: z.string(),\n id: z.string().uuid().optional(),\n error: z.string().optional()\n }))\n});\n\nconst CreateMediaMultipleTool = {\n name: \"create-media-multiple\",\n description: `Batch upload multiple media files to Umbraco (maximum 20 files per batch).\n\n Supports any file type: images, documents, audio, video, SVG, or custom types.\n\n Source Types:\n 1. filePath - Most efficient for local files, works with any size\n SECURITY: Requires UMBRACO_ALLOWED_MEDIA_PATHS environment variable\n to be configured with comma-separated allowed directories.\n Example: UMBRACO_ALLOWED_MEDIA_PATHS=\"/tmp/uploads,/var/media\"\n 2. url - Fetch from web URL\n\n Note: base64 is not supported for batch uploads due to token usage.\n\n The tool processes files sequentially and returns detailed results for each file.\n If some files fail, others will continue processing (continue-on-error strategy).`,\n inputSchema: createMediaMultipleSchema.shape,\n outputSchema: createMediaMultipleOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateMediaMultipleParams) => {\n // Validate batch size\n if (model.files.length > 20) {\n return createToolResultError({\n detail: `Batch upload limited to 20 files per call. You provided ${model.files.length} files. Please split into multiple batches.`\n });\n }\n\n const results: UploadResult[] = [];\n const client = UmbracoManagementClient.getClient();\n\n // Process files sequentially\n for (const file of model.files) {\n try {\n const temporaryFileId = uuidv4();\n const defaultMediaType = file.mediaTypeName || MEDIA_TYPE_FILE;\n\n const { name: actualName, id: mediaId } = await uploadMediaFile(client, {\n sourceType: model.sourceType,\n name: file.name,\n mediaTypeName: defaultMediaType,\n filePath: file.filePath,\n fileUrl: file.fileUrl,\n fileAsBase64: undefined,\n parentId: model.parentId,\n temporaryFileId,\n });\n\n results.push({\n success: true,\n name: actualName,\n id: mediaId,\n });\n\n } catch (error) {\n results.push({\n success: false,\n name: file.name,\n error: (error as Error).message\n });\n }\n }\n\n const successCount = results.filter(r => r.success).length;\n const failureCount = results.filter(r => !r.success).length;\n\n return createToolResult({\n summary: `Processed ${model.files.length} files: ${successCount} succeeded, ${failureCount} failed`,\n results\n });\n }),\n} satisfies ToolDefinition<typeof createMediaMultipleSchema.shape, typeof createMediaMultipleOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMediaMultipleTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n createToolResultError,\n FOLDER_MEDIA_TYPE_ID,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst createMediaFolderSchema = z.object({\n name: z.string().describe(\"The name of the folder\"),\n parentId: z.string().uuid().optional().describe(\"Parent folder ID. If not provided, the folder will be created at the root of the media library.\"),\n});\n\ntype CreateMediaFolderParams = z.infer<typeof createMediaFolderSchema>;\n\nexport const createMediaFolderOutputSchema = z.object({\n message: z.string(),\n name: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMediaFolderTool = {\n name: \"create-media-folder\",\n description: \"Creates a new folder in the media library. Use this to organize media items into folders. For uploading actual media files (images, documents, etc.), use the create-media tool instead.\",\n inputSchema: createMediaFolderSchema.shape,\n outputSchema: createMediaFolderOutputSchema.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateMediaFolderParams) => {\n try {\n const client = UmbracoManagementClient.getClient();\n\n // Cast needed: Orval types don't reflect that CAPTURE_RAW_HTTP_RESPONSE returns HttpResponse\n const response = await client.postMedia({\n values: [],\n variants: [\n {\n culture: null,\n segment: null,\n name: model.name,\n },\n ],\n parent: model.parentId ? { id: model.parentId } : null,\n mediaType: { id: FOLDER_MEDIA_TYPE_ID },\n }, CAPTURE_RAW_HTTP_RESPONSE) as unknown as HttpResponse;\n\n // Check if request was successful (status 200-299)\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n // Extract ID from Location header (standard REST pattern)\n const locationHeader = response.headers?.location || response.headers?.Location;\n if (!locationHeader) {\n throw new Error(\"No Location header in response - cannot determine created folder ID\");\n }\n\n // Location header format: /umbraco/management/api/v1/media/{id}\n const idMatch = locationHeader.match(/\\/([a-f0-9-]{36})$/i);\n if (!idMatch) {\n throw new Error(`Could not extract ID from Location header: ${locationHeader}`);\n }\n\n const folderId = idMatch[1];\n\n return createToolResult({\n message: `Media folder \"${model.name}\" created successfully`,\n name: model.name,\n id: folderId\n });\n } catch (error) {\n return createToolResultError({\n detail: `Error creating media folder: ${(error as Error).message}`,\n });\n }\n }),\n} satisfies ToolDefinition<typeof createMediaFolderSchema.shape, typeof createMediaFolderOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMediaFolderTool);\n","import { deleteMediaByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMediaTool = {\n name: \"delete-media\",\n description: \"Deletes a media item by Id. Works for all media types including folders, images, files, videos, etc.\",\n inputSchema: deleteMediaByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMediaById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMediaByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMediaTool);\n","import { getMediaByIdParams, getMediaByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaByIdTool = {\n name: \"get-media-by-id\",\n description: `Gets a media item by id\n Use this to retrieve existing media items.`,\n inputSchema: getMediaByIdParams.shape,\n outputSchema: getMediaByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getMediaById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaByIdParams.shape, typeof getMediaByIdResponse.shape>;\n\nexport default withStandardDecorators(GetMediaByIdTool);\n","import { UpdateMediaRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMediaByIdParams,\n putMediaByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putMediaByIdParams.shape.id,\n data: z.object(putMediaByIdBody.shape),\n};\n\nconst UpdateMediaTool = {\n name: \"update-media\",\n description: `Updates a media item by Id. Works for all media types including folders, images, files, videos, etc.\n Always read the current media value first and only update the required values.\n Don't miss any properties from the original media that you are updating.\n This cannot be used for moving media to a new folder. Use the move endpoint to do that.`,\n inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateMediaRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMediaById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(UpdateMediaTool);\n","import { getMediaConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaConfigurationTool = {\n name: \"get-media-configuration\",\n description: \"Gets the media configuration for the Umbraco instance.\",\n inputSchema: {},\n outputSchema: getMediaConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getMediaConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getMediaConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetMediaConfigurationTool);\n","import { GetMediaUrlsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getMediaUrlsQueryParams, getMediaUrlsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getMediaUrlsResponse,\n});\n\nconst GetMediaUrlsTool = {\n name: \"get-media-urls\",\n description: \"Gets the URLs for a media item.\",\n inputSchema: getMediaUrlsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: GetMediaUrlsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getMediaUrls(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaUrlsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaUrlsTool);\n","import { CreateMediaRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { postMediaValidateBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst ValidateMediaTool = {\n name: \"validate-media\",\n description: \"Validates a media item using the Umbraco API.\",\n inputSchema: postMediaValidateBody.shape,\n annotations: { readOnlyHint: true },\n slices: ['validate'],\n handler: (async (model: CreateMediaRequestModel) => {\n return executeVoidApiCall((client) =>\n client.postMediaValidate(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postMediaValidateBody.shape>;\n\nexport default withStandardDecorators(ValidateMediaTool);\n","import { UpdateMediaRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMediaByIdValidateParams,\n putMediaByIdValidateBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putMediaByIdValidateParams.shape.id,\n data: z.object(putMediaByIdValidateBody.shape),\n};\n\nconst ValidateMediaUpdateTool = {\n name: \"validate-media-update\",\n description: \"Validates media data before updating an existing media item by Id\",\n inputSchema,\n annotations: { readOnlyHint: true },\n slices: ['validate'],\n handler: (async (model: { id: string; data: UpdateMediaRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMediaByIdValidate(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(ValidateMediaUpdateTool);\n","import { SortingRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putMediaSortBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst SortMediaTool = {\n name: \"sort-media\",\n description: \"Sorts the order of media items under a parent.\",\n inputSchema: putMediaSortBody.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['sort'],\n handler: (async (model: SortingRequestModel) => {\n return executeVoidApiCall((client) =>\n client.putMediaSort(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putMediaSortBody.shape>;\n\nexport default withStandardDecorators(SortMediaTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { GetItemMediaParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getItemMediaQueryParams,\n getItemMediaResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemMediaResponse,\n});\n\nconst GetMediaByIdArrayTool = {\n name: \"get-media-by-id-array\",\n description: \"Gets media items by an array of IDs\",\n inputSchema: getItemMediaQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: GetItemMediaParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemMedia(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMediaQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaByIdArrayTool);\n","import { MoveMediaRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putMediaByIdMoveParams, putMediaByIdMoveBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putMediaByIdMoveParams.shape.id,\n data: z.object(putMediaByIdMoveBody.shape),\n};\n\nconst MoveMediaTool = {\n name: \"move-media\",\n description: \"Move a media item to a new location\",\n inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['move'],\n handler: (async (model: { id: string; data: MoveMediaRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMediaByIdMove(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(MoveMediaTool);\n","import { GetTreeMediaAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaAncestorsQueryParams, getTreeMediaAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreeMediaAncestorsResponse,\n});\n\nconst GetMediaAncestorsTool = {\n name: \"get-media-ancestors\",\n description: \"Gets ancestor items for a media.\",\n inputSchema: getTreeMediaAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeMediaAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaAncestorsTool);\n","import { GetTreeMediaChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaChildrenQueryParams, getTreeMediaChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaChildrenTool = {\n name: \"get-media-children\",\n description: \"Gets child items for a media.\",\n inputSchema: getTreeMediaChildrenQueryParams.shape,\n outputSchema: getTreeMediaChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMediaChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaChildrenQueryParams.shape, typeof getTreeMediaChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetMediaChildrenTool);\n","import { GetTreeMediaSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaSiblingsQueryParams, getTreeMediaSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaSiblingsTool = {\n name: \"get-media-siblings\",\n description: \"Gets sibling media items for a given descendant id\",\n inputSchema: getTreeMediaSiblingsQueryParams.shape,\n outputSchema: getTreeMediaSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMediaSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaSiblingsQueryParams.shape, typeof getTreeMediaSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetMediaSiblingsTool);\n","import { GetTreeMediaRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaRootQueryParams, getTreeMediaRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaRootTool = {\n name: \"get-media-root\",\n description: \"Gets root items for media.\",\n inputSchema: getTreeMediaRootQueryParams.shape,\n outputSchema: getTreeMediaRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMediaRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaRootQueryParams.shape, typeof getTreeMediaRootResponse.shape>;\n\nexport default withStandardDecorators(GetMediaRootTool);\n","import {\n getMediaByIdAuditLogParams,\n getMediaByIdAuditLogQueryParams,\n getMediaByIdAuditLogResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetMediaByIdAuditLogParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: getMediaByIdAuditLogParams.shape.id,\n data: z.object(getMediaByIdAuditLogQueryParams.shape),\n};\n\nconst GetMediaAuditLogTool = {\n name: \"get-media-audit-log\",\n description: \"Fetches the audit log for a media item by Id.\",\n inputSchema,\n outputSchema: getMediaByIdAuditLogResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['audit'],\n handler: (async (model: { id: string; data: GetMediaByIdAuditLogParams }) => {\n return executeGetApiCall((client) =>\n client.getMediaByIdAuditLog(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema, typeof getMediaByIdAuditLogResponse.shape>;\n\nexport default withStandardDecorators(GetMediaAuditLogTool);\n","import { GetRecycleBinMediaRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getRecycleBinMediaRootQueryParams, getRecycleBinMediaRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinMediaRootTool = {\n name: \"get-recycle-bin-media-root\",\n description: \"Gets root items for the media recycle bin.\",\n inputSchema: getRecycleBinMediaRootQueryParams.shape,\n outputSchema: getRecycleBinMediaRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree', 'recycle-bin'],\n handler: (async (params: GetRecycleBinMediaRootParams) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinMediaRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinMediaRootQueryParams.shape, typeof getRecycleBinMediaRootResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinMediaRootTool);\n","import { GetRecycleBinMediaChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getRecycleBinMediaChildrenQueryParams, getRecycleBinMediaChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinMediaChildrenTool = {\n name: \"get-recycle-bin-media-children\",\n description: \"Gets child items for a media item in the recycle bin.\",\n inputSchema: getRecycleBinMediaChildrenQueryParams.shape,\n outputSchema: getRecycleBinMediaChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree', 'recycle-bin'],\n handler: (async (params: GetRecycleBinMediaChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinMediaChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinMediaChildrenQueryParams.shape, typeof getRecycleBinMediaChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinMediaChildrenTool);\n","import { GetRecycleBinMediaSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getRecycleBinMediaSiblingsQueryParams, getRecycleBinMediaSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaRecycleBinSiblingsTool = {\n name: \"get-media-recycle-bin-siblings\",\n description: \"Gets sibling media items in the recycle bin for a given descendant id\",\n inputSchema: getRecycleBinMediaSiblingsQueryParams.shape,\n outputSchema: getRecycleBinMediaSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree', 'recycle-bin'],\n handler: (async (params: GetRecycleBinMediaSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinMediaSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinMediaSiblingsQueryParams.shape, typeof getRecycleBinMediaSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetMediaRecycleBinSiblingsTool);\n","import {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst EmptyRecycleBinTool = {\n name: \"empty-media-recycle-bin\",\n description: \"Empties the media recycle bin.\",\n inputSchema: {},\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'recycle-bin'],\n handler: (async () => {\n return executeVoidApiCall((client) =>\n client.deleteRecycleBinMedia(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}>;\n\nexport default withStandardDecorators(EmptyRecycleBinTool);\n","import { putRecycleBinMediaByIdRestoreParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst RestoreFromRecycleBinTool = {\n name: \"restore-media-from-recycle-bin\",\n description: \"Restores a media item from the recycle bin.\",\n inputSchema: putRecycleBinMediaByIdRestoreParams.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['move', 'recycle-bin'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.putRecycleBinMediaByIdRestore(id, { target: null }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putRecycleBinMediaByIdRestoreParams.shape>;\n\nexport default withStandardDecorators(RestoreFromRecycleBinTool);\n","import { putMediaByIdMoveToRecycleBinParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst MoveMediaToRecycleBinTool = {\n name: \"move-media-to-recycle-bin\",\n description: \"Move a media item to the recycle bin\",\n inputSchema: putMediaByIdMoveToRecycleBinParams.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['move', 'recycle-bin'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.putMediaByIdMoveToRecycleBin(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putMediaByIdMoveToRecycleBinParams.shape>;\n\nexport default withStandardDecorators(MoveMediaToRecycleBinTool);\n","import { deleteMediaByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteFromRecycleBinTool = {\n name: \"delete-media-from-recycle-bin\",\n description: \"Deletes a media item from the recycle bin by Id.\",\n inputSchema: deleteMediaByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'recycle-bin'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMediaById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMediaByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteFromRecycleBinTool);\n","import { deleteRecycleBinMediaByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMediaRecycleBinItemTool = {\n name: \"delete-media-recycle-bin-item\",\n description: \"Permanently deletes a media item from the recycle bin by its id\",\n inputSchema: deleteRecycleBinMediaByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'recycle-bin'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteRecycleBinMediaById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteRecycleBinMediaByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMediaRecycleBinItemTool);\n","import { GetMediaAreReferencedParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getMediaAreReferencedQueryParams, getMediaAreReferencedResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaAreReferencedTool = {\n name: \"get-media-are-referenced\",\n description: `Check if media items are referenced\n Use this to verify if specific media items are being referenced by other content before deletion or modification.`,\n inputSchema: getMediaAreReferencedQueryParams.shape,\n outputSchema: getMediaAreReferencedResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async (params: GetMediaAreReferencedParams) => {\n return executeGetApiCall((client) =>\n client.getMediaAreReferenced(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaAreReferencedQueryParams.shape, typeof getMediaAreReferencedResponse.shape>;\n\nexport default withStandardDecorators(GetMediaAreReferencedTool);\n","import { getMediaByIdReferencedByParams, getMediaByIdReferencedByQueryParams, getMediaByIdReferencedByResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...getMediaByIdReferencedByParams.shape,\n ...getMediaByIdReferencedByQueryParams.shape,\n}).shape;\n\nconst GetMediaByIdReferencedByTool = {\n name: \"get-media-by-id-referenced-by\",\n description: `Get items that reference a specific media item\n Use this to find all content, documents, or other items that are currently referencing a specific media item.`,\n inputSchema,\n outputSchema: getMediaByIdReferencedByResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async ({ id, skip, take }: { id: string; skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getMediaByIdReferencedBy(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema, typeof getMediaByIdReferencedByResponse.shape>;\n\nexport default withStandardDecorators(GetMediaByIdReferencedByTool);\n","import { getMediaByIdReferencedDescendantsParams, getMediaByIdReferencedDescendantsQueryParams, getMediaByIdReferencedDescendantsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...getMediaByIdReferencedDescendantsParams.shape,\n ...getMediaByIdReferencedDescendantsQueryParams.shape,\n}).shape;\n\nconst GetMediaByIdReferencedDescendantsTool = {\n name: \"get-media-by-id-referenced-descendants\",\n description: `Get descendant references for a media item\n Use this to find all descendant references (child items) that are being referenced for a specific media item.\n\n Useful for:\n • Impact analysis: Before deleting a media folder, see what content would be affected\n • Dependency tracking: Find all content using media from a specific folder hierarchy\n • Content auditing: Identify which descendant media items are actually being used`,\n inputSchema,\n outputSchema: getMediaByIdReferencedDescendantsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async ({ id, skip, take }: { id: string; skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getMediaByIdReferencedDescendants(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema, typeof getMediaByIdReferencedDescendantsResponse.shape>;\n\nexport default withStandardDecorators(GetMediaByIdReferencedDescendantsTool);\n","import { GetCollectionMediaParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getCollectionMediaQueryParams, getCollectionMediaResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetCollectionMediaTool = {\n name: \"get-collection-media\",\n description: `Get a collection of media items\n Use this to retrieve a filtered and paginated collection of media items based on various criteria like data type, ordering, and filtering.`,\n inputSchema: getCollectionMediaQueryParams.shape,\n outputSchema: getCollectionMediaResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetCollectionMediaParams) => {\n return executeGetApiCall((client) =>\n client.getCollectionMedia(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getCollectionMediaQueryParams.shape, typeof getCollectionMediaResponse.shape>;\n\nexport default withStandardDecorators(GetCollectionMediaTool);\n","import { GetRecycleBinMediaReferencedByParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getRecycleBinMediaReferencedByQueryParams, getRecycleBinMediaReferencedByResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinMediaReferencedByTool = {\n name: \"get-recycle-bin-media-referenced-by\",\n description: `Get references to deleted media items in the recycle bin\n Use this to find content that still references deleted media items before permanently deleting them.`,\n inputSchema: getRecycleBinMediaReferencedByQueryParams.shape,\n outputSchema: getRecycleBinMediaReferencedByResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['recycle-bin', 'references'],\n handler: (async (params: GetRecycleBinMediaReferencedByParams) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinMediaReferencedBy(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinMediaReferencedByQueryParams.shape, typeof getRecycleBinMediaReferencedByResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinMediaReferencedByTool);\n","import { getRecycleBinMediaByIdOriginalParentParams, getRecycleBinMediaByIdOriginalParentResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRecycleBinMediaOriginalParentTool = {\n name: \"get-recycle-bin-media-original-parent\",\n description: `Get the original parent location of a media item in the recycle bin\n Returns information about where the media item was located before deletion.`,\n inputSchema: getRecycleBinMediaByIdOriginalParentParams.shape,\n outputSchema: getRecycleBinMediaByIdOriginalParentResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read', 'recycle-bin'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getRecycleBinMediaByIdOriginalParent(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRecycleBinMediaByIdOriginalParentParams.shape, typeof getRecycleBinMediaByIdOriginalParentResponse.shape>;\n\nexport default withStandardDecorators(GetRecycleBinMediaOriginalParentTool);\n","import CreateMediaTool from \"./post/create-media.js\";\nimport CreateMediaMultipleTool from \"./post/create-media-multiple.js\";\nimport CreateMediaFolderTool from \"./post/create-media-folder.js\";\nimport DeleteMediaTool from \"./delete/delete-media.js\";\nimport GetMediaByIdTool from \"./get/get-media-by-id.js\";\nimport UpdateMediaTool from \"./put/update-media.js\";\nimport GetMediaConfigurationTool from \"./get/get-media-configuration.js\";\nimport GetMediaUrlsTool from \"./get/get-media-urls.js\";\nimport ValidateMediaTool from \"./post/validate-media.js\";\nimport ValidateMediaUpdateTool from \"./put/validate-media.js\";\nimport SortMediaTool from \"./put/sort-media.js\";\nimport GetMediaByIdArrayTool from \"./get/get-media-by-id-array.js\";\nimport MoveMediaTool from \"./put/move-media.js\";\nimport GetMediaAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetMediaChildrenTool from \"./items/get/get-children.js\";\nimport GetMediaSiblingsTool from \"./items/get/get-siblings.js\";\nimport GetMediaRootTool from \"./items/get/get-root.js\";\nimport GetMediaAuditLogTool from \"./get/get-media-audit-log.js\";\nimport GetMediaRecycleBinRootTool from \"./items/get/get-recycle-bin-root.js\";\nimport GetMediaRecycleBinChildrenTool from \"./items/get/get-recycle-bin-children.js\";\nimport GetMediaRecycleBinSiblingsTool from \"./items/get/get-recycle-bin-siblings.js\";\nimport EmptyRecycleBinTool from \"./delete/empty-recycle-bin.js\";\nimport RestoreFromRecycleBinTool from \"./put/restore-from-recycle-bin.js\";\nimport MoveMediaToRecycleBinTool from \"./put/move-to-recycle-bin.js\";\nimport DeleteFromRecycleBinTool from \"./delete/delete-from-recycle-bin.js\";\nimport DeleteMediaRecycleBinItemTool from \"./delete/delete-recycle-bin-item.js\";\nimport GetMediaAreReferencedTool from \"./get/get-media-are-referenced.js\";\nimport GetMediaByIdReferencedByTool from \"./get/get-media-by-id-referenced-by.js\";\nimport GetMediaByIdReferencedDescendantsTool from \"./get/get-media-by-id-referenced-descendants.js\";\nimport GetCollectionMediaTool from \"./get/get-collection-media.js\";\nimport GetRecycleBinMediaReferencedByTool from \"./get/get-recycle-bin-media-referenced-by.js\";\nimport GetRecycleBinMediaOriginalParentTool from \"./get/get-recycle-bin-media-original-parent.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const MediaCollection: ToolCollectionExport = {\n metadata: {\n name: 'media',\n displayName: 'Media',\n description: 'Media asset management and organization',\n dependencies: ['temporary-file']\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n tools.push(GetMediaByIdTool);\n\n if (AuthorizationPolicies.SectionAccessForMediaTree(user)) {\n tools.push(GetMediaAncestorsTool);\n tools.push(GetMediaChildrenTool);\n tools.push(GetMediaSiblingsTool);\n tools.push(GetMediaRootTool);\n }\n\n if (AuthorizationPolicies.SectionAccessMedia(user)) {\n tools.push(CreateMediaTool);\n tools.push(CreateMediaMultipleTool);\n tools.push(CreateMediaFolderTool);\n tools.push(DeleteMediaTool);\n tools.push(UpdateMediaTool);\n tools.push(GetMediaConfigurationTool);\n tools.push(GetMediaUrlsTool);\n tools.push(ValidateMediaTool);\n tools.push(ValidateMediaUpdateTool);\n tools.push(SortMediaTool);\n tools.push(GetMediaByIdArrayTool);\n tools.push(MoveMediaTool);\n tools.push(GetMediaAuditLogTool);\n tools.push(GetMediaRecycleBinRootTool);\n tools.push(GetMediaRecycleBinChildrenTool);\n tools.push(GetMediaRecycleBinSiblingsTool);\n tools.push(EmptyRecycleBinTool);\n tools.push(RestoreFromRecycleBinTool);\n tools.push(MoveMediaToRecycleBinTool);\n tools.push(DeleteFromRecycleBinTool);\n tools.push(DeleteMediaRecycleBinItemTool);\n tools.push(GetMediaAreReferencedTool);\n tools.push(GetMediaByIdReferencedByTool);\n tools.push(GetMediaByIdReferencedDescendantsTool);\n tools.push(GetCollectionMediaTool);\n tools.push(GetRecycleBinMediaReferencedByTool);\n tools.push(GetRecycleBinMediaOriginalParentTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const MediaTools = (user: CurrentUserResponseModel) => {\n return MediaCollection.tools(user);\n};","import { getMediaTypeConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst emptySchema = z.object({});\n\nconst GetMediaTypeConfigurationTool = {\n name: \"get-media-type-configuration\",\n description: \"Gets the configuration for media types\",\n inputSchema: emptySchema.shape,\n outputSchema: getMediaTypeConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getMediaTypeConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof emptySchema.shape, typeof getMediaTypeConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeConfigurationTool);\n","import { getMediaTypeByIdParams, getMediaTypeByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeByIdTool = {\n name: \"get-media-type-by-id\",\n description: \"Gets a media type by id\",\n inputSchema: getMediaTypeByIdParams.shape,\n outputSchema: getMediaTypeByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getMediaTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaTypeByIdParams.shape, typeof getMediaTypeByIdResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeByIdTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { getMediaTypeByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ids: z.array(z.string()),\n});\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: z.array(getMediaTypeByIdResponse),\n});\n\nconst GetMediaTypeByIdsTool = {\n name: \"get-media-type-by-ids\",\n description: \"Gets media types by ids\",\n inputSchema: inputSchema.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async ({ ids }: { ids: string[] }) => {\n const client = UmbracoManagementClient.getClient();\n const responses = await Promise.all(\n ids.map((id: string) => client.getMediaTypeById(id))\n );\n return createToolResult({ items: responses });\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaTypeByIdsTool);\n","import { getItemMediaTypeQueryParams, getItemMediaTypeResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemMediaTypeParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: getItemMediaTypeResponse,\n});\n\nconst GetItemMediaTypeTool = {\n name: \"get-item-media-type\",\n description: \"Gets media type items by their ids\",\n inputSchema: getItemMediaTypeQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: GetItemMediaTypeParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemMediaType(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMediaTypeQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetItemMediaTypeTool);\n","import { getItemMediaTypeAllowedQueryParams, getItemMediaTypeAllowedResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemMediaTypeAllowedParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetAllowedMediaTypeTool = {\n name: \"get-allowed-media-type\",\n description: \"Gets allowed file extensions for media types\",\n inputSchema: getItemMediaTypeAllowedQueryParams.shape,\n outputSchema: getItemMediaTypeAllowedResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async (params: GetItemMediaTypeAllowedParams) => {\n return executeGetApiCall((client) =>\n client.getItemMediaTypeAllowed(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMediaTypeAllowedQueryParams.shape, typeof getItemMediaTypeAllowedResponse.shape>;\n\nexport default withStandardDecorators(GetAllowedMediaTypeTool);\n","import { getMediaTypeAllowedAtRootQueryParams, getMediaTypeAllowedAtRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetMediaTypeAllowedAtRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeAllowedAtRootTool = {\n name: \"get-media-type-allowed-at-root\",\n description: \"Get media types that are allowed at root level\",\n inputSchema: getMediaTypeAllowedAtRootQueryParams.shape,\n outputSchema: getMediaTypeAllowedAtRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async (model: GetMediaTypeAllowedAtRootParams) => {\n return executeGetApiCall((client) =>\n client.getMediaTypeAllowedAtRoot(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaTypeAllowedAtRootQueryParams.shape, typeof getMediaTypeAllowedAtRootResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeAllowedAtRootTool);\n","import {\n getMediaTypeByIdAllowedChildrenParams,\n getMediaTypeByIdAllowedChildrenQueryParams,\n getMediaTypeByIdAllowedChildrenResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Combine both parameter schemas\nconst inputSchema = getMediaTypeByIdAllowedChildrenParams.merge(\n getMediaTypeByIdAllowedChildrenQueryParams\n);\n\nconst GetMediaTypeAllowedChildrenTool = {\n name: \"get-media-type-allowed-children\",\n description: \"Gets the media types that are allowed as children of a media type\",\n inputSchema: inputSchema.shape,\n outputSchema: getMediaTypeByIdAllowedChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async (model: { id: string; skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getMediaTypeByIdAllowedChildren(model.id, {\n skip: model.skip,\n take: model.take,\n }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getMediaTypeByIdAllowedChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeAllowedChildrenTool);\n","import { getMediaTypeByIdCompositionReferencesParams, getMediaTypeByIdCompositionReferencesResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: getMediaTypeByIdCompositionReferencesResponse,\n});\n\nconst GetMediaTypeCompositionReferencesTool = {\n name: \"get-media-type-composition-references\",\n description: \"Gets the composition references for a media type\",\n inputSchema: getMediaTypeByIdCompositionReferencesParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetItemsApiCall((client) =>\n client.getMediaTypeByIdCompositionReferences(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaTypeByIdCompositionReferencesParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaTypeCompositionReferencesTool);\n","import { GetTreeMediaTypeRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaTypeRootQueryParams, getTreeMediaTypeRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeRootTool = {\n name: \"get-media-type-root\",\n description: \"Gets the root level of the media type tree\",\n inputSchema: getTreeMediaTypeRootQueryParams.shape,\n outputSchema: getTreeMediaTypeRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaTypeRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMediaTypeRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaTypeRootQueryParams.shape, typeof getTreeMediaTypeRootResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeRootTool);\n","import { GetTreeMediaTypeChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaTypeChildrenQueryParams, getTreeMediaTypeChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeChildrenTool = {\n name: \"get-media-type-children\",\n description: \"Gets the children of a media type\",\n inputSchema: getTreeMediaTypeChildrenQueryParams.shape,\n outputSchema: getTreeMediaTypeChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaTypeChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMediaTypeChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaTypeChildrenQueryParams.shape, typeof getTreeMediaTypeChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeChildrenTool);\n","import { getTreeMediaTypeSiblingsQueryParams, getTreeMediaTypeSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetTreeMediaTypeSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeSiblingsTool = {\n name: \"get-media-type-siblings\",\n description: \"Gets sibling media types or media type folders for a given descendant id\",\n inputSchema: getTreeMediaTypeSiblingsQueryParams.shape,\n outputSchema: getTreeMediaTypeSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaTypeSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMediaTypeSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaTypeSiblingsQueryParams.shape, typeof getTreeMediaTypeSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeSiblingsTool);\n","import { GetTreeMediaTypeAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMediaTypeAncestorsQueryParams, getTreeMediaTypeAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: getTreeMediaTypeAncestorsResponse,\n});\n\nconst GetMediaTypeAncestorsTool = {\n name: \"get-media-type-ancestors\",\n description: \"Gets the ancestors of a media type\",\n inputSchema: getTreeMediaTypeAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMediaTypeAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeMediaTypeAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMediaTypeAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaTypeAncestorsTool);\n","import { GetItemMediaTypeFoldersParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemMediaTypeFoldersQueryParams, getItemMediaTypeFoldersResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeFoldersTool = {\n name: \"get-media-type-folders\",\n description: \"Lists media type folders with pagination support\",\n inputSchema: getItemMediaTypeFoldersQueryParams.shape,\n outputSchema: getItemMediaTypeFoldersResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list', 'folders'],\n handler: (async (params: GetItemMediaTypeFoldersParams) => {\n return executeGetApiCall((client) =>\n client.getItemMediaTypeFolders(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMediaTypeFoldersQueryParams.shape, typeof getItemMediaTypeFoldersResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeFoldersTool);\n","import { getMediaTypeFolderByIdParams, getMediaTypeFolderByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMediaTypeFolderTool = {\n name: \"get-media-type-folder\",\n description: \"Gets a media type folder by Id\",\n inputSchema: getMediaTypeFolderByIdParams.shape,\n outputSchema: getMediaTypeFolderByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getMediaTypeFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMediaTypeFolderByIdParams.shape, typeof getMediaTypeFolderByIdResponse.shape>;\n\nexport default withStandardDecorators(GetMediaTypeFolderTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateFolderRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postMediaTypeFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createMediaTypeFolderOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMediaTypeFolderTool = {\n name: \"create-media-type-folder\",\n description: \"Creates a new media type folder\",\n inputSchema: postMediaTypeFolderBody.shape,\n outputSchema: createMediaTypeFolderOutputSchema.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateFolderRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postMediaTypeFolder(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = model.id || '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Media type folder created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postMediaTypeFolderBody.shape, typeof createMediaTypeFolderOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMediaTypeFolderTool);\n","import { deleteMediaTypeFolderByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMediaTypeFolderTool = {\n name: \"delete-media-type-folder\",\n description: \"Deletes a media type folder by Id\",\n inputSchema: deleteMediaTypeFolderByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMediaTypeFolderById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMediaTypeFolderByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMediaTypeFolderTool);\n","import {\n putMediaTypeFolderByIdParams,\n putMediaTypeFolderByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: putMediaTypeFolderByIdParams.shape.id,\n data: z.object(putMediaTypeFolderByIdBody.shape),\n});\n\nconst UpdateMediaTypeFolderTool = {\n name: \"update-media-type-folder\",\n description: \"Updates a media type folder by Id\",\n inputSchema: inputSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update', 'folders'],\n handler: (async (model: { id: string; data: { name: string } }) => {\n return executeVoidApiCall((client) =>\n client.putMediaTypeFolderById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(UpdateMediaTypeFolderTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateMediaTypeRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postMediaTypeBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Extract the property and container schemas from the generated schema\nconst propertySchema = postMediaTypeBody.shape.properties;\nconst containerSchema = postMediaTypeBody.shape.containers;\nconst allowedMediaTypeSchema = postMediaTypeBody.shape.allowedMediaTypes;\nconst compositionSchema = postMediaTypeBody.shape.compositions;\nconst collectionSchema = postMediaTypeBody.shape.collection;\n\n// Flattened schema - prevents LLM JSON stringification of parent object\nconst createMediaTypeSchema = z.object({\n alias: z.string().min(1),\n name: z.string().min(1),\n description: z.string().nullish(),\n icon: z.string().min(1),\n allowedAsRoot: z.boolean(),\n variesByCulture: z.boolean(),\n variesBySegment: z.boolean(),\n isElement: z.boolean(),\n properties: propertySchema,\n containers: containerSchema,\n id: z.string().uuid().nullish(),\n parentId: z.string().uuid().optional(), // Flattened parent ID\n allowedMediaTypes: allowedMediaTypeSchema,\n compositions: compositionSchema,\n collection: collectionSchema\n});\n\ntype CreateMediaTypeSchema = z.infer<typeof createMediaTypeSchema>;\n\nexport const createMediaTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMediaTypeTool = {\n name: \"create-media-type\",\n description: \"Creates a new media type\",\n inputSchema: createMediaTypeSchema.shape,\n outputSchema: createMediaTypeOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateMediaTypeSchema) => {\n const client = UmbracoManagementClient.getClient();\n\n // Transform: flat parentId -> nested parent object for API\n const payload: CreateMediaTypeRequestModel = {\n alias: model.alias,\n name: model.name,\n description: model.description,\n icon: model.icon,\n allowedAsRoot: model.allowedAsRoot,\n variesByCulture: model.variesByCulture,\n variesBySegment: model.variesBySegment,\n isElement: model.isElement,\n properties: model.properties,\n containers: model.containers,\n id: model.id,\n parent: model.parentId ? { id: model.parentId } : undefined,\n allowedMediaTypes: model.allowedMediaTypes,\n compositions: model.compositions,\n collection: model.collection\n };\n\n const response = await client.postMediaType(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = model.id || '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Media type created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createMediaTypeSchema.shape, typeof createMediaTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMediaTypeTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { postMediaTypeByIdCopyBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { CopyMediaTypeRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: z.string().uuid(),\n data: z.object(postMediaTypeByIdCopyBody.shape),\n});\n\nexport const copyMediaTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CopyMediaTypeTool = {\n name: \"copy-media-type\",\n description: \"Copy a media type to a new location\",\n inputSchema: inputSchema.shape,\n outputSchema: copyMediaTypeOutputSchema.shape,\n slices: ['copy'],\n handler: (async (model: { id: string; data: CopyMediaTypeRequestModel }) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postMediaTypeByIdCopy(model.id, model.data, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Media type copied successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof copyMediaTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CopyMediaTypeTool);\n","import { postMediaTypeAvailableCompositionsBody, postMediaTypeAvailableCompositionsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { MediaTypeCompositionRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: postMediaTypeAvailableCompositionsResponse,\n});\n\nconst GetMediaTypeAvailableCompositionsTool = {\n name: \"get-media-type-available-compositions\",\n description: \"Gets the available compositions for a media type\",\n inputSchema: postMediaTypeAvailableCompositionsBody.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async (model: MediaTypeCompositionRequestModel) => {\n return executeGetItemsApiCall((client) =>\n client.postMediaTypeAvailableCompositions(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postMediaTypeAvailableCompositionsBody.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMediaTypeAvailableCompositionsTool);\n","import { UpdateMediaTypeRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMediaTypeByIdParams,\n putMediaTypeByIdBody,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: putMediaTypeByIdParams.shape.id,\n data: z.object(putMediaTypeByIdBody.shape),\n});\n\nconst UpdateMediaTypeTool = {\n name: \"update-media-type\",\n description: \"Updates a media type by Id\",\n inputSchema: inputSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateMediaTypeRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMediaTypeById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(UpdateMediaTypeTool);\n","import { putMediaTypeByIdMoveBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { MoveMediaTypeRequestModel } from \"@/umb-management-api/schemas/moveMediaTypeRequestModel.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: z.string().uuid(),\n data: z.object(putMediaTypeByIdMoveBody.shape),\n});\n\nconst MoveMediaTypeTool = {\n name: \"move-media-type\",\n description: \"Move a media type to a new location\",\n inputSchema: inputSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['move'],\n handler: (async (model: { id: string; data: MoveMediaTypeRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMediaTypeByIdMove(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(MoveMediaTypeTool);\n","import { deleteMediaTypeByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMediaTypeTool = {\n name: \"delete-media-type\",\n description: \"Deletes a media type by Id\",\n inputSchema: deleteMediaTypeByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMediaTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMediaTypeByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMediaTypeTool);\n","import GetMediaTypeConfigurationTool from \"./get/get-media-type-configuration.js\";\nimport GetMediaTypeByIdTool from \"./get/get-media-type-by-id.js\";\nimport GetMediaTypeByIdsTool from \"./get/get-media-type-by-ids.js\";\nimport GetItemMediaTypeTool from \"./get/get-item-media-type.js\";\nimport GetAllowedMediaTypeTool from \"./get/get-allowed.js\";\nimport GetMediaTypeAllowedAtRootTool from \"./get/get-media-type-allowed-at-root.js\";\nimport GetMediaTypeAllowedChildrenTool from \"./get/get-media-type-allowed-children.js\";\nimport GetMediaTypeCompositionReferencesTool from \"./get/get-media-type-composition-references.js\";\nimport GetMediaTypeRootTool from \"./items/get/get-root.js\";\nimport GetMediaTypeChildrenTool from \"./items/get/get-children.js\";\nimport GetMediaTypeSiblingsTool from \"./items/get/get-siblings.js\";\nimport GetMediaTypeAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetMediaTypeFoldersTool from \"./items/get/get-media-type-folders.js\";\nimport GetMediaTypeFolderTool from \"./folders/get/get-folder.js\";\nimport CreateMediaTypeFolderTool from \"./folders/post/create-folder.js\";\nimport DeleteMediaTypeFolderTool from \"./folders/delete/delete-folder.js\";\nimport UpdateMediaTypeFolderTool from \"./folders/put/update-folder.js\";\nimport CreateMediaTypeTool from \"./post/create-media-type.js\";\nimport CopyMediaTypeTool from \"./post/copy-media-type.js\";\nimport GetMediaTypeAvailableCompositionsTool from \"./post/get-media-type-available-compositions.js\";\nimport UpdateMediaTypeTool from \"./put/update-media-type.js\";\nimport MoveMediaTypeTool from \"./put/move-media-type.js\";\nimport DeleteMediaTypeTool from \"./delete/delete-media-type.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const MediaTypeCollection: ToolCollectionExport = {\n metadata: {\n name: 'media-type',\n displayName: 'Media Types',\n description: 'Media type definitions and composition management',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessMediaTypes(user)) {\n tools.push(GetMediaTypeFolderTool);\n tools.push(CreateMediaTypeFolderTool);\n tools.push(DeleteMediaTypeFolderTool);\n tools.push(UpdateMediaTypeFolderTool);\n\n tools.push(CreateMediaTypeTool);\n tools.push(CopyMediaTypeTool);\n tools.push(GetMediaTypeAvailableCompositionsTool);\n tools.push(UpdateMediaTypeTool);\n tools.push(MoveMediaTypeTool);\n tools.push(DeleteMediaTypeTool);\n\n tools.push(GetMediaTypeRootTool);\n tools.push(GetMediaTypeChildrenTool);\n tools.push(GetMediaTypeSiblingsTool);\n tools.push(GetMediaTypeAncestorsTool);\n tools.push(GetMediaTypeFoldersTool);\n }\n\n if (AuthorizationPolicies.TreeAccessMediaOrMediaTypes(user)) {\n tools.push(GetMediaTypeByIdTool);\n tools.push(GetMediaTypeByIdsTool);\n tools.push(GetItemMediaTypeTool);\n tools.push(GetMediaTypeConfigurationTool);\n tools.push(GetAllowedMediaTypeTool);\n tools.push(GetMediaTypeAllowedAtRootTool);\n tools.push(GetMediaTypeAllowedChildrenTool);\n tools.push(GetMediaTypeCompositionReferencesTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const MediaTypeTools = (user: CurrentUserResponseModel) => {\n return MediaTypeCollection.tools(user);\n}; \n","import { getMemberByIdParams, getMemberByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberTool = {\n name: \"get-member\",\n description: \"Gets a member by Id\",\n inputSchema: getMemberByIdParams.shape,\n outputSchema: getMemberByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getMemberById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMemberByIdParams.shape, typeof getMemberByIdResponse.shape>;\n\nexport default withStandardDecorators(GetMemberTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { postMemberBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CreateMemberRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createMemberOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMemberTool = {\n name: \"create-member\",\n description: `Creates a member in Umbraco.\n Use this endpoint to create new members with the specified properties and groups.`,\n inputSchema: postMemberBody.shape,\n outputSchema: createMemberOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateMemberRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postMember(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = model.id || '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Member created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postMemberBody.shape, typeof createMemberOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMemberTool);\n","import { postMemberValidateBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CreateMemberRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst ValidateMemberTool = {\n name: \"validate-member\",\n description: `Validates member data before creation using the Umbraco API.\n Use this endpoint to validate member data structure, properties, and business rules before attempting to create a new member.`,\n inputSchema: postMemberValidateBody.shape,\n annotations: { readOnlyHint: true },\n slices: ['validate'],\n handler: (async (model: CreateMemberRequestModel) => {\n return executeVoidApiCall((client) =>\n client.postMemberValidate(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postMemberValidateBody.shape>;\n\nexport default withStandardDecorators(ValidateMemberTool);\n","import { deleteMemberByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMemberTool = {\n name: \"delete-member\",\n description: \"Deletes a member by Id\",\n inputSchema: deleteMemberByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMemberById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMemberByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMemberTool);\n","import { UpdateMemberRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMemberByIdBody,\n putMemberByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: putMemberByIdParams.shape.id,\n data: z.object(putMemberByIdBody.shape),\n});\n\nconst UpdateMemberTool = {\n name: \"update-member\",\n description: \"Updates a member by Id\",\n inputSchema: inputSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateMemberRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMemberById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(UpdateMemberTool);\n","import { UpdateMemberRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMemberByIdValidateBody,\n putMemberByIdValidateParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: putMemberByIdValidateParams.shape.id,\n data: z.object(putMemberByIdValidateBody.shape),\n});\n\nconst ValidateMemberUpdateTool = {\n name: \"validate-member-update\",\n description: `Validates member data before updating using the Umbraco API.\n Use this endpoint to validate member data structure, properties, and business rules before attempting to update an existing member.`,\n inputSchema: inputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['validate'],\n handler: (async (model: { id: string; data: UpdateMemberRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMemberByIdValidate(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(ValidateMemberUpdateTool);\n","import { GetFilterMemberParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getFilterMemberQueryParams, getFilterMemberResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst FindMemberTool = {\n name: \"find-member\",\n description: `Finds members by various filter criteria`,\n inputSchema: getFilterMemberQueryParams.shape,\n outputSchema: getFilterMemberResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: GetFilterMemberParams) => {\n return executeGetApiCall((client) =>\n client.getFilterMember(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getFilterMemberQueryParams.shape, typeof getFilterMemberResponse.shape>;\n\nexport default withStandardDecorators(FindMemberTool);\n","import { getMemberAreReferencedQueryParams, getMemberAreReferencedResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetMemberAreReferencedParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberAreReferencedTool = {\n name: \"get-member-are-referenced\",\n description: `Check if member accounts are referenced\n Use this to verify if specific member accounts are being referenced by content.`,\n inputSchema: getMemberAreReferencedQueryParams.shape,\n outputSchema: getMemberAreReferencedResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async (params: GetMemberAreReferencedParams) => {\n return executeGetApiCall((client) =>\n client.getMemberAreReferenced(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMemberAreReferencedQueryParams.shape, typeof getMemberAreReferencedResponse.shape>;\n\nexport default withStandardDecorators(GetMemberAreReferencedTool);\n","import { getMemberByIdReferencedByParams, getMemberByIdReferencedByQueryParams, getMemberByIdReferencedByResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = getMemberByIdReferencedByParams.merge(getMemberByIdReferencedByQueryParams);\n\nconst GetMemberByIdReferencedByTool = {\n name: \"get-member-by-id-referenced-by\",\n description: `Get items that reference a specific member\n Use this to find all content, documents, or other items that are currently referencing a specific member account.`,\n inputSchema: inputSchema.shape,\n outputSchema: getMemberByIdReferencedByResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async ({ id, skip, take }: { id: string; skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getMemberByIdReferencedBy(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getMemberByIdReferencedByResponse.shape>;\n\nexport default withStandardDecorators(GetMemberByIdReferencedByTool);\n","import { getMemberByIdReferencedDescendantsParams, getMemberByIdReferencedDescendantsQueryParams, getMemberByIdReferencedDescendantsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = getMemberByIdReferencedDescendantsParams.merge(getMemberByIdReferencedDescendantsQueryParams);\n\nconst GetMemberByIdReferencedDescendantsTool = {\n name: \"get-member-by-id-referenced-descendants\",\n description: `Get descendant references for a member\n Use this to find all descendant references that are being referenced for a specific member account.`,\n inputSchema: inputSchema.shape,\n outputSchema: getMemberByIdReferencedDescendantsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['references'],\n handler: (async ({ id, skip, take }: { id: string; skip?: number; take?: number }) => {\n return executeGetApiCall((client) =>\n client.getMemberByIdReferencedDescendants(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof getMemberByIdReferencedDescendantsResponse.shape>;\n\nexport default withStandardDecorators(GetMemberByIdReferencedDescendantsTool);\n","import { GetItemMemberSearchParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemMemberSearchQueryParams, getItemMemberSearchResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetItemMemberSearchTool = {\n name: \"get-item-member-search\",\n description: `Searches for member items`,\n inputSchema: getItemMemberSearchQueryParams.shape,\n outputSchema: getItemMemberSearchResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: GetItemMemberSearchParams) => {\n return executeGetApiCall((client) =>\n client.getItemMemberSearch(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMemberSearchQueryParams.shape, typeof getItemMemberSearchResponse.shape>;\n\nexport default withStandardDecorators(GetItemMemberSearchTool);\n","import GetMemberTool from \"./get/get-member.js\";\nimport CreateMemberTool from \"./post/create-member.js\";\nimport ValidateMemberTool from \"./post/validate-member.js\";\nimport DeleteMemberTool from \"./delete/delete-member.js\";\nimport UpdateMemberTool from \"./put/update-member.js\";\nimport ValidateMemberUpdateTool from \"./put/validate-member-update.js\";\nimport FindMemberTool from \"./get/find-member.js\";\nimport GetMemberAreReferencedTool from \"./get/get-member-are-referenced.js\";\nimport GetMemberByIdReferencedByTool from \"./get/get-member-by-id-referenced-by.js\";\nimport GetMemberByIdReferencedDescendantsTool from \"./get/get-member-by-id-referenced-descendants.js\";\nimport GetItemMemberSearchTool from \"./get/get-item-member-search.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const MemberCollection: ToolCollectionExport = {\n metadata: {\n name: 'member',\n displayName: 'Members',\n description: 'Member account management and administration',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n if (AuthorizationPolicies.SectionAccessMembers(user)) {\n\n tools.push(GetMemberTool);\n tools.push(CreateMemberTool);\n tools.push(ValidateMemberTool);\n tools.push(DeleteMemberTool);\n tools.push(UpdateMemberTool);\n tools.push(ValidateMemberUpdateTool);\n tools.push(GetMemberAreReferencedTool);\n tools.push(GetMemberByIdReferencedByTool);\n tools.push(GetMemberByIdReferencedDescendantsTool);\n }\n tools.push(FindMemberTool);\n tools.push(GetItemMemberSearchTool);\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const MemberTools = (user: CurrentUserResponseModel) => {\n return MemberCollection.tools(user);\n}; ","import {\n getMemberGroupByIdParams,\n getMemberGroupByIdResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberGroupTool = {\n name: \"get-member-group\",\n description: \"Gets a member group by Id\",\n inputSchema: getMemberGroupByIdParams.shape,\n outputSchema: getMemberGroupByIdResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getMemberGroupById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMemberGroupByIdParams.shape, typeof getMemberGroupByIdResponse.shape>;\n\nexport default withStandardDecorators(GetMemberGroupTool);\n","import {\n getItemMemberGroupQueryParams,\n getItemMemberGroupResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemMemberGroupParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: getItemMemberGroupResponse,\n});\n\nconst GetMemberGroupByIdArrayTool = {\n name: \"get-member-group-by-id-array\",\n description: \"Gets member groups by an array of IDs\",\n inputSchema: getItemMemberGroupQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: GetItemMemberGroupParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemMemberGroup(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMemberGroupQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMemberGroupByIdArrayTool);\n","import {\n getTreeMemberGroupRootQueryParams,\n getTreeMemberGroupRootResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetTreeMemberGroupRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberGroupRootTool = {\n name: \"get-member-group-root\",\n description: \"Gets the root level of the member group tree\",\n inputSchema: getTreeMemberGroupRootQueryParams.shape,\n outputSchema: getTreeMemberGroupRootResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['tree'],\n handler: (async (params: GetTreeMemberGroupRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMemberGroupRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMemberGroupRootQueryParams.shape, typeof getTreeMemberGroupRootResponse.shape>;\n\nexport default withStandardDecorators(GetMemberGroupRootTool);\n","import { GetMemberGroupParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getMemberGroupQueryParams,\n getMemberGroupResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetAllMemberGroupsTool = {\n name: \"get-all-member-groups\",\n description: \"Gets all member groups with optional pagination\",\n inputSchema: getMemberGroupQueryParams.shape,\n outputSchema: getMemberGroupResponse.shape,\n annotations: {\n readOnlyHint: true,\n },\n slices: ['list'],\n handler: (async (params: GetMemberGroupParams) => {\n return executeGetApiCall((client) =>\n client.getMemberGroup(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMemberGroupQueryParams.shape, typeof getMemberGroupResponse.shape>;\n\nexport default withStandardDecorators(GetAllMemberGroupsTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateMemberGroupRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postMemberGroupBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMemberGroupTool = {\n name: \"create-member-group\",\n description: \"Creates a new member group\",\n inputSchema: postMemberGroupBody.shape,\n outputSchema: createOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateMemberGroupRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n\n // Generate ID if not provided\n const memberGroupId = model.id || uuidv4();\n const payload = { ...model, id: memberGroupId };\n\n const response = await client.postMemberGroup(payload, CAPTURE_RAW_HTTP_RESPONSE) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n return createToolResult({\n message: \"Member group created successfully\",\n id: memberGroupId\n });\n } else {\n return createToolResultError(response.data || {\n status: response.status,\n detail: response.statusText\n });\n }\n }),\n} satisfies ToolDefinition<typeof postMemberGroupBody.shape, typeof createOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMemberGroupTool);\n","import { UpdateMemberGroupRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMemberGroupByIdBody,\n putMemberGroupByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = {\n id: putMemberGroupByIdParams.shape.id,\n data: z.object(putMemberGroupByIdBody.shape),\n};\n\nconst UpdateMemberGroupTool = {\n name: \"update-member-group\",\n description: \"Updates a member group by Id\",\n inputSchema: inputSchema,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateMemberGroupRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMemberGroupById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema>;\n\nexport default withStandardDecorators(UpdateMemberGroupTool);\n","import { deleteMemberGroupByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMemberGroupTool = {\n name: \"delete-member-group\",\n description: \"Deletes a member group by Id\",\n inputSchema: deleteMemberGroupByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMemberGroupById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMemberGroupByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMemberGroupTool);\n","import GetMemberGroupTool from \"./get/get-member-group.js\";\nimport GetMemberGroupByIdArrayTool from \"./get/get-member-group-by-id-array.js\";\nimport GetMemberGroupRootTool from \"./get/get-root.js\";\nimport GetAllMemberGroupsTool from \"./get/get-all-member-groups.js\";\nimport CreateMemberGroupTool from \"./post/create-member-group.js\";\nimport UpdateMemberGroupTool from \"./put/update-member-group.js\";\nimport DeleteMemberGroupTool from \"./delete/delete-member-group.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const MemberGroupCollection: ToolCollectionExport = {\n metadata: {\n name: 'member-group',\n displayName: 'Member Groups',\n description: 'Member group management and organization',\n dependencies: ['member', 'member-type']\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n tools.push(GetMemberGroupTool);\n tools.push(GetMemberGroupByIdArrayTool);\n tools.push(GetAllMemberGroupsTool);\n\n if (AuthorizationPolicies.SectionAccessMembers(user)) {\n tools.push(CreateMemberGroupTool);\n tools.push(UpdateMemberGroupTool);\n tools.push(DeleteMemberGroupTool);\n }\n\n if (AuthorizationPolicies.TreeAccessMemberGroups(user)) {\n tools.push(GetMemberGroupRootTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const MemberGroupTools = (user: CurrentUserResponseModel) => {\n return MemberGroupCollection.tools(user);\n};\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateMemberTypeRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postMemberTypeBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createMemberTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateMemberTypeTool = {\n name: \"create-member-type\",\n description: \"Creates a new member type\",\n inputSchema: postMemberTypeBody.shape,\n outputSchema: createMemberTypeOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateMemberTypeRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postMemberType(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = model.id || '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Member type created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postMemberTypeBody.shape, typeof createMemberTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateMemberTypeTool);\n","import { getItemMemberTypeQueryParams, getItemMemberTypeResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemMemberTypeParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: getItemMemberTypeResponse,\n});\n\nconst GetMemberTypesByIdArrayTool = {\n name: \"get-member-types-by-id-array\",\n description: \"Gets member types by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemMemberTypeQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetItemMemberTypeParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemMemberType(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMemberTypeQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMemberTypesByIdArrayTool);\n","import { getMemberTypeByIdParams, getMemberTypeByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberTypeByIdTool = {\n name: \"get-member-type-by-id\",\n description: \"Gets a member type by id\",\n inputSchema: getMemberTypeByIdParams.shape,\n outputSchema: getMemberTypeByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getMemberTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getMemberTypeByIdParams.shape, typeof getMemberTypeByIdResponse.shape>;\n\nexport default withStandardDecorators(GetMemberTypeByIdTool);\n","import { deleteMemberTypeByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteMemberTypeTool = {\n name: \"delete-member-type\",\n description: \"Deletes a member type by id\",\n inputSchema: deleteMemberTypeByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteMemberTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteMemberTypeByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteMemberTypeTool);\n","import { UpdateMemberTypeRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putMemberTypeByIdBody,\n putMemberTypeByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: putMemberTypeByIdParams.shape.id,\n data: z.object(putMemberTypeByIdBody.shape),\n});\n\nconst UpdateMemberTypeTool = {\n name: \"update-member-type\",\n description: \"Updates a member type by id\",\n inputSchema: inputSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateMemberTypeRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putMemberTypeById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(UpdateMemberTypeTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport { ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n id: z.string().uuid(),\n});\n\nexport const copyMemberTypeOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CopyMemberTypeTool = {\n name: \"copy-member-type\",\n description: \"Copy a member type to a new location\",\n inputSchema: inputSchema.shape,\n outputSchema: copyMemberTypeOutputSchema.shape,\n slices: ['copy'],\n handler: (async (model: { id: string }) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postMemberTypeByIdCopy(model.id, {}, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = '';\n if (locationHeader) {\n const idMatch = locationHeader.match(/([0-9a-f-]{36})$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Member type copied successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape, typeof copyMemberTypeOutputSchema.shape>;\n\nexport default withStandardDecorators(CopyMemberTypeTool);\n","import { postMemberTypeAvailableCompositionsBody, postMemberTypeAvailableCompositionsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { MemberTypeCompositionRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: postMemberTypeAvailableCompositionsResponse,\n});\n\nconst GetMemberTypeAvailableCompositionsTool = {\n name: \"get-member-type-available-compositions\",\n description: \"Gets the available compositions for a member type\",\n inputSchema: postMemberTypeAvailableCompositionsBody.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async (model: MemberTypeCompositionRequestModel) => {\n return executeGetItemsApiCall((client) =>\n client.postMemberTypeAvailableCompositions(model, CAPTURE_RAW_HTTP_RESPONSE)\n ); \n }),\n} satisfies ToolDefinition<typeof postMemberTypeAvailableCompositionsBody.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMemberTypeAvailableCompositionsTool);\n","import { getMemberTypeByIdCompositionReferencesParams, getMemberTypeByIdCompositionReferencesResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Array responses must be wrapped in an object\nconst outputSchema = z.object({\n items: getMemberTypeByIdCompositionReferencesResponse,\n});\n\nconst GetMemberTypeCompositionReferencesTool = {\n name: \"get-member-type-composition-references\",\n description: \"Gets the composition references for a member type\",\n inputSchema: getMemberTypeByIdCompositionReferencesParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetItemsApiCall((client) =>\n client.getMemberTypeByIdCompositionReferences(id, CAPTURE_RAW_HTTP_RESPONSE)\n ); \n }),\n} satisfies ToolDefinition<typeof getMemberTypeByIdCompositionReferencesParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetMemberTypeCompositionReferencesTool);\n","import { getMemberTypeConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst emptySchema = z.object({});\n\nconst GetMemberTypeConfigurationTool = {\n name: \"get-member-type-configuration\",\n description: \"Gets the configuration for member types\",\n inputSchema: emptySchema.shape,\n outputSchema: getMemberTypeConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getMemberTypeConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof emptySchema.shape, typeof getMemberTypeConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetMemberTypeConfigurationTool);\n","import { GetTreeMemberTypeRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeMemberTypeRootQueryParams, getTreeMemberTypeRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberTypeRootTool = {\n name: \"get-member-type-root\",\n description: \"Gets the root level of the member type tree\",\n inputSchema: getTreeMemberTypeRootQueryParams.shape,\n outputSchema: getTreeMemberTypeRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMemberTypeRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMemberTypeRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMemberTypeRootQueryParams.shape, typeof getTreeMemberTypeRootResponse.shape>;\n\nexport default withStandardDecorators(GetMemberTypeRootTool);\n","import { getTreeMemberTypeSiblingsQueryParams, getTreeMemberTypeSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetTreeMemberTypeSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetMemberTypeSiblingsTool = {\n name: \"get-member-type-siblings\",\n description: \"Gets sibling member types or member type folders for a given descendant id\",\n inputSchema: getTreeMemberTypeSiblingsQueryParams.shape,\n outputSchema: getTreeMemberTypeSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeMemberTypeSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeMemberTypeSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeMemberTypeSiblingsQueryParams.shape, typeof getTreeMemberTypeSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetMemberTypeSiblingsTool);\n","import { getItemMemberTypeSearchQueryParams, getItemMemberTypeSearchResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemMemberTypeSearchParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst SearchMemberTypeItemsTool = {\n name: \"search-member-type-items\",\n description: \"Searches for member type items\",\n inputSchema: getItemMemberTypeSearchQueryParams.shape,\n outputSchema: getItemMemberTypeSearchResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (params: GetItemMemberTypeSearchParams) => {\n return executeGetApiCall((client) =>\n client.getItemMemberTypeSearch(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemMemberTypeSearchQueryParams.shape, typeof getItemMemberTypeSearchResponse.shape>;\n\nexport default withStandardDecorators(SearchMemberTypeItemsTool);\n","import CreateMemberTypeTool from \"./post/create-member-type.js\";\nimport GetMemberTypesByIdArrayTool from \"./get/get-member-type-by-id-array.js\";\nimport GetMemberTypeByIdTool from \"./get/get-member-type-by-id.js\";\nimport DeleteMemberTypeTool from \"./delete/delete-member-type.js\";\nimport UpdateMemberTypeTool from \"./put/update-member-type.js\";\nimport CopyMemberTypeTool from \"./post/copy-member-type.js\";\nimport GetMemberTypeAvailableCompositionsTool from \"./post/get-member-type-available-compositions.js\";\nimport GetMemberTypeCompositionReferencesTool from \"./get/get-member-type-composition-references.js\";\nimport GetMemberTypeConfigurationTool from \"./get/get-member-type-configuration.js\";\nimport GetMemberTypeRootTool from \"./items/get/get-root.js\";\nimport GetMemberTypeSiblingsTool from \"./items/get/get-siblings.js\";\nimport SearchMemberTypeItemsTool from \"./get/get-item-member-type-search.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const MemberTypeCollection: ToolCollectionExport = {\n metadata: {\n name: 'member-type',\n displayName: 'Member Types',\n description: 'Member type definitions and composition management',\n dependencies: ['member', 'member-group']\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n tools.push(GetMemberTypeByIdTool);\n\n if (AuthorizationPolicies.TreeAccessMembersOrMemberTypes(user)) {\n tools.push(CreateMemberTypeTool);\n tools.push(GetMemberTypesByIdArrayTool);\n tools.push(DeleteMemberTypeTool);\n tools.push(UpdateMemberTypeTool);\n tools.push(CopyMemberTypeTool);\n tools.push(GetMemberTypeAvailableCompositionsTool);\n tools.push(GetMemberTypeCompositionReferencesTool);\n tools.push(GetMemberTypeConfigurationTool);\n tools.push(GetMemberTypeRootTool);\n tools.push(GetMemberTypeSiblingsTool);\n tools.push(SearchMemberTypeItemsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const MemberTypeTools = (user: CurrentUserResponseModel) => {\n return MemberTypeCollection.tools(user);\n}; ","import { getModelsBuilderDashboardResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst emptySchema = z.object({});\n\nconst GetModelsBuilderDashboardTool = {\n name: \"get-models-builder-dashboard\",\n description: `Gets Models Builder dashboard information and current status.\n Returns an object containing:\n - mode: The Models Builder mode, one of: 'Nothing', 'InMemoryAuto', 'SourceCodeManual', 'SourceCodeAuto' (string)\n - canGenerate: Whether models can be generated (boolean)\n - outOfDateModels: Whether models are out of date (boolean)\n - lastError: Last error message if any (string | null)\n - version: Version information (string | null)\n - modelsNamespace: Namespace for generated models (string | null)\n - trackingOutOfDateModels: Whether tracking is enabled (boolean)`,\n inputSchema: emptySchema.shape,\n outputSchema: getModelsBuilderDashboardResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['diagnostics'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getModelsBuilderDashboard(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof emptySchema.shape, typeof getModelsBuilderDashboardResponse.shape>;\n\nexport default withStandardDecorators(GetModelsBuilderDashboardTool);\n","import { getModelsBuilderStatusResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst emptySchema = z.object({});\n\nconst GetModelsBuilderStatusTool = {\n name: \"get-models-builder-status\",\n description: `Gets the out-of-date status of Models Builder models.\n Returns an object containing:\n - status: The out-of-date status, one of: 'OutOfDate', 'Current', 'Unknown' (string)`,\n inputSchema: emptySchema.shape,\n outputSchema: getModelsBuilderStatusResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['diagnostics'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getModelsBuilderStatus(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof emptySchema.shape, typeof getModelsBuilderStatusResponse.shape>;\n\nexport default withStandardDecorators(GetModelsBuilderStatusTool);\n","import { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst emptySchema = z.object({});\n\nconst PostModelsBuilderBuildTool = {\n name: \"post-models-builder-build\",\n description: `Triggers the generation/build of Models Builder models.\n This endpoint initiates the process of generating strongly-typed models from Umbraco content types.\n The operation runs asynchronously and does not return any response data.\n\n Use this tool to:\n - Generate models after making changes to document types, media types, or member types\n - Refresh models when they become out of date\n - Ensure the latest content type definitions are reflected in generated models\n\n Note: This operation may take some time to complete depending on the number of content types.\n Use get-models-builder-dashboard or get-models-builder-status to check the current state and if new models need to be generated.`,\n inputSchema: emptySchema.shape,\n slices: ['diagnostics'],\n handler: (async () => {\n return executeVoidApiCall((client) =>\n client.postModelsBuilderBuild(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof emptySchema.shape>;\n\nexport default withStandardDecorators(PostModelsBuilderBuildTool);\n","import { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport GetModelsBuilderDashboardTool from \"./get/get-models-builder-dashboard.js\";\nimport GetModelsBuilderStatusTool from \"./get/get-models-builder-status.js\";\nimport PostModelsBuilderBuildTool from \"./post/post-models-builder-build.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const ModelsBuilderCollection: ToolCollectionExport = {\n metadata: {\n name: 'models-builder',\n displayName: 'Models Builder',\n description: 'Models Builder management and code generation',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessSettings(user)) {\n tools.push(GetModelsBuilderDashboardTool);\n tools.push(GetModelsBuilderStatusTool);\n tools.push(PostModelsBuilderBuildTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const ModelsBuilderTools = (user: CurrentUserResponseModel) => {\n return ModelsBuilderCollection.tools(user);\n};","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreatePartialViewRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst createPartialViewSchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n path: z.string().optional(),\n content: z.string().min(1, \"Content is required\")\n});\n\ntype CreatePartialViewSchema = z.infer<typeof createPartialViewSchema>;\n\nexport const createPartialViewOutputSchema = z.object({\n message: z.string(),\n path: z.string()\n});\n\nconst CreatePartialViewTool = {\n name: \"create-partial-view\",\n description: \"Creates a new partial view\",\n inputSchema: createPartialViewSchema.shape,\n outputSchema: createPartialViewOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreatePartialViewSchema) => {\n const client = UmbracoManagementClient.getClient();\n\n const normalizedPath = model.path && !model.path.startsWith('/')\n ? `/${model.path}`\n : model.path;\n\n const name = model.name.endsWith('.cshtml')\n ? model.name\n : `${model.name}.cshtml`;\n\n const content = model.content.replace(/(\\r\\n|\\n|\\r)/g, \"\");\n\n const payload: CreatePartialViewRequestModel = {\n name,\n content,\n parent: normalizedPath ? { path: normalizedPath } : undefined,\n };\n\n const response = await client.postPartialView(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract path from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdPath = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/partial-view/{encodedPath}\n const pathMatch = locationHeader.match(/partial-view\\/(.+)$/);\n if (pathMatch) {\n createdPath = decodeURIComponent(pathMatch[1]);\n }\n }\n return createToolResult({\n message: \"Partial view created successfully\",\n path: createdPath\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createPartialViewSchema.shape, typeof createPartialViewOutputSchema.shape>;\n\nexport default withStandardDecorators(CreatePartialViewTool);","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreatePartialViewFolderRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postPartialViewFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createPartialViewFolderOutputSchema = z.object({\n message: z.string(),\n path: z.string()\n});\n\nconst CreatePartialViewFolderTool = {\n name: \"create-partial-view-folder\",\n description: \"Creates a new partial view folder\",\n inputSchema: postPartialViewFolderBody.shape,\n outputSchema: createPartialViewFolderOutputSchema.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreatePartialViewFolderRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postPartialViewFolder(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract path from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdPath = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/partial-view/folder/{encodedPath}\n const pathMatch = locationHeader.match(/partial-view\\/folder\\/(.+)$/);\n if (pathMatch) {\n createdPath = decodeURIComponent(pathMatch[1]);\n }\n }\n return createToolResult({\n message: \"Partial view folder created successfully\",\n path: createdPath\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postPartialViewFolderBody.shape, typeof createPartialViewFolderOutputSchema.shape>;\n\nexport default withStandardDecorators(CreatePartialViewFolderTool);","import { getPartialViewByPathParams, getPartialViewByPathResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewByPathTool = {\n name: \"get-partial-view-by-path\",\n description: \"Gets a partial view by its path\",\n inputSchema: getPartialViewByPathParams.shape,\n outputSchema: getPartialViewByPathResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ path }: { path: string }) => {\n return executeGetApiCall((client) =>\n client.getPartialViewByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getPartialViewByPathParams.shape, typeof getPartialViewByPathResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewByPathTool);","import { getPartialViewFolderByPathParams, getPartialViewFolderByPathResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewFolderByPathTool = {\n name: \"get-partial-view-folder-by-path\",\n description: \"Gets a partial view folder by its path\",\n inputSchema: getPartialViewFolderByPathParams.shape,\n outputSchema: getPartialViewFolderByPathResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read', 'folders'],\n handler: (async ({ path }: { path: string }) => {\n return executeGetApiCall((client) =>\n client.getPartialViewFolderByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getPartialViewFolderByPathParams.shape, typeof getPartialViewFolderByPathResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewFolderByPathTool);","import { UpdatePartialViewRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putPartialViewByPathParams, putPartialViewByPathBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updatePartialViewSchema = z.object({\n path: putPartialViewByPathParams.shape.path,\n data: z.object(putPartialViewByPathBody.shape),\n});\n\nconst UpdatePartialViewTool = {\n name: \"update-partial-view\",\n description: \"Updates a partial view\",\n inputSchema: updatePartialViewSchema.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async (model: { path: string; data: UpdatePartialViewRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putPartialViewByPath(model.path, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updatePartialViewSchema.shape>;\n\nexport default withStandardDecorators(UpdatePartialViewTool);","import { RenamePartialViewRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putPartialViewByPathRenameParams, putPartialViewByPathRenameBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst renamePartialViewSchema = z.object({\n path: putPartialViewByPathRenameParams.shape.path,\n data: z.object(putPartialViewByPathRenameBody.shape),\n});\n\nconst RenamePartialViewTool = {\n name: \"rename-partial-view\",\n description: \"Renames a partial view\",\n inputSchema: renamePartialViewSchema.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['rename'],\n handler: (async (model: { path: string; data: RenamePartialViewRequestModel }) => {\n // URL encode the path to handle forward slashes properly\n const normalizedPath = encodeURIComponent(model.path);\n\n return executeVoidApiCall((client) =>\n client.putPartialViewByPathRename(normalizedPath, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof renamePartialViewSchema.shape>;\n\nexport default withStandardDecorators(RenamePartialViewTool);","import { deletePartialViewByPathParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeletePartialViewTool = {\n name: \"delete-partial-view\",\n description: \"Deletes a partial view by its path\",\n inputSchema: deletePartialViewByPathParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ path }: { path: string }) => {\n return executeVoidApiCall((client) =>\n client.deletePartialViewByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deletePartialViewByPathParams.shape>;\n\nexport default withStandardDecorators(DeletePartialViewTool);","import { deletePartialViewFolderByPathParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeletePartialViewFolderTool = {\n name: \"delete-partial-view-folder\",\n description: \"Deletes a partial view folder by its path\",\n inputSchema: deletePartialViewFolderByPathParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async ({ path }: { path: string }) => {\n return executeVoidApiCall((client) =>\n client.deletePartialViewFolderByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deletePartialViewFolderByPathParams.shape>;\n\nexport default withStandardDecorators(DeletePartialViewFolderTool);","import { GetPartialViewSnippetParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getPartialViewSnippetQueryParams, getPartialViewSnippetResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewSnippetTool = {\n name: \"get-partial-view-snippet\",\n description: \"Gets partial view snippets with optional filtering\",\n inputSchema: getPartialViewSnippetQueryParams.shape,\n outputSchema: getPartialViewSnippetResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['templates'],\n handler: (async (model: GetPartialViewSnippetParams) => {\n return executeGetApiCall((client) =>\n client.getPartialViewSnippet(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getPartialViewSnippetQueryParams.shape, typeof getPartialViewSnippetResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewSnippetTool);","import { getPartialViewSnippetByIdParams, getPartialViewSnippetByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewSnippetByIdTool = {\n name: \"get-partial-view-snippet-by-id\",\n description: \"Gets a specific partial view snippet by its ID\",\n inputSchema: getPartialViewSnippetByIdParams.shape,\n outputSchema: getPartialViewSnippetByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['templates'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getPartialViewSnippetById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getPartialViewSnippetByIdParams.shape, typeof getPartialViewSnippetByIdResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewSnippetByIdTool);","\nimport { GetTreePartialViewAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreePartialViewAncestorsQueryParams, getTreePartialViewAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getTreePartialViewAncestorsResponse,\n});\n\nconst GetPartialViewAncestorsTool = {\n name: \"get-partial-view-ancestors\",\n description: \"Gets the ancestors of a partial view in the tree structure\",\n inputSchema: getTreePartialViewAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreePartialViewAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreePartialViewAncestors(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreePartialViewAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetPartialViewAncestorsTool);","import { GetTreePartialViewChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreePartialViewChildrenQueryParams, getTreePartialViewChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewChildrenTool = {\n name: \"get-partial-view-children\",\n description: \"Gets the children of a partial view in the tree structure\",\n inputSchema: getTreePartialViewChildrenQueryParams.shape,\n outputSchema: getTreePartialViewChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreePartialViewChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreePartialViewChildren(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreePartialViewChildrenQueryParams.shape, typeof getTreePartialViewChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewChildrenTool);","import { GetTreePartialViewRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreePartialViewRootQueryParams, getTreePartialViewRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewRootTool = {\n name: \"get-partial-view-root\",\n description: \"Gets the root partial views in the tree structure\",\n inputSchema: getTreePartialViewRootQueryParams.shape,\n outputSchema: getTreePartialViewRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreePartialViewRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreePartialViewRoot(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreePartialViewRootQueryParams.shape, typeof getTreePartialViewRootResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewRootTool);","import { GetItemPartialViewParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemPartialViewQueryParams, getItemPartialViewResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst outputSchema = z.object({\n items: getItemPartialViewResponse,\n});\n\nconst GetPartialViewSearchTool = {\n name: \"get-partial-view-search\",\n description: \"Searches for partial views by name or path\",\n inputSchema: getItemPartialViewQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: GetItemPartialViewParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemPartialView(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemPartialViewQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetPartialViewSearchTool);","import { GetTreePartialViewSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreePartialViewSiblingsQueryParams, getTreePartialViewSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetPartialViewSiblingsTool = {\n name: \"get-partial-view-siblings\",\n description: \"Gets sibling partial views for a given descendant path\",\n inputSchema: getTreePartialViewSiblingsQueryParams.shape,\n outputSchema: getTreePartialViewSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreePartialViewSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreePartialViewSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreePartialViewSiblingsQueryParams.shape, typeof getTreePartialViewSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetPartialViewSiblingsTool);\n","// CRUD operations\nimport CreatePartialViewTool from \"./post/create-partial-view.js\";\nimport CreatePartialViewFolderTool from \"./post/create-partial-view-folder.js\";\nimport GetPartialViewByPathTool from \"./get/get-partial-view-by-path.js\";\nimport GetPartialViewFolderByPathTool from \"./get/get-partial-view-folder-by-path.js\";\nimport UpdatePartialViewTool from \"./put/update-partial-view.js\";\nimport RenamePartialViewTool from \"./put/rename-partial-view.js\";\nimport DeletePartialViewTool from \"./delete/delete-partial-view.js\";\nimport DeletePartialViewFolderTool from \"./delete/delete-partial-view-folder.js\";\n\n// Snippet operations\nimport GetPartialViewSnippetTool from \"./get/get-partial-view-snippet.js\";\nimport GetPartialViewSnippetByIdTool from \"./get/get-partial-view-snippet-by-id.js\";\n\n// Tree operations\nimport GetPartialViewAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetPartialViewChildrenTool from \"./items/get/get-children.js\";\nimport GetPartialViewRootTool from \"./items/get/get-root.js\";\nimport GetPartialViewSearchTool from \"./items/get/get-search.js\";\nimport GetPartialViewSiblingsTool from \"./items/get/get-siblings.js\";\n\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const PartialViewCollection: ToolCollectionExport = {\n metadata: {\n name: 'partial-view',\n displayName: 'Partial Views',\n description: 'Razor partial view file management and templating',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessPartialViews(user)) {\n // Basic CRUD operations\n tools.push(CreatePartialViewTool);\n tools.push(CreatePartialViewFolderTool);\n tools.push(GetPartialViewByPathTool);\n tools.push(GetPartialViewFolderByPathTool);\n tools.push(UpdatePartialViewTool);\n tools.push(RenamePartialViewTool);\n tools.push(DeletePartialViewTool);\n tools.push(DeletePartialViewFolderTool);\n\n // Snippet operations\n tools.push(GetPartialViewSnippetTool);\n tools.push(GetPartialViewSnippetByIdTool);\n\n // Tree operations\n tools.push(GetPartialViewAncestorsTool);\n tools.push(GetPartialViewChildrenTool);\n tools.push(GetPartialViewRootTool);\n tools.push(GetPartialViewSearchTool);\n tools.push(GetPartialViewSiblingsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const PartialViewTools = (user: CurrentUserResponseModel) => {\n return PartialViewCollection.tools(user);\n};","import { getPropertyTypeIsUsedQueryParams, getPropertyTypeIsUsedResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\ntype SchemaParams = z.infer<typeof getPropertyTypeIsUsedQueryParams>;\n\nconst outputSchema = z.object({\n isUsed: getPropertyTypeIsUsedResponse,\n});\n\nconst GetPropertyTypeIsUsedTool = {\n name: \"get-property-type-is-used\",\n description: \"Checks if a property type is used within Umbraco\",\n inputSchema: getPropertyTypeIsUsedQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ contentTypeId, propertyAlias }: SchemaParams) => {\n return executeGetItemsApiCall((client) =>\n client.getPropertyTypeIsUsed({\n contentTypeId,\n propertyAlias,\n }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n\n }),\n} satisfies ToolDefinition<typeof getPropertyTypeIsUsedQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetPropertyTypeIsUsedTool);\n","import GetPropertyTypeIsUsedTool from \"./get/get-property-type-is-used.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const PropertyTypeCollection: ToolCollectionExport = {\n metadata: {\n name: 'property-type',\n displayName: 'Property Types',\n description: 'Property type usage and validation utilities',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [GetPropertyTypeIsUsedTool];\n return tools\n }\n};\n\n// Backwards compatibility export\nexport const PropertyTypeTools = (user: CurrentUserResponseModel) => {\n return PropertyTypeCollection.tools(user);\n};\n","import { getRedirectManagementResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetAllRedirectsTool = {\n name: \"get-all-redirects\",\n description: `Gets all redirects from the Umbraco server.\n Returns a list of redirects with their details.`,\n inputSchema: {},\n outputSchema: getRedirectManagementResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getRedirectManagement(undefined, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getRedirectManagementResponse.shape>;\n\nexport default withStandardDecorators(GetAllRedirectsTool);\n","import { getRedirectManagementByIdParams, getRedirectManagementByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRedirectByIdTool = {\n name: \"get-redirect-by-id\",\n description: `Gets a specific redirect by its ID.\n Parameters:\n - id: The unique identifier of the redirect (string)\n\n Returns the redirect details.`,\n inputSchema: getRedirectManagementByIdParams.shape,\n outputSchema: getRedirectManagementByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getRedirectManagementById(id, undefined, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRedirectManagementByIdParams.shape, typeof getRedirectManagementByIdResponse.shape>;\n\nexport default withStandardDecorators(GetRedirectByIdTool);\n","import { deleteRedirectManagementByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteRedirectTool = {\n name: \"delete-redirect\",\n description: `Deletes a specific redirect by its ID.\n Parameters:\n - id: The unique identifier of the redirect to delete (string)`,\n inputSchema: deleteRedirectManagementByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteRedirectManagementById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteRedirectManagementByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteRedirectTool);\n","import { getRedirectManagementStatusResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRedirectStatusTool = {\n name: \"get-redirect-status\",\n description: `Gets the current status of redirect management.\n Returns information about whether redirects are enabled and other status details.`,\n inputSchema: {},\n outputSchema: getRedirectManagementStatusResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getRedirectManagementStatus(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getRedirectManagementStatusResponse.shape>;\n\nexport default withStandardDecorators(GetRedirectStatusTool);\n","import { postRedirectManagementStatusQueryParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\ntype SchemaParams = z.infer<typeof postRedirectManagementStatusQueryParams>;\n\nconst UpdateRedirectStatusTool = {\n name: \"update-redirect-status\",\n description: `Updates the status of redirect management.\n Parameters:\n - status: The new status, either \"Enabled\" or \"Disabled\" (string)`,\n inputSchema: postRedirectManagementStatusQueryParams.shape,\n annotations: {\n idempotentHint: true,\n },\n slices: ['update'],\n handler: (async ({ status }: SchemaParams) => {\n return executeVoidApiCall((client) =>\n client.postRedirectManagementStatus({ status }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postRedirectManagementStatusQueryParams.shape>;\n\nexport default withStandardDecorators(UpdateRedirectStatusTool);\n","import GetAllRedirectsTool from \"./get/get-all-redirects.js\";\nimport GetRedirectByIdTool from \"./get/get-redirect-by-id.js\";\nimport DeleteRedirectTool from \"./delete/delete-redirect.js\";\nimport GetRedirectStatusTool from \"./get/get-redirect-status.js\";\nimport UpdateRedirectStatusTool from \"./post/update-redirect-status.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const RedirectCollection: ToolCollectionExport = {\n metadata: {\n name: 'redirect',\n displayName: 'Redirects',\n description: 'URL redirect management and configuration',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessContent(user)) {\n tools.push(GetAllRedirectsTool);\n tools.push(GetRedirectByIdTool);\n tools.push(DeleteRedirectTool);\n tools.push(GetRedirectStatusTool);\n tools.push(UpdateRedirectStatusTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const RedirectTools = (user: CurrentUserResponseModel) => {\n return RedirectCollection.tools(user);\n};","import { getRelationByRelationTypeIdParams, getRelationByRelationTypeIdQueryParams, getRelationByRelationTypeIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst schemaParams = z.object({\n ...getRelationByRelationTypeIdParams.shape,\n ...getRelationByRelationTypeIdQueryParams.shape,\n});\n\nconst GetRelationByRelationTypeIdTool = {\n name: \"get-relation-by-relation-type-id\",\n description: \"Gets relations by relation type ID\",\n inputSchema: schemaParams.shape,\n outputSchema: getRelationByRelationTypeIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id, skip, take }: z.infer<typeof schemaParams>) => {\n return executeGetApiCall((client) =>\n client.getRelationByRelationTypeId(id, { skip, take }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof schemaParams.shape, typeof getRelationByRelationTypeIdResponse.shape>;\n\nexport default withStandardDecorators(GetRelationByRelationTypeIdTool);","import GetRelationByRelationTypeIdTool from \"./get/get-relation-by-relation-type-id.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const RelationCollection: ToolCollectionExport = {\n metadata: {\n name: 'relation',\n displayName: 'Relation',\n description: 'Relation management and querying'\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessRelationTypes(user)) {\n tools.push(GetRelationByRelationTypeIdTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export (can be removed later)\nexport const RelationTools = (user: CurrentUserResponseModel) => {\n return RelationCollection.tools(user);\n};","import { GetRelationTypeParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getRelationTypeQueryParams, getRelationTypeResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRelationTypeTool = {\n name: \"get-relation-type\",\n description: \"Gets all relation types with pagination\",\n inputSchema: getRelationTypeQueryParams.shape,\n outputSchema: getRelationTypeResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (model: GetRelationTypeParams) => {\n return executeGetApiCall((client) =>\n client.getRelationType(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRelationTypeQueryParams.shape, typeof getRelationTypeResponse.shape>;\n\nexport default withStandardDecorators(GetRelationTypeTool);","import { getRelationTypeByIdParams, getRelationTypeByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetRelationTypeByIdTool = {\n name: \"get-relation-type-by-id\",\n description: \"Gets a relation type by Id\",\n inputSchema: getRelationTypeByIdParams.shape,\n outputSchema: getRelationTypeByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getRelationTypeById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getRelationTypeByIdParams.shape, typeof getRelationTypeByIdResponse.shape>;\n\nexport default withStandardDecorators(GetRelationTypeByIdTool);","import GetRelationTypeTool from \"./get/get-relation-type.js\";\nimport GetRelationTypeByIdTool from \"./get/get-relation-type-by-id.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const RelationTypeCollection: ToolCollectionExport = {\n metadata: {\n name: 'relation-type',\n displayName: 'Relation Type',\n description: 'Relation type management and configuration'\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessRelationTypes(user)) {\n tools.push(GetRelationTypeTool);\n tools.push(GetRelationTypeByIdTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export (can be removed later)\nexport const RelationTypeTools = (user: CurrentUserResponseModel) => {\n return RelationTypeCollection.tools(user);\n};","import { getScriptByPathParams, getScriptByPathResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetScriptByPathTool = {\n name: \"get-script-by-path\",\n description: \"Gets a script by path\",\n inputSchema: getScriptByPathParams.shape,\n outputSchema: getScriptByPathResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ path }: { path: string }) => {\n return executeGetApiCall((client) =>\n client.getScriptByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getScriptByPathParams.shape, typeof getScriptByPathResponse.shape>;\n\nexport default withStandardDecorators(GetScriptByPathTool);\n","import { getScriptFolderByPathParams, getScriptFolderByPathResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetScriptFolderByPathTool = {\n name: \"get-script-folder-by-path\",\n description: \"Gets a script folder by path\",\n inputSchema: getScriptFolderByPathParams.shape,\n outputSchema: getScriptFolderByPathResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read', 'folders'],\n handler: (async ({ path }: { path: string }) => {\n return executeGetApiCall((client) =>\n client.getScriptFolderByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getScriptFolderByPathParams.shape, typeof getScriptFolderByPathResponse.shape>;\n\nexport default withStandardDecorators(GetScriptFolderByPathTool);\n","import { GetItemScriptParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemScriptQueryParams, getItemScriptResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemScriptResponse,\n});\n\nconst GetScriptItemsTool = {\n name: \"get-script-items\",\n description: \"Gets script items\",\n inputSchema: getItemScriptQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (model: GetItemScriptParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemScript(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemScriptQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetScriptItemsTool);\n","import { GetTreeScriptAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeScriptAncestorsQueryParams, getTreeScriptAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n createToolResult,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getTreeScriptAncestorsResponse,\n});\n\nconst GetScriptTreeAncestorsTool = {\n name: \"get-script-tree-ancestors\",\n description: \"Gets script tree ancestors\",\n inputSchema: getTreeScriptAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeScriptAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeScriptAncestors(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeScriptAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetScriptTreeAncestorsTool);\n","import { GetTreeScriptChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeScriptChildrenQueryParams, getTreeScriptChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetScriptTreeChildrenTool = {\n name: \"get-script-tree-children\",\n description: \"Gets script tree children\",\n inputSchema: getTreeScriptChildrenQueryParams.shape,\n outputSchema: getTreeScriptChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeScriptChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeScriptChildren(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeScriptChildrenQueryParams.shape, typeof getTreeScriptChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetScriptTreeChildrenTool);\n","import { GetTreeScriptRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeScriptRootQueryParams, getTreeScriptRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetScriptTreeRootTool = {\n name: \"get-script-tree-root\",\n description: \"Gets script tree root\",\n inputSchema: getTreeScriptRootQueryParams.shape,\n outputSchema: getTreeScriptRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeScriptRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeScriptRoot(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeScriptRootQueryParams.shape, typeof getTreeScriptRootResponse.shape>;\n\nexport default withStandardDecorators(GetScriptTreeRootTool);\n","import { GetTreeScriptSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeScriptSiblingsQueryParams, getTreeScriptSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetScriptTreeSiblingsTool = {\n name: \"get-script-tree-siblings\",\n description: \"Gets sibling scripts for a given descendant path\",\n inputSchema: getTreeScriptSiblingsQueryParams.shape,\n outputSchema: getTreeScriptSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeScriptSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeScriptSiblings(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeScriptSiblingsQueryParams.shape, typeof getTreeScriptSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetScriptTreeSiblingsTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateScriptRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst createScriptSchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n path: z.string().optional(),\n content: z.string().min(1, \"Content is required\")\n});\n\ntype CreateScriptSchema = z.infer<typeof createScriptSchema>;\n\nexport const createScriptOutputSchema = z.object({\n message: z.string(),\n path: z.string()\n});\n\nconst CreateScriptTool = {\n name: \"create-script\",\n description: \"Creates a new script\",\n inputSchema: createScriptSchema.shape,\n outputSchema: createScriptOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateScriptSchema) => {\n const client = UmbracoManagementClient.getClient();\n\n const normalizedPath = model.path && !model.path.startsWith('/')\n ? `/${model.path}`\n : model.path;\n\n const name = model.name.endsWith('.js')\n ? model.name\n : `${model.name}.js`;\n\n const payload: CreateScriptRequestModel = {\n name,\n content: model.content,\n parent: normalizedPath ? { path: normalizedPath } : undefined,\n };\n\n const response = await client.postScript(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract path from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdPath = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/script/{encodedPath}\n const pathMatch = locationHeader.match(/script\\/(.+)$/);\n if (pathMatch) {\n createdPath = decodeURIComponent(pathMatch[1]);\n }\n }\n return createToolResult({\n message: \"Script created successfully\",\n path: createdPath\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createScriptSchema.shape, typeof createScriptOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateScriptTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateScriptFolderRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postScriptFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createScriptFolderOutputSchema = z.object({\n message: z.string(),\n path: z.string()\n});\n\nconst CreateScriptFolderTool = {\n name: \"create-script-folder\",\n description: \"Creates a new script folder\",\n inputSchema: postScriptFolderBody.shape,\n outputSchema: createScriptFolderOutputSchema.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateScriptFolderRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n\n const response = await client.postScriptFolder(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract path from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdPath = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/script/folder/{encodedPath}\n const pathMatch = locationHeader.match(/script\\/folder\\/(.+)$/);\n if (pathMatch) {\n createdPath = decodeURIComponent(pathMatch[1]);\n }\n }\n return createToolResult({\n message: \"Script folder created successfully\",\n path: createdPath\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postScriptFolderBody.shape, typeof createScriptFolderOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateScriptFolderTool);\n","import { UpdateScriptRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putScriptByPathBody,\n putScriptByPathParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateScriptSchema = {\n path: putScriptByPathParams.shape.path,\n data: z.object(putScriptByPathBody.shape),\n};\n\nconst UpdateScriptTool = {\n name: \"update-script\",\n description: \"Updates a script by path\",\n inputSchema: updateScriptSchema,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { path: string; data: UpdateScriptRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putScriptByPath(model.path, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateScriptSchema>;\n\nexport default withStandardDecorators(UpdateScriptTool);\n","import { RenameScriptRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst renameScriptSchema = z.object({\n name: z.string().min(1, \"Current script name is required\"),\n folderPath: z.string().optional().describe(\"Path to the folder containing the script (optional, leave empty for root)\"),\n newName: z.string().min(1, \"New script name is required\")\n});\n\ntype RenameScriptSchema = z.infer<typeof renameScriptSchema>;\n\nconst RenameScriptTool = {\n name: \"rename-script\",\n description: \"Renames a script by name and folder path\",\n inputSchema: renameScriptSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['rename'],\n handler: (async (model: RenameScriptSchema) => {\n // Ensure script names have .js extension\n const currentName = model.name.endsWith('.js') ? model.name : `${model.name}.js`;\n const newName = model.newName.endsWith('.js') ? model.newName : `${model.newName}.js`;\n\n // Construct the full path for the current script\n const normalizedFolderPath = model.folderPath && !model.folderPath.startsWith('/')\n ? `/${model.folderPath}`\n : model.folderPath;\n\n const fullPath = normalizedFolderPath\n ? `${normalizedFolderPath}/${currentName}`\n : `/${currentName}`;\n\n // URL encode the path to handle forward slashes properly\n const encodedPath = encodeURIComponent(fullPath);\n\n const renameModel: RenameScriptRequestModel = {\n name: newName\n };\n\n return executeVoidApiCall((client) =>\n client.putScriptByPathRename(encodedPath, renameModel, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof renameScriptSchema.shape>;\n\nexport default withStandardDecorators(RenameScriptTool);\n","import { deleteScriptByPathParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteScriptTool = {\n name: \"delete-script\",\n description: \"Deletes a script by path\",\n inputSchema: deleteScriptByPathParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ path }: { path: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteScriptByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteScriptByPathParams.shape>;\n\nexport default withStandardDecorators(DeleteScriptTool);\n","import { deleteScriptFolderByPathParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteScriptFolderTool = {\n name: \"delete-script-folder\",\n description: \"Deletes a script folder by path\",\n inputSchema: deleteScriptFolderByPathParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async ({ path }: { path: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteScriptFolderByPath(path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteScriptFolderByPathParams.shape>;\n\nexport default withStandardDecorators(DeleteScriptFolderTool);\n","import GetScriptByPathTool from \"./get/get-script-by-path.js\";\nimport GetScriptFolderByPathTool from \"./get/get-script-folder-by-path.js\";\nimport GetScriptItemsTool from \"./get/get-script-items.js\";\nimport GetScriptTreeAncestorsTool from \"./get/get-script-tree-ancestors.js\";\nimport GetScriptTreeChildrenTool from \"./get/get-script-tree-children.js\";\nimport GetScriptTreeRootTool from \"./get/get-script-tree-root.js\";\nimport GetScriptTreeSiblingsTool from \"./get/get-script-tree-siblings.js\";\nimport CreateScriptTool from \"./post/create-script.js\";\nimport CreateScriptFolderTool from \"./post/create-script-folder.js\";\nimport UpdateScriptTool from \"./put/update-script.js\";\nimport RenameScriptTool from \"./put/rename-script.js\";\nimport DeleteScriptTool from \"./delete/delete-script.js\";\nimport DeleteScriptFolderTool from \"./delete/delete-script-folder.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const ScriptCollection: ToolCollectionExport = {\n metadata: {\n name: 'script',\n displayName: 'Scripts',\n description: 'JavaScript file management and scripting',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessScripts(user)) {\n tools.push(GetScriptByPathTool);\n tools.push(GetScriptFolderByPathTool);\n tools.push(GetScriptItemsTool);\n tools.push(GetScriptTreeAncestorsTool);\n tools.push(GetScriptTreeChildrenTool);\n tools.push(GetScriptTreeRootTool);\n tools.push(GetScriptTreeSiblingsTool);\n tools.push(CreateScriptTool);\n tools.push(CreateScriptFolderTool);\n tools.push(UpdateScriptTool);\n tools.push(RenameScriptTool);\n tools.push(DeleteScriptTool);\n tools.push(DeleteScriptFolderTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const ScriptTools = (user: CurrentUserResponseModel) => {\n return ScriptCollection.tools(user);\n};","import { getSearcherQueryParams, getSearcherResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetSearcherParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetSearcherTool = {\n name: \"get-searcher\",\n description: `Lists all searchers with pagination support.\n Returns an object containing:\n - total: Total number of searchers (number)\n - items: Array of searcher objects with name and isEnabled properties`,\n inputSchema: getSearcherQueryParams.shape,\n outputSchema: getSearcherResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (model: GetSearcherParams) => {\n return executeGetApiCall((client) =>\n client.getSearcher(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getSearcherQueryParams.shape, typeof getSearcherResponse.shape>;\n\nexport default withStandardDecorators(GetSearcherTool);\n","import { getSearcherBySearcherNameQueryParams, getSearcherBySearcherNameQueryQueryParams, getSearcherBySearcherNameQueryResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetSearcherBySearcherNameQueryParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Combine both parameter schemas for the tool\nconst combinedSchema = getSearcherBySearcherNameQueryParams.merge(getSearcherBySearcherNameQueryQueryParams);\n\nconst GetSearcherBySearcherNameQueryTool = {\n name: \"get-searcher-by-searcher-name-query\",\n description: `Gets search results from a specific searcher by name with query parameters.\n Returns search results from the specified searcher with pagination support.`,\n inputSchema: combinedSchema.shape,\n outputSchema: getSearcherBySearcherNameQueryResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: { searcherName: string } & GetSearcherBySearcherNameQueryParams) => {\n const { searcherName, ...queryParams } = model;\n return executeGetApiCall((client) =>\n client.getSearcherBySearcherNameQuery(searcherName, queryParams, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof combinedSchema.shape, typeof getSearcherBySearcherNameQueryResponse.shape>;\n\nexport default withStandardDecorators(GetSearcherBySearcherNameQueryTool);\n","import GetSearcherTool from \"./get/get-searcher.js\";\nimport GetSearcherBySearcherNameQueryTool from \"./get/get-searcher-by-searcher-name-query.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const SearcherCollection: ToolCollectionExport = {\n metadata: {\n name: 'searcher',\n displayName: 'Searcher',\n description: 'Searcher management and query operations',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessSettings(user)) {\n tools.push(GetSearcherTool);\n tools.push(GetSearcherBySearcherNameQueryTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const SearcherTools = (user: CurrentUserResponseModel) => {\n return SearcherCollection.tools(user);\n};","import { getServerInformationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetServerInformationTool = {\n name: \"get-server-information\",\n description: `Gets information about the Umbraco server.\n Returns an object containing:\n - version: The Umbraco version (string)\n - assemblyVersion: The assembly version (string)\n - baseUtcOffset: The server's UTC offset (string)\n - runtimeMode: The server's runtime mode, one of: 'BackofficeDevelopment', 'Development', 'Production' (string)\n\n Example response:\n {\n \"version\": \"15.3.1\",\n \"assemblyVersion\": \"15.3.1.0\",\n \"baseUtcOffset\": \"-07:00:00\",\n \"runtimeMode\": \"BackofficeDevelopment\"\n }`,\n inputSchema: {},\n outputSchema: getServerInformationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['server-info'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getServerInformation(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getServerInformationResponse.shape>;\n\nexport default withStandardDecorators(GetServerInformationTool);\n","import { getServerStatusResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetServerStatusTool = {\n name: \"get-server-status\",\n description: `Gets the current status of the Umbraco server.\n Returns the server status (serverStatus) which can be one of:\n - Unknown: Status cannot be determined\n - Boot: Server is starting up\n - Install: Server is in installation mode\n - Upgrade: Server is performing an upgrade\n - Run: Server is running normally\n - BootFailed: Server failed to start\n\n Example response:\n {\n \"serverStatus\": \"Run\"\n }`,\n inputSchema: {},\n outputSchema: getServerStatusResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['server-info'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getServerStatus(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getServerStatusResponse.shape>;\n\nexport default withStandardDecorators(GetServerStatusTool);\n","import { getServerConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetServerConfigurationTool = {\n name: \"get-server-configuration\",\n description: `Gets the server configuration settings.\n Returns an object containing:\n - allowPasswordReset: Whether password reset is allowed (boolean)\n - versionCheckPeriod: The period between version checks in minutes (number)\n - allowLocalLogin: Whether local login is allowed (boolean)\n\n Example response:\n {\n \"allowPasswordReset\": true,\n \"versionCheckPeriod\": 1440,\n \"allowLocalLogin\": true\n }`,\n inputSchema: {},\n outputSchema: getServerConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['server-info'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getServerConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getServerConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetServerConfigurationTool);\n","import { getServerTroubleshootingResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetServerTroubleshootingTool = {\n name: \"get-server-troubleshooting\",\n description: `Gets server troubleshooting information.\n Returns an array of diagnostic items, where each item contains:\n - name: The name/identifier of the diagnostic check (string)\n - data: The diagnostic data or result for that check (string)\n\n Example response:\n {\n \"items\": [\n {\n \"name\": \"Server OS\",\n \"data\": \"Darwin 23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:14:30 PDT 2024; root:xnu-10063.141.2~1/RELEASE_ARM64_T6000\"\n },\n {\n \"name\": \"Server Framework\",\n \"data\": \".NET 9.0.0\"\n },\n {\n \"name\": \"Default Language\",\n \"data\": \"en-US\"\n },\n {\n \"name\": \"Umbraco Version\",\n \"data\": \"15.3.1\"\n },\n {\n \"name\": \"Current Culture\",\n \"data\": \"en-US\"\n },\n {\n \"name\": \"Current UI Culture\",\n \"data\": \"en-US\"\n },\n {\n \"name\": \"Current Webserver\",\n \"data\": \"Kestrel\"\n },\n {\n \"name\": \"Models Builder Mode\",\n \"data\": \"InMemoryAuto\"\n },\n {\n \"name\": \"Runtime Mode\",\n \"data\": \"BackofficeDevelopment\"\n },\n {\n \"name\": \"Debug Mode\",\n \"data\": \"True\"\n },\n {\n \"name\": \"Database Provider\",\n \"data\": \"Microsoft.Data.SqlClient\"\n },\n {\n \"name\": \"Current Server Role\",\n \"data\": \"Single\"\n }\n ]\n }`,\n inputSchema: {},\n outputSchema: getServerTroubleshootingResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['server-info'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getServerTroubleshooting(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getServerTroubleshootingResponse.shape>;\n\nexport default withStandardDecorators(GetServerTroubleshootingTool);\n","import { getServerUpgradeCheckResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetServerUpgradeCheckTool = {\n name: \"get-server-upgrade-check\",\n description: `Checks the server upgrade status and requirements.\n Returns an object containing:\n - type: The type of upgrade information (string)\n - comment: A description or message about the upgrade (string)\n - url: A URL with more information about the upgrade (string)\n\n Example response:\n {\n \"type\": \"UpgradeAvailable\",\n \"comment\": \"A new version of Umbraco is available\",\n \"url\": \"https://our.umbraco.com/download/releases/15.3.2\"\n }`,\n inputSchema: {},\n outputSchema: getServerUpgradeCheckResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['server-info'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getServerUpgradeCheck(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getServerUpgradeCheckResponse.shape>;\n\nexport default withStandardDecorators(GetServerUpgradeCheckTool);\n","import GetServerInformationTool from \"./get/get-server-information.js\";\nimport GetServerStatusTool from \"./get/get-server-status.js\";\nimport GetServerConfigurationTool from \"./get/get-server-configuration.js\";\nimport GetServerTroubleshootingTool from \"./get/get-server-troubleshooting.js\";\nimport GetServerUpgradeCheckTool from \"./get/get-server-upgrade-check.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const ServerCollection: ToolCollectionExport = {\n metadata: {\n name: 'server',\n displayName: 'Server',\n description: 'Server information and system diagnostics',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n // Always available (AllowAnonymous in Umbraco, available to all authenticated users in MCP)\n tools.push(GetServerStatusTool);\n tools.push(GetServerConfigurationTool);\n\n // Available to all authenticated users (BackOfficeAccess)\n tools.push(GetServerInformationTool);\n tools.push(GetServerTroubleshootingTool);\n\n // Admin only (RequireAdminAccess)\n if (AuthorizationPolicies.RequireAdminAccess(user)) {\n tools.push(GetServerUpgradeCheckTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const ServerTools = (user: CurrentUserResponseModel) => {\n return ServerCollection.tools(user);\n};","import { getItemStaticFileQueryParams, getItemStaticFileResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetItemStaticFileParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemStaticFileResponse,\n});\n\nconst GetStaticFilesTool = {\n name: \"get-static-files\",\n description: \"Lists static files with optional path filtering for browsing the file system\",\n inputSchema: getItemStaticFileQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: GetItemStaticFileParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemStaticFile(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemStaticFileQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetStaticFilesTool);\n","import { getTreeStaticFileRootQueryParams, getTreeStaticFileRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetTreeStaticFileRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStaticFileRootTool = {\n name: \"get-static-file-root\",\n description: \"Gets root-level static files and folders in the Umbraco file system\",\n inputSchema: getTreeStaticFileRootQueryParams.shape,\n outputSchema: getTreeStaticFileRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeStaticFileRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeStaticFileRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStaticFileRootQueryParams.shape, typeof getTreeStaticFileRootResponse.shape>;\n\nexport default withStandardDecorators(GetStaticFileRootTool);\n","import { getTreeStaticFileChildrenQueryParams, getTreeStaticFileChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetTreeStaticFileChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStaticFileChildrenTool = {\n name: \"get-static-file-children\",\n description: \"Lists child files and folders in a static file directory by parent path\",\n inputSchema: getTreeStaticFileChildrenQueryParams.shape,\n outputSchema: getTreeStaticFileChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeStaticFileChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeStaticFileChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStaticFileChildrenQueryParams.shape, typeof getTreeStaticFileChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetStaticFileChildrenTool);\n","import { getTreeStaticFileAncestorsQueryParams, getTreeStaticFileAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetTreeStaticFileAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getTreeStaticFileAncestorsResponse,\n});\n\nconst GetStaticFileAncestorsTool = {\n name: \"get-static-file-ancestors\",\n description: \"Gets ancestor folders for navigation breadcrumbs by descendant path\",\n inputSchema: getTreeStaticFileAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeStaticFileAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeStaticFileAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStaticFileAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetStaticFileAncestorsTool);\n","import GetStaticFilesTool from \"./items/get/get-static-files.js\";\nimport GetStaticFileRootTool from \"./items/get/get-root.js\";\nimport GetStaticFileChildrenTool from \"./items/get/get-children.js\";\nimport GetStaticFileAncestorsTool from \"./items/get/get-ancestors.js\";\n\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const StaticFileCollection: ToolCollectionExport = {\n metadata: {\n name: 'static-file',\n displayName: 'Static Files',\n description: 'Read-only access to static files and folders in the Umbraco file system',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n tools.push(GetStaticFilesTool);\n tools.push(GetStaticFileRootTool);\n tools.push(GetStaticFileChildrenTool);\n tools.push(GetStaticFileAncestorsTool);\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const StaticFileTools = (user: CurrentUserResponseModel) => {\n return StaticFileCollection.tools(user);\n};","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateStylesheetRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Flattened schema - prevents LLM JSON stringification of parent object\nconst createStylesheetSchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n path: z.string().optional(),\n content: z.string().min(1, \"Content is required\")\n});\n\ntype CreateStylesheetSchema = z.infer<typeof createStylesheetSchema>;\n\nexport const createStylesheetOutputSchema = z.object({\n message: z.string(),\n path: z.string()\n});\n\nconst CreateStylesheetTool = {\n name: \"create-stylesheet\",\n description: `Creates a new stylesheet.`,\n inputSchema: createStylesheetSchema.shape,\n outputSchema: createStylesheetOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateStylesheetSchema) => {\n const client = UmbracoManagementClient.getClient();\n\n // Normalize path to ensure it starts with /\n const normalizedPath = model.path && !model.path.startsWith('/')\n ? `/${model.path}`\n : model.path;\n\n // Ensure name ends with .css extension\n const name = model.name.endsWith('.css')\n ? model.name\n : `${model.name}.css`;\n\n // Transform: flat path -> nested parent object for API\n const payload: CreateStylesheetRequestModel = {\n name,\n content: model.content,\n parent: normalizedPath ? { path: normalizedPath } : undefined,\n };\n\n const response = await client.postStylesheet(payload, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract path from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdPath = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/stylesheet/{encodedPath}\n const pathMatch = locationHeader.match(/stylesheet\\/(.+)$/);\n if (pathMatch) {\n createdPath = decodeURIComponent(pathMatch[1]);\n }\n }\n return createToolResult({\n message: \"Stylesheet created successfully\",\n path: createdPath\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof createStylesheetSchema.shape, typeof createStylesheetOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateStylesheetTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateStylesheetFolderRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postStylesheetFolderBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createStylesheetFolderOutputSchema = z.object({\n message: z.string(),\n path: z.string()\n});\n\nconst CreateStylesheetFolderTool = {\n name: \"create-stylesheet-folder\",\n description: \"Creates a new stylesheet folder\",\n inputSchema: postStylesheetFolderBody.shape,\n outputSchema: createStylesheetFolderOutputSchema.shape,\n slices: ['create', 'folders'],\n handler: (async (model: CreateStylesheetFolderRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n\n const response = await client.postStylesheetFolder(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract path from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdPath = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/stylesheet/folder/{encodedPath}\n const pathMatch = locationHeader.match(/stylesheet\\/folder\\/(.+)$/);\n if (pathMatch) {\n createdPath = decodeURIComponent(pathMatch[1]);\n }\n }\n return createToolResult({\n message: \"Stylesheet folder created successfully\",\n path: createdPath\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postStylesheetFolderBody.shape, typeof createStylesheetFolderOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateStylesheetFolderTool);\n","import { getStylesheetByPathParams, getStylesheetByPathResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStylesheetByPathTool = {\n name: \"get-stylesheet-by-path\",\n description: \"Gets a stylesheet by its path\",\n inputSchema: getStylesheetByPathParams.shape,\n outputSchema: getStylesheetByPathResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (model: { path: string }) => {\n return executeGetApiCall((client) =>\n client.getStylesheetByPath(model.path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getStylesheetByPathParams.shape, typeof getStylesheetByPathResponse.shape>;\n\nexport default withStandardDecorators(GetStylesheetByPathTool);\n","import { getStylesheetFolderByPathParams, getStylesheetFolderByPathResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStylesheetFolderByPathTool = {\n name: \"get-stylesheet-folder-by-path\",\n description: \"Gets a stylesheet folder by its path\",\n inputSchema: getStylesheetFolderByPathParams.shape,\n outputSchema: getStylesheetFolderByPathResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read', 'folders'],\n handler: (async (model: { path: string }) => {\n return executeGetApiCall((client) =>\n client.getStylesheetFolderByPath(model.path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getStylesheetFolderByPathParams.shape, typeof getStylesheetFolderByPathResponse.shape>;\n\nexport default withStandardDecorators(GetStylesheetFolderByPathTool);\n","import { UpdateStylesheetRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putStylesheetByPathParams, putStylesheetByPathBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateStylesheetSchema = z.object({\n ...putStylesheetByPathParams.shape,\n ...putStylesheetByPathBody.shape,\n});\n\nconst UpdateStylesheetTool = {\n name: \"update-stylesheet\",\n description: \"Updates a stylesheet by path\",\n inputSchema: updateStylesheetSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { path: string } & UpdateStylesheetRequestModel) => {\n const { path, ...updateModel } = model;\n return executeVoidApiCall((client) =>\n client.putStylesheetByPath(path, updateModel, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateStylesheetSchema.shape>;\n\nexport default withStandardDecorators(UpdateStylesheetTool);\n","import { RenameStylesheetRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putStylesheetByPathRenameParams, putStylesheetByPathRenameBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst renameStylesheetSchema = z.object({\n ...putStylesheetByPathRenameParams.shape,\n ...putStylesheetByPathRenameBody.shape,\n});\n\nconst RenameStylesheetTool = {\n name: \"rename-stylesheet\",\n description: `Renames a stylesheet`,\n inputSchema: renameStylesheetSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['rename'],\n handler: (async (model: { path: string } & RenameStylesheetRequestModel) => {\n const { path, ...renameModel } = model;\n\n // URL encode the path to handle forward slashes properly\n const normalizedPath = encodeURIComponent(path);\n\n return executeVoidApiCall((client) =>\n client.putStylesheetByPathRename(normalizedPath, renameModel, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof renameStylesheetSchema.shape>;\n\nexport default withStandardDecorators(RenameStylesheetTool);\n","import { deleteStylesheetByPathParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteStylesheetTool = {\n name: \"delete-stylesheet\",\n description: \"Deletes a stylesheet by its path\",\n inputSchema: deleteStylesheetByPathParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async (model: { path: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteStylesheetByPath(model.path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteStylesheetByPathParams.shape>;\n\nexport default withStandardDecorators(DeleteStylesheetTool);\n","import { deleteStylesheetFolderByPathParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteStylesheetFolderTool = {\n name: \"delete-stylesheet-folder\",\n description: \"Deletes a stylesheet folder by its path\",\n inputSchema: deleteStylesheetFolderByPathParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete', 'folders'],\n handler: (async (model: { path: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteStylesheetFolderByPath(model.path, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteStylesheetFolderByPathParams.shape>;\n\nexport default withStandardDecorators(DeleteStylesheetFolderTool);\n","import { GetTreeStylesheetAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeStylesheetAncestorsQueryParams, getTreeStylesheetAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\n \nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getTreeStylesheetAncestorsResponse,\n});\n\nconst GetStylesheetAncestorsTool = {\n name: \"get-stylesheet-ancestors\",\n description: \"Gets the ancestors of a stylesheet in the tree structure\",\n inputSchema: getTreeStylesheetAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeStylesheetAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeStylesheetAncestors(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStylesheetAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetStylesheetAncestorsTool);\n","import { GetTreeStylesheetChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeStylesheetChildrenQueryParams, getTreeStylesheetChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStylesheetChildrenTool = {\n name: \"get-stylesheet-children\",\n description: \"Gets the children of a stylesheet in the tree structure\",\n inputSchema: getTreeStylesheetChildrenQueryParams.shape,\n outputSchema: getTreeStylesheetChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeStylesheetChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeStylesheetChildren(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStylesheetChildrenQueryParams.shape, typeof getTreeStylesheetChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetStylesheetChildrenTool);\n","import { GetTreeStylesheetRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeStylesheetRootQueryParams, getTreeStylesheetRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStylesheetRootTool = {\n name: \"get-stylesheet-root\",\n description: \"Gets the root stylesheets in the tree structure\",\n inputSchema: getTreeStylesheetRootQueryParams.shape,\n outputSchema: getTreeStylesheetRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (model: GetTreeStylesheetRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeStylesheetRoot(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStylesheetRootQueryParams.shape, typeof getTreeStylesheetRootResponse.shape>;\n\nexport default withStandardDecorators(GetStylesheetRootTool);\n","import { GetItemStylesheetParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemStylesheetQueryParams, getItemStylesheetResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemStylesheetResponse,\n});\n\nconst GetStylesheetSearchTool = {\n name: \"get-stylesheet-search\",\n description: \"Searches for stylesheets by name or path\",\n inputSchema: getItemStylesheetQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: GetItemStylesheetParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemStylesheet(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemStylesheetQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetStylesheetSearchTool);\n","import { GetTreeStylesheetSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeStylesheetSiblingsQueryParams, getTreeStylesheetSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetStylesheetSiblingsTool = {\n name: \"get-stylesheet-siblings\",\n description: \"Gets sibling stylesheets for a given descendant path\",\n inputSchema: getTreeStylesheetSiblingsQueryParams.shape,\n outputSchema: getTreeStylesheetSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeStylesheetSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeStylesheetSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeStylesheetSiblingsQueryParams.shape, typeof getTreeStylesheetSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetStylesheetSiblingsTool);\n","// CRUD operations\nimport CreateStylesheetTool from \"./post/create-stylesheet.js\";\nimport CreateStylesheetFolderTool from \"./post/create-stylesheet-folder.js\";\nimport GetStylesheetByPathTool from \"./get/get-stylesheet-by-path.js\";\nimport GetStylesheetFolderByPathTool from \"./get/get-stylesheet-folder-by-path.js\";\nimport UpdateStylesheetTool from \"./put/update-stylesheet.js\";\nimport RenameStylesheetTool from \"./put/rename-stylesheet.js\";\nimport DeleteStylesheetTool from \"./delete/delete-stylesheet.js\";\nimport DeleteStylesheetFolderTool from \"./delete/delete-stylesheet-folder.js\";\n\n// Tree operations\nimport GetStylesheetAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetStylesheetChildrenTool from \"./items/get/get-children.js\";\nimport GetStylesheetRootTool from \"./items/get/get-root.js\";\nimport GetStylesheetSearchTool from \"./items/get/get-search.js\";\nimport GetStylesheetSiblingsTool from \"./items/get/get-siblings.js\";\n\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const StylesheetCollection: ToolCollectionExport = {\n metadata: {\n name: 'stylesheet',\n displayName: 'Stylesheets',\n description: 'CSS stylesheet file management',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessStylesheets(user)) {\n // Basic CRUD operations\n tools.push(CreateStylesheetTool);\n tools.push(CreateStylesheetFolderTool);\n tools.push(GetStylesheetByPathTool);\n tools.push(GetStylesheetFolderByPathTool);\n tools.push(UpdateStylesheetTool);\n tools.push(RenameStylesheetTool);\n tools.push(DeleteStylesheetTool);\n tools.push(DeleteStylesheetFolderTool);\n\n // Tree operations\n tools.push(GetStylesheetAncestorsTool);\n tools.push(GetStylesheetChildrenTool);\n tools.push(GetStylesheetRootTool);\n tools.push(GetStylesheetSearchTool);\n tools.push(GetStylesheetSiblingsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const StylesheetTools = (user: CurrentUserResponseModel) => {\n return StylesheetCollection.tools(user);\n};\n","import { GetTagParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTagQueryParams, getTagResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTagsTool = {\n name: \"get-tags\",\n description: \"Retrieves a paginated list of tags used in the Umbraco instance\",\n inputSchema: getTagQueryParams.shape,\n outputSchema: getTagResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetTagParams) => {\n return executeGetApiCall((client) =>\n client.getTag(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTagQueryParams.shape, typeof getTagResponse.shape>;\n\nexport default withStandardDecorators(GetTagsTool);\n","import GetTagsTool from \"./get/get-tags.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const TagCollection: ToolCollectionExport = {\n metadata: {\n name: 'tag',\n displayName: 'Tag Management',\n description: 'Tag management and retrieval',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [GetTagsTool];\n return tools;\n }\n};","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateTemplateRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postTemplateBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createTemplateOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateTemplateTool = {\n name: \"create-template\",\n description: \"Creates a new template\",\n inputSchema: postTemplateBody.shape,\n outputSchema: createTemplateOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateTemplateRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postTemplate(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/template/{id}\n const idMatch = locationHeader.match(/template\\/([a-f0-9-]+)$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Template created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postTemplateBody.shape, typeof createTemplateOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateTemplateTool);\n","import { getTemplateByIdParams, getTemplateByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateTool = {\n name: \"get-template\",\n description: \"Gets a template by Id\",\n inputSchema: getTemplateByIdParams.shape,\n outputSchema: getTemplateByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getTemplateById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTemplateByIdParams.shape, typeof getTemplateByIdResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateTool);\n","import { getTemplateConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateConfigurationTool = {\n name: \"get-template-configuration\",\n description: \"Gets template configuration settings including whether templates are disabled system-wide\",\n inputSchema: {},\n outputSchema: getTemplateConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getTemplateConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getTemplateConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateConfigurationTool);","import { GetItemTemplateParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemTemplateQueryParams, getItemTemplateResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemTemplateResponse,\n});\n\nconst GetTemplatesByIdArrayTool = {\n name: \"get-templates-by-id-array\",\n description: \"Gets templates by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemTemplateQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetItemTemplateParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemTemplate(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemTemplateQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetTemplatesByIdArrayTool);","import { UpdateTemplateRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putTemplateByIdBody, putTemplateByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateTemplateSchema = z.object({\n id: putTemplateByIdParams.shape.id,\n data: z.object(putTemplateByIdBody.shape),\n});\n\nconst UpdateTemplateTool = {\n name: \"update-template\",\n description: \"Updates a template by Id\",\n inputSchema: updateTemplateSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateTemplateRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putTemplateById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateTemplateSchema.shape>;\n\nexport default withStandardDecorators(UpdateTemplateTool);\n","import { deleteTemplateByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteTemplateTool = {\n name: \"delete-template\",\n description: \"Deletes a template by Id\",\n inputSchema: deleteTemplateByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteTemplateById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteTemplateByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteTemplateTool);\n","import { TemplateQueryExecuteModel } from \"@/umb-management-api/schemas/index.js\";\nimport { postTemplateQueryExecuteBody, postTemplateQueryExecuteResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst ExecuteTemplateQueryTool = {\n name: \"execute-template-query\",\n description: `Executes template queries and returns generated LINQ code with sample results and execution time.\n IMPORTANT: Always follow the example format exactly.\n Example:\n {\"take\": 5}\n or\n {\n \"documentTypeAlias\": \"article\",\n \"filters\": [{\"propertyAlias\": \"Name\", \"constraintValue\": \"Blog\", \"operator\": \"Contains\"},\n \"take\": 10\n }`,\n inputSchema: postTemplateQueryExecuteBody.shape,\n outputSchema: postTemplateQueryExecuteResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['templates'],\n handler: (async (body: TemplateQueryExecuteModel) => {\n return executeGetApiCall((client) =>\n client.postTemplateQueryExecute(body, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postTemplateQueryExecuteBody.shape, typeof postTemplateQueryExecuteResponse.shape>;\n\nexport default withStandardDecorators(ExecuteTemplateQueryTool);","import { getTemplateQuerySettingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateQuerySettingsTool = {\n name: \"get-template-query-settings\",\n description: \"Returns schema for template queries: available document types, properties, and operators\",\n inputSchema: {},\n outputSchema: getTemplateQuerySettingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getTemplateQuerySettings(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getTemplateQuerySettingsResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateQuerySettingsTool);","import { GetTreeTemplateAncestorsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeTemplateAncestorsQueryParams, getTreeTemplateAncestorsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getTreeTemplateAncestorsResponse,\n});\n\nconst GetTemplateAncestorsTool = {\n name: \"get-template-ancestors\",\n description: \"Gets the ancestors of a template by Id\",\n inputSchema: getTreeTemplateAncestorsQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeTemplateAncestorsParams) => {\n return executeGetItemsApiCall((client) =>\n client.getTreeTemplateAncestors(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeTemplateAncestorsQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetTemplateAncestorsTool);\n","import { GetTreeTemplateChildrenParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeTemplateChildrenQueryParams, getTreeTemplateChildrenResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateChildrenTool = {\n name: \"get-template-children\",\n description: \"Gets the children templates or template folders by the parent id\",\n inputSchema: getTreeTemplateChildrenQueryParams.shape,\n outputSchema: getTreeTemplateChildrenResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeTemplateChildrenParams) => {\n return executeGetApiCall((client) =>\n client.getTreeTemplateChildren(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeTemplateChildrenQueryParams.shape, typeof getTreeTemplateChildrenResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateChildrenTool);\n","import { GetTreeTemplateRootParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeTemplateRootQueryParams, getTreeTemplateRootResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateRootTool = {\n name: \"get-template-root\",\n description: \"Gets root items for templates.\",\n inputSchema: getTreeTemplateRootQueryParams.shape,\n outputSchema: getTreeTemplateRootResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeTemplateRootParams) => {\n return executeGetApiCall((client) =>\n client.getTreeTemplateRoot(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeTemplateRootQueryParams.shape, typeof getTreeTemplateRootResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateRootTool);","import { GetItemTemplateSearchParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemTemplateSearchQueryParams, getItemTemplateSearchResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateSearchTool = {\n name: \"get-template-search\",\n description: \"Searches the template tree for a template by name. It does NOT allow for searching for template folders.\",\n inputSchema: getItemTemplateSearchQueryParams.shape,\n outputSchema: getItemTemplateSearchResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (params: GetItemTemplateSearchParams) => {\n return executeGetApiCall((client) =>\n client.getItemTemplateSearch(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemTemplateSearchQueryParams.shape, typeof getItemTemplateSearchResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateSearchTool);\n","import { GetTreeTemplateSiblingsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getTreeTemplateSiblingsQueryParams, getTreeTemplateSiblingsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemplateSiblingsTool = {\n name: \"get-template-siblings\",\n description: \"Gets sibling templates for a given descendant id\",\n inputSchema: getTreeTemplateSiblingsQueryParams.shape,\n outputSchema: getTreeTemplateSiblingsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['tree'],\n handler: (async (params: GetTreeTemplateSiblingsParams) => {\n return executeGetApiCall((client) =>\n client.getTreeTemplateSiblings(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTreeTemplateSiblingsQueryParams.shape, typeof getTreeTemplateSiblingsResponse.shape>;\n\nexport default withStandardDecorators(GetTemplateSiblingsTool);\n","import CreateTemplateTool from \"./post/create-template.js\";\nimport GetTemplateTool from \"./get/get-template.js\";\nimport GetTemplateConfigurationTool from \"./get/get-template-configuration.js\";\nimport GetTemplatesByIdArrayTool from \"./get/get-template-by-id-array.js\";\nimport UpdateTemplateTool from \"./put/update-template.js\";\nimport DeleteTemplateTool from \"./delete/delete-template.js\";\n\n// Query operations\nimport ExecuteTemplateQueryTool from \"./post/execute-template-query.js\";\nimport GetTemplateQuerySettingsTool from \"./get/get-template-query-settings.js\";\n\n// Tree operations\nimport GetTemplateAncestorsTool from \"./items/get/get-ancestors.js\";\nimport GetTemplateChildrenTool from \"./items/get/get-children.js\";\nimport GetTemplateRootTool from \"./items/get/get-root.js\";\nimport GetTemplateSearchTool from \"./items/get/get-search.js\";\nimport GetTemplateSiblingsTool from \"./items/get/get-siblings.js\";\n\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const TemplateCollection: ToolCollectionExport = {\n metadata: {\n name: 'template',\n displayName: 'Templates',\n description: 'Razor template file management and query execution',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessTemplates(user)) {\n tools.push(GetTemplateTool);\n tools.push(GetTemplateConfigurationTool);\n tools.push(GetTemplatesByIdArrayTool);\n tools.push(CreateTemplateTool);\n tools.push(UpdateTemplateTool);\n tools.push(DeleteTemplateTool);\n\n // Query operations\n tools.push(ExecuteTemplateQueryTool);\n tools.push(GetTemplateQuerySettingsTool);\n\n // Tree operations\n tools.push(GetTemplateAncestorsTool);\n tools.push(GetTemplateChildrenTool);\n tools.push(GetTemplateRootTool);\n tools.push(GetTemplateSearchTool);\n tools.push(GetTemplateSiblingsTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const TemplateTools = (user: CurrentUserResponseModel) => {\n return TemplateCollection.tools(user);\n};\n\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { z } from \"zod\";\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n detectFileExtensionFromBuffer,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// MCP-friendly schema that accepts base64 encoded file data\nconst createTemporaryFileSchema = z.object({\n id: z.string().uuid().describe(\"Unique identifier for the temporary file\"),\n fileName: z.string().describe(\"Name of the file\"),\n fileAsBase64: z.string().describe(\"File content encoded as base64 string\"),\n});\n\ntype CreateTemporaryFileParams = z.infer<typeof createTemporaryFileSchema>;\n\nexport const createTemporaryFileOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateTemporaryFileTool = {\n name: \"create-temporary-file\",\n description: `Creates a new temporary file. The file will be deleted after 10 minutes.\n The temporary file id is used when uploading media files to Umbraco.\n The process is as follows:\n - Create a temporary file using this endpoint\n - Use the temporary file id when creating a media item using the media post endpoint\n\n Provide the file content as a base64 encoded string.`,\n inputSchema: createTemporaryFileSchema.shape,\n outputSchema: createTemporaryFileOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateTemporaryFileParams) => {\n let tempFilePath: string | null = null;\n\n try {\n // Convert base64 to Buffer\n const fileContent = Buffer.from(model.fileAsBase64, 'base64');\n\n // Ensure fileName has an extension - add one based on magic bytes if missing\n let fileName = model.fileName;\n if (!fileName.includes('.')) {\n const extension = detectFileExtensionFromBuffer(fileContent);\n fileName = `${fileName}${extension}`;\n }\n\n // Write to temp file (required for fs.ReadStream which the API client needs)\n tempFilePath = path.join(os.tmpdir(), `umbraco-upload-${model.id}-${fileName}`);\n fs.writeFileSync(tempFilePath, fileContent);\n\n // Create ReadStream for Umbraco API\n const readStream = fs.createReadStream(tempFilePath);\n\n const client = UmbracoManagementClient.getClient();\n await client.postTemporaryFile({\n Id: model.id,\n File: readStream,\n });\n\n return createToolResult({\n message: \"Temporary file created successfully\",\n id: model.id\n });\n } catch (error) {\n return createToolResultError({\n detail: `Error creating temporary file: ${(error as Error).message}`,\n });\n } finally {\n // Cleanup temp file\n if (tempFilePath && fs.existsSync(tempFilePath)) {\n try {\n fs.unlinkSync(tempFilePath);\n } catch (e) {\n console.error('Failed to cleanup temp file:', e);\n }\n }\n }\n }),\n} satisfies ToolDefinition<typeof createTemporaryFileSchema.shape, typeof createTemporaryFileOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateTemporaryFileTool);\n","import { ReadStream } from \"fs\";\nimport { z as zod } from \"zod\";\n\nexport const postTemporaryFileBody = zod.object({\n Id: zod.string().uuid(),\n File: zod.instanceof(ReadStream),\n});\n\nexport const getTemporaryFileByIdParams = zod.object({\n id: zod.string().uuid(),\n});\n\nexport const getTemporaryFileByIdResponse = zod.object({\n id: zod.string().uuid(),\n availableUntil: zod.string().datetime({ local: true }).nullish(),\n fileName: zod.string().min(1),\n});\n\nexport const deleteTemporaryFileByIdParams = zod.object({\n id: zod.string().uuid(),\n});\n\nexport const getTemporaryFileConfigurationResponse = zod.object({\n imageFileTypes: zod.array(zod.string()),\n disallowedUploadedFilesExtensions: zod.array(zod.string()),\n allowedUploadedFileExtensions: zod.array(zod.string()),\n maxFileSize: zod.number().nullish(),\n});\n","import { getTemporaryFileByIdParams, getTemporaryFileByIdResponse } from \"@/umb-management-api/temporary-file/types.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemporaryFileTool = {\n name: \"get-temporary-file\",\n description: \"Gets a temporary file by id\",\n inputSchema: getTemporaryFileByIdParams.shape,\n outputSchema: getTemporaryFileByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getTemporaryFileById(params.id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getTemporaryFileByIdParams.shape, typeof getTemporaryFileByIdResponse.shape>;\n\nexport default withStandardDecorators(GetTemporaryFileTool);\n","import { deleteTemporaryFileByIdParams } from \"@/umb-management-api/temporary-file/types.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteTemporaryFileTool = {\n name: \"delete-temporary-file\",\n description: \"Deletes a temporary file by Id\",\n inputSchema: deleteTemporaryFileByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteTemporaryFileById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteTemporaryFileByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteTemporaryFileTool);\n","import { getTemporaryFileConfigurationResponse } from \"@/umb-management-api/temporary-file/types.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetTemporaryFileConfigurationTool = {\n name: \"get-temporary-file-configuration\",\n description: `Gets the global configuration for temporary files\n This endpoint tells you the following\n - imageFileTypes - which files are considered as images\n - disallowedUploadedFilesExtensions - which file extensions are not allowed to be uploaded\n - allowedUploadedFileExtensions - which file extensions are allowed to be uploaded\n - maxFileSize - the maximum file size in bytes, if null then there is no limit\n `,\n inputSchema: {},\n outputSchema: getTemporaryFileConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getTemporaryFileConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getTemporaryFileConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetTemporaryFileConfigurationTool);\n","import CreateTemporaryFileTool from \"./post/create-temporary-file.js\";\nimport GetTemporaryFileTool from \"./get/get-temporary-file.js\";\nimport DeleteTemporaryFileTool from \"./delete/delete-temporary-file.js\";\nimport GetTemporaryFileConfigurationTool from \"./get/get-temporary-file-configuration.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/currentUserResponseModel.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const TemporaryFileCollection: ToolCollectionExport = {\n metadata: {\n name: 'temporary-file',\n displayName: 'Temporary Files',\n description: 'Temporary file management and upload handling',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n tools.push(CreateTemporaryFileTool);\n tools.push(GetTemporaryFileTool);\n tools.push(DeleteTemporaryFileTool);\n tools.push(GetTemporaryFileConfigurationTool);\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const TemporaryFileTools = (user: CurrentUserResponseModel) => {\n return TemporaryFileCollection.tools(user);\n}; ","import { GetUserParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getUserQueryParams, getUserResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserTool = {\n name: \"get-user\",\n description: \"Lists users with pagination and filtering options\",\n inputSchema: getUserQueryParams.shape,\n outputSchema: getUserResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetUserParams) => {\n return executeGetApiCall((client) =>\n client.getUser(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserQueryParams.shape, typeof getUserResponse.shape>;\n\nexport default withStandardDecorators(GetUserTool);\n","import { getUserByIdParams, getUserByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserByIdTool = {\n name: \"get-user-by-id\",\n description: \"Gets a user by their unique identifier\",\n inputSchema: getUserByIdParams.shape,\n outputSchema: getUserByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getUserById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserByIdParams.shape, typeof getUserByIdResponse.shape>;\n\nexport default withStandardDecorators(GetUserByIdTool);\n","import { getFilterUserQueryParams, getFilterUserResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { GetFilterUserParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst FindUserTool = {\n name: \"find-user\",\n description: \"Finds users by filtering with name, email, or other criteria\",\n inputSchema: getFilterUserQueryParams.shape,\n outputSchema: getFilterUserResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (params: GetFilterUserParams) => {\n return executeGetApiCall((client) =>\n client.getFilterUser(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getFilterUserQueryParams.shape, typeof getFilterUserResponse.shape>;\n\nexport default withStandardDecorators(FindUserTool);\n","import { GetItemUserParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getItemUserQueryParams,\n getItemUserResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemUserResponse,\n});\n\nconst GetItemUserTool = {\n name: \"get-item-user\",\n description: \"Gets user items for selection lists and pickers\",\n inputSchema: getItemUserQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: GetItemUserParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemUser(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemUserQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetItemUserTool);\n","import { getUserCurrentResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserCurrentTool = {\n name: \"get-user-current\",\n description: \"Gets the current authenticated user's information\",\n inputSchema: {},\n outputSchema: getUserCurrentResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['current-user'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getUserCurrent(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getUserCurrentResponse.shape>;\n\nexport default withStandardDecorators(GetUserCurrentTool);\n","import { getUserConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserConfigurationTool = {\n name: \"get-user-configuration\",\n description: \"Gets user configuration settings including user invitation settings and password requirements\",\n inputSchema: {},\n outputSchema: getUserConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['configuration'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getUserConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getUserConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetUserConfigurationTool);\n","import { getUserCurrentConfigurationResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserCurrentConfigurationTool = {\n name: \"get-user-current-configuration\",\n description: \"Gets current user configuration settings including login preferences and password requirements\",\n inputSchema: {},\n outputSchema: getUserCurrentConfigurationResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['current-user'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getUserCurrentConfiguration(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getUserCurrentConfigurationResponse.shape>;\n\nexport default withStandardDecorators(GetUserCurrentConfigurationTool);\n","import { getUserCurrentLoginProvidersResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getUserCurrentLoginProvidersResponse,\n});\n\nconst GetUserCurrentLoginProvidersTool = {\n name: \"get-user-current-login-providers\",\n description: \"Gets the current user's available login providers\",\n inputSchema: {},\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['current-user'],\n handler: (async () => {\n return executeGetItemsApiCall((client) =>\n client.getUserCurrentLoginProviders(CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetUserCurrentLoginProvidersTool);\n","import { GetUserCurrentPermissionsParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getUserCurrentPermissionsQueryParams,\n getUserCurrentPermissionsResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserCurrentPermissionsTool = {\n name: \"get-user-current-permissions\",\n description: \"Gets the current user's permissions for the specified entity\",\n inputSchema: getUserCurrentPermissionsQueryParams.shape,\n outputSchema: getUserCurrentPermissionsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['permissions'],\n handler: (async (params: GetUserCurrentPermissionsParams) => {\n return executeGetApiCall((client) =>\n client.getUserCurrentPermissions(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserCurrentPermissionsQueryParams.shape, typeof getUserCurrentPermissionsResponse.shape>;\n\nexport default withStandardDecorators(GetUserCurrentPermissionsTool);\n","import { GetUserCurrentPermissionsDocumentParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getUserCurrentPermissionsDocumentQueryParams,\n getUserCurrentPermissionsDocumentResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getUserCurrentPermissionsDocumentResponse,\n});\n\nconst GetUserCurrentPermissionsDocumentTool = {\n name: \"get-user-current-permissions-document\",\n description: \"Gets the current user's document permissions for specific documents\",\n inputSchema: getUserCurrentPermissionsDocumentQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['permissions'],\n handler: (async (params: GetUserCurrentPermissionsDocumentParams) => {\n return executeGetApiCall((client) =>\n client.getUserCurrentPermissionsDocument(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserCurrentPermissionsDocumentQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetUserCurrentPermissionsDocumentTool);\n","import { GetUserCurrentPermissionsMediaParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getUserCurrentPermissionsMediaQueryParams,\n getUserCurrentPermissionsMediaResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserCurrentPermissionsMediaTool = {\n name: \"get-user-current-permissions-media\",\n description: \"Gets the current user's media permissions for specific media items\",\n inputSchema: getUserCurrentPermissionsMediaQueryParams.shape,\n outputSchema: getUserCurrentPermissionsMediaResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['permissions'],\n handler: (async (params: GetUserCurrentPermissionsMediaParams) => {\n return executeGetApiCall((client) =>\n client.getUserCurrentPermissionsMedia(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserCurrentPermissionsMediaQueryParams.shape, typeof getUserCurrentPermissionsMediaResponse.shape>;\n\nexport default withStandardDecorators(GetUserCurrentPermissionsMediaTool);\n","import { getUserByIdCalculateStartNodesParams, getUserByIdCalculateStartNodesResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserByIdCalculateStartNodesTool = {\n name: \"get-user-by-id-calculate-start-nodes\",\n description: \"Calculates start nodes for a user by their ID based on permissions\",\n inputSchema: getUserByIdCalculateStartNodesParams.shape,\n outputSchema: getUserByIdCalculateStartNodesResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getUserByIdCalculateStartNodes(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserByIdCalculateStartNodesParams.shape, typeof getUserByIdCalculateStartNodesResponse.shape>;\n\nexport default withStandardDecorators(GetUserByIdCalculateStartNodesTool);\n","import { postUserAvatarByIdParams, postUserAvatarByIdBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst inputSchema = z.object({\n ...postUserAvatarByIdParams.shape,\n ...postUserAvatarByIdBody.shape\n});\n\nconst UploadUserAvatarByIdTool = {\n name: \"upload-user-avatar-by-id\",\n description: \"Uploads an avatar for a specific user by ID (admin only or self-service)\",\n inputSchema: inputSchema.shape,\n slices: ['update'],\n handler: (async ({ id, file }: { id: string; file: { id: string } }) => {\n return executeVoidApiCall((client) =>\n client.postUserAvatarById(id, { file }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof inputSchema.shape>;\n\nexport default withStandardDecorators(UploadUserAvatarByIdTool);\n","import { postUserCurrentAvatarBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst UploadUserCurrentAvatarTool = {\n name: \"upload-user-current-avatar\",\n description: \"Uploads an avatar for the current authenticated user\",\n inputSchema: postUserCurrentAvatarBody.shape,\n slices: ['current-user'],\n handler: (async ({ file }: { file: { id: string } }) => {\n return executeVoidApiCall((client) =>\n client.postUserCurrentAvatar({ file }, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof postUserCurrentAvatarBody.shape>;\n\nexport default withStandardDecorators(UploadUserCurrentAvatarTool);\n","import { deleteUserAvatarByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteUserAvatarByIdTool = {\n name: \"delete-user-avatar-by-id\",\n description: \"Deletes an avatar for a specific user by ID (admin only or self-service)\",\n inputSchema: deleteUserAvatarByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteUserAvatarById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteUserAvatarByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteUserAvatarByIdTool);\n","import GetUserTool from \"./get/get-user.js\";\nimport GetUserByIdTool from \"./get/get-user-by-id.js\";\nimport FindUserTool from \"./get/find-user.js\";\nimport GetItemUserTool from \"./get/get-item-user.js\";\nimport GetUserCurrentTool from \"./get/get-user-current.js\";\nimport GetUserConfigurationTool from \"./get/get-user-configuration.js\";\nimport GetUserCurrentConfigurationTool from \"./get/get-user-current-configuration.js\";\nimport GetUserCurrentLoginProvidersTool from \"./get/get-user-current-login-providers.js\";\nimport GetUserCurrentPermissionsTool from \"./get/get-user-current-permissions.js\";\nimport GetUserCurrentPermissionsDocumentTool from \"./get/get-user-current-permissions-document.js\";\nimport GetUserCurrentPermissionsMediaTool from \"./get/get-user-current-permissions-media.js\";\nimport GetUserByIdCalculateStartNodesTool from \"./get/get-user-by-id-calculate-start-nodes.js\";\nimport UploadUserAvatarByIdTool from \"./post/upload-user-avatar-by-id.js\";\nimport UploadUserCurrentAvatarTool from \"./post/upload-user-current-avatar.js\";\nimport DeleteUserAvatarByIdTool from \"./delete/delete-user-avatar-by-id.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const UserCollection: ToolCollectionExport = {\n metadata: {\n name: 'user',\n displayName: 'Users',\n description: 'User account management and administration',\n dependencies: ['temporary-file']\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n // Self-service tools (available to all authenticated users)\n tools.push(GetUserCurrentTool);\n tools.push(GetUserCurrentConfigurationTool);\n tools.push(GetUserCurrentLoginProvidersTool);\n tools.push(GetUserCurrentPermissionsTool);\n tools.push(GetUserCurrentPermissionsDocumentTool);\n tools.push(GetUserCurrentPermissionsMediaTool);\n tools.push(UploadUserCurrentAvatarTool);\n\n // Administrative tools (require SectionAccessUsers permission)\n if (AuthorizationPolicies.SectionAccessUsers(user)) {\n tools.push(GetUserTool);\n tools.push(GetUserByIdTool);\n tools.push(FindUserTool);\n tools.push(GetItemUserTool);\n tools.push(GetUserConfigurationTool);\n tools.push(GetUserByIdCalculateStartNodesTool);\n tools.push(UploadUserAvatarByIdTool);\n tools.push(DeleteUserAvatarByIdTool);\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const UserTools = (user: CurrentUserResponseModel) => {\n return UserCollection.tools(user);\n};","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { postUserDataBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { CreateUserDataRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createUserDataOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateUserDataTool = {\n name: \"create-user-data\",\n description: \"Creates a new user data record\",\n inputSchema: postUserDataBody.shape,\n outputSchema: createUserDataOutputSchema.shape,\n slices: ['create'],\n handler: (async (body: CreateUserDataRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postUserData(body, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/user-data/{id}\n const idMatch = locationHeader.match(/user-data\\/([a-f0-9-]+)$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"User data created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postUserDataBody.shape, typeof createUserDataOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateUserDataTool);","import { UpdateUserDataRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { putUserDataBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst UpdateUserDataTool = {\n name: \"update-user-data\",\n description: \"Updates an existing user data record\",\n inputSchema: putUserDataBody.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (body: UpdateUserDataRequestModel) => {\n return executeVoidApiCall((client) =>\n client.putUserData(body, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof putUserDataBody.shape>;\n\nexport default withStandardDecorators(UpdateUserDataTool);","import { GetUserDataParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getUserDataQueryParams, getUserDataResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserDataTool = {\n name: \"get-user-data\",\n description: \"Retrieves user data records with pagination and filtering\",\n inputSchema: getUserDataQueryParams.shape,\n outputSchema: getUserDataResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async (params: GetUserDataParams) => {\n return executeGetApiCall((client) =>\n client.getUserData(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserDataQueryParams.shape, typeof getUserDataResponse.shape>;\n\nexport default withStandardDecorators(GetUserDataTool);","import { getUserDataByIdParams, getUserDataByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserDataByIdTool = {\n name: \"get-user-data-by-id\",\n description: \"Retrieves a specific personal key-value storage record by its unique identifier for the authenticated user. User data stores user preferences, settings, and configuration values that persist permanently and are organized by group (category) and identifier (key).\",\n inputSchema: getUserDataByIdParams.shape,\n outputSchema: getUserDataByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getUserDataById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserDataByIdParams.shape, typeof getUserDataByIdResponse.shape>;\n\nexport default withStandardDecorators(GetUserDataByIdTool);","import { deleteUserDataByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteUserDataTool = {\n name: \"delete-user-data\",\n description: \"Deletes user data by its id\",\n inputSchema: deleteUserDataByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteUserDataById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteUserDataByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteUserDataTool);\n","import CreateUserDataTool from \"./post/create-user-data.js\";\nimport UpdateUserDataTool from \"./put/update-user-data.js\";\nimport GetUserDataTool from \"./get/get-user-data.js\";\nimport GetUserDataByIdTool from \"./get/get-user-data-by-id.js\";\nimport DeleteUserDataTool from \"./delete/delete-user-data.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const UserDataCollection: ToolCollectionExport = {\n metadata: {\n name: 'user-data',\n displayName: 'User Data',\n description: 'Personal key-value storage for authenticated users - manage preferences, settings, and application state',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n // User Data is scoped to the authenticated user, available to all authenticated users\n tools.push(CreateUserDataTool);\n tools.push(UpdateUserDataTool);\n tools.push(GetUserDataTool);\n tools.push(GetUserDataByIdTool);\n tools.push(DeleteUserDataTool);\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const UserDataTools = (user: CurrentUserResponseModel) => {\n return UserDataCollection.tools(user);\n};","import { getUserGroupByIdParams, getUserGroupByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserGroupTool = {\n name: \"get-user-group\",\n description: \"Gets a user group by Id\",\n inputSchema: getUserGroupByIdParams.shape,\n outputSchema: getUserGroupByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getUserGroupById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserGroupByIdParams.shape, typeof getUserGroupByIdResponse.shape>;\n\nexport default withStandardDecorators(GetUserGroupTool);\n","import { GetItemUserGroupParams } from \"@/umb-management-api/schemas/index.js\";\nimport {\n getItemUserGroupQueryParams,\n getItemUserGroupResponse,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemUserGroupResponse,\n});\n\nconst GetUserGroupByIdArrayTool = {\n name: \"get-user-group-by-id-array\",\n description: \"Gets user groups by an array of IDs\",\n inputSchema: getItemUserGroupQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetItemUserGroupParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemUserGroup(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getItemUserGroupQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetUserGroupByIdArrayTool);\n","import { GetUserGroupParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getUserGroupQueryParams, getUserGroupResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetUserGroupsTool = {\n name: \"get-user-groups\",\n description: \"Gets all user groups\",\n inputSchema: getUserGroupQueryParams.shape,\n outputSchema: getUserGroupResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (model: GetUserGroupParams) => {\n return executeGetApiCall((client) =>\n client.getUserGroup(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getUserGroupQueryParams.shape, typeof getUserGroupResponse.shape>;\n\nexport default withStandardDecorators(GetUserGroupsTool);\n","import { GetFilterUserGroupParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getFilterUserGroupQueryParams, getFilterUserGroupResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetFilterUserGroupTool = {\n name: \"get-filter-user-group\",\n description: \"Gets filtered user groups\",\n inputSchema: getFilterUserGroupQueryParams.shape,\n outputSchema: getFilterUserGroupResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['search'],\n handler: (async (model: GetFilterUserGroupParams) => {\n return executeGetApiCall((client) =>\n client.getFilterUserGroup(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getFilterUserGroupQueryParams.shape, typeof getFilterUserGroupResponse.shape>;\n\nexport default withStandardDecorators(GetFilterUserGroupTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateUserGroupRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postUserGroupBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createUserGroupOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateUserGroupTool = {\n name: \"create-user-group\",\n description: \"Creates a new user group\",\n inputSchema: postUserGroupBody.shape,\n outputSchema: createUserGroupOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateUserGroupRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postUserGroup(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/user-group/{id}\n const idMatch = locationHeader.match(/user-group\\/([a-f0-9-]+)$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"User group created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postUserGroupBody.shape, typeof createUserGroupOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateUserGroupTool);\n","import { UpdateUserGroupRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putUserGroupByIdBody,\n putUserGroupByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateUserGroupSchema = z.object({\n id: putUserGroupByIdParams.shape.id,\n data: z.object(putUserGroupByIdBody.shape),\n});\n\nconst UpdateUserGroupTool = {\n name: \"update-user-group\",\n description: \"Updates a user group by Id\",\n inputSchema: updateUserGroupSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateUserGroupRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putUserGroupById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateUserGroupSchema.shape>;\n\nexport default withStandardDecorators(UpdateUserGroupTool);\n","import { deleteUserGroupByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteUserGroupTool = {\n name: \"delete-user-group\",\n description: \"Deletes a user group by Id\",\n inputSchema: deleteUserGroupByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteUserGroupById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteUserGroupByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteUserGroupTool);\n","import { DeleteUserGroupsRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport { deleteUserGroupBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteUserGroupsTool = {\n name: \"delete-user-groups\",\n description: \"Deletes all user groups\",\n inputSchema: deleteUserGroupBody.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async (model: DeleteUserGroupsRequestModel) => {\n return executeVoidApiCall((client) =>\n client.deleteUserGroup(model, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteUserGroupBody.shape>;\n\nexport default withStandardDecorators(DeleteUserGroupsTool);\n","import GetUserGroupTool from \"./get/get-user-group.js\";\nimport GetUserGroupByIdArrayTool from \"./get/get-user-group-by-id-array.js\";\nimport GetUserGroupsTool from \"./get/get-user-groups.js\";\nimport GetFilterUserGroupTool from \"./get/get-filter-user-group.js\";\nimport CreateUserGroupTool from \"./post/create-user-group.js\";\nimport UpdateUserGroupTool from \"./put/update-user-group.js\";\nimport DeleteUserGroupTool from \"./delete/delete-user-group.js\";\nimport DeleteUserGroupsTool from \"./delete/delete-user-groups.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const UserGroupCollection: ToolCollectionExport = {\n metadata: {\n name: 'user-group',\n displayName: 'User Groups',\n description: 'User group management and permissions',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.SectionAccessUsers(user)) {\n tools.push(GetUserGroupByIdArrayTool);\n tools.push(GetUserGroupsTool);\n tools.push(GetFilterUserGroupTool);\n tools.push(CreateUserGroupTool);\n tools.push(UpdateUserGroupTool);\n tools.push(DeleteUserGroupTool);\n tools.push(DeleteUserGroupsTool);\n }\n\n tools.push(GetUserGroupTool);\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const UserGroupTools = (user: CurrentUserResponseModel) => {\n return UserGroupCollection.tools(user);\n}; ","import { getWebhookByIdParams, getWebhookByIdResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetWebhookByIdTool = {\n name: \"get-webhook-by-id\",\n description: \"Gets a webhook by id\",\n inputSchema: getWebhookByIdParams.shape,\n outputSchema: getWebhookByIdResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getWebhookById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getWebhookByIdParams.shape, typeof getWebhookByIdResponse.shape>;\n\nexport default withStandardDecorators(GetWebhookByIdTool);\n","import { GetItemWebhookParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getItemWebhookQueryParams, getItemWebhookResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetItemsApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\n// Wrap array response in object for MCP compliance\nconst outputSchema = z.object({\n items: getItemWebhookResponse,\n});\n\nconst GetWebhookItemTool = {\n name: \"get-webhook-item\",\n description: \"Gets webhooks by IDs (or empty array if no IDs are provided)\",\n inputSchema: getItemWebhookQueryParams.shape,\n outputSchema: outputSchema.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetItemWebhookParams) => {\n return executeGetItemsApiCall((client) =>\n client.getItemWebhook(params, CAPTURE_RAW_HTTP_RESPONSE)\n ); \n }),\n} satisfies ToolDefinition<typeof getItemWebhookQueryParams.shape, typeof outputSchema.shape>;\n\nexport default withStandardDecorators(GetWebhookItemTool);\n","import { GetWebhookParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getWebhookQueryParams, getWebhookResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetWebhookTool = {\n name: \"get-webhook\",\n description: \"Gets a paged list of webhooks\",\n inputSchema: getWebhookQueryParams.shape,\n outputSchema: getWebhookResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetWebhookParams) => {\n return executeGetApiCall((client) =>\n client.getWebhook(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getWebhookQueryParams.shape, typeof getWebhookResponse.shape>;\n\nexport default withStandardDecorators(GetWebhookTool);","import { deleteWebhookByIdParams } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst DeleteWebhookTool = {\n name: \"delete-webhook\",\n description: \"Deletes a webhook by id\",\n inputSchema: deleteWebhookByIdParams.shape,\n annotations: {\n destructiveHint: true,\n },\n slices: ['delete'],\n handler: (async ({ id }: { id: string }) => {\n return executeVoidApiCall((client) =>\n client.deleteWebhookById(id, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof deleteWebhookByIdParams.shape>;\n\nexport default withStandardDecorators(DeleteWebhookTool);\n","import { UpdateWebhookRequestModel } from \"@/umb-management-api/schemas/index.js\";\nimport {\n putWebhookByIdBody,\n putWebhookByIdParams,\n} from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeVoidApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst updateWebhookSchema = z.object({\n id: putWebhookByIdParams.shape.id,\n data: z.object(putWebhookByIdBody.shape),\n});\n\nconst UpdateWebhookTool = {\n name: \"update-webhook\",\n description: \"Updates a webhook by id\",\n inputSchema: updateWebhookSchema.shape,\n annotations: { idempotentHint: true },\n slices: ['update'],\n handler: (async (model: { id: string; data: UpdateWebhookRequestModel }) => {\n return executeVoidApiCall((client) =>\n client.putWebhookById(model.id, model.data, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof updateWebhookSchema.shape>;\n\nexport default withStandardDecorators(UpdateWebhookTool);\n","import { getWebhookEventsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetWebhookEventsTool = {\n name: \"get-webhook-events\",\n description: \"Gets a list of available webhook events\",\n inputSchema: {},\n outputSchema: getWebhookEventsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async () => {\n return executeGetApiCall((client) =>\n client.getWebhookEvents(undefined, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<{}, typeof getWebhookEventsResponse.shape>;\n\nexport default withStandardDecorators(GetWebhookEventsTool);\n","import { GetWebhookLogsParams } from \"@/umb-management-api/schemas/index.js\";\nimport { getWebhookLogsQueryParams, getWebhookLogsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetAllWebhookLogsTool = {\n name: \"get-all-webhook-logs\",\n description: \"Gets logs for all webhooks\",\n inputSchema: getWebhookLogsQueryParams.shape,\n outputSchema: getWebhookLogsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['list'],\n handler: (async (params: GetWebhookLogsParams) => {\n return executeGetApiCall((client) =>\n client.getWebhookLogs(params, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getWebhookLogsQueryParams.shape, typeof getWebhookLogsResponse.shape>;\n\nexport default withStandardDecorators(GetAllWebhookLogsTool);\n","import { UmbracoManagementClient } from \"@umb-management-client\";\nimport { CreateWebhookRequestModel, ProblemDetails } from \"@/umb-management-api/schemas/index.js\";\nimport { postWebhookBody } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport { z } from \"zod\";\nimport {\n type ToolDefinition,\n createToolResult,\n createToolResultError,\n withStandardDecorators,\n type HttpResponse,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const createWebhookOutputSchema = z.object({\n message: z.string(),\n id: z.string().uuid()\n});\n\nconst CreateWebhookTool = {\n name: \"create-webhook\",\n description: `Creates a new webhook\n Must contain at least one event from the events listed at /umbraco/management/api/v1/webhook/events endpoint.\n Cannot mix different event types in the same webhook.`,\n inputSchema: postWebhookBody.shape,\n outputSchema: createWebhookOutputSchema.shape,\n slices: ['create'],\n handler: (async (model: CreateWebhookRequestModel) => {\n const client = UmbracoManagementClient.getClient();\n const response = await client.postWebhook(model, {\n returnFullResponse: true,\n validateStatus: () => true,\n }) as unknown as HttpResponse<ProblemDetails | void>;\n\n if (response.status === 201) {\n // Extract ID from Location header\n const locationHeader = response.headers?.['location'] || response.headers?.['Location'];\n let createdId = '';\n if (locationHeader) {\n // Location header format: /umbraco/management/api/v1/webhook/{id}\n const idMatch = locationHeader.match(/webhook\\/([a-f0-9-]+)$/i);\n if (idMatch) {\n createdId = idMatch[1];\n }\n }\n return createToolResult({\n message: \"Webhook created successfully\",\n id: createdId\n });\n } else {\n const errorData: ProblemDetails = response.data || {\n status: response.status,\n detail: response.statusText,\n };\n return createToolResultError(errorData);\n }\n }),\n} satisfies ToolDefinition<typeof postWebhookBody.shape, typeof createWebhookOutputSchema.shape>;\n\nexport default withStandardDecorators(CreateWebhookTool);\n","import { getWebhookByIdLogsParams, getWebhookByIdLogsResponse } from \"@/umb-management-api/umbracoManagementAPI.zod.js\";\nimport {\n type ToolDefinition,\n CAPTURE_RAW_HTTP_RESPONSE,\n executeGetApiCall,\n withStandardDecorators,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nconst GetWebhookLogsTool = {\n name: \"get-webhook-logs\",\n description: \"Gets logs for a specific webhook\",\n inputSchema: getWebhookByIdLogsParams.shape,\n outputSchema: getWebhookByIdLogsResponse.shape,\n annotations: { readOnlyHint: true },\n slices: ['read'],\n handler: (async ({ id }: { id: string }) => {\n return executeGetApiCall((client) =>\n client.getWebhookByIdLogs(id, undefined, CAPTURE_RAW_HTTP_RESPONSE)\n );\n }),\n} satisfies ToolDefinition<typeof getWebhookByIdLogsParams.shape, typeof getWebhookByIdLogsResponse.shape>;\n\nexport default withStandardDecorators(GetWebhookLogsTool);\n","import GetWebhookByIdTool from \"./get/get-webhook-by-id.js\";\nimport GetWebhookItemTool from \"./get/get-webhook-by-id-array.js\";\nimport GetWebhookTool from \"./get/get-webhook.js\";\nimport DeleteWebhookTool from \"./delete/delete-webhook.js\";\nimport UpdateWebhookTool from \"./put/update-webhook.js\";\nimport GetWebhookEventsTool from \"./get/get-webhook-events.js\";\nimport GetAllWebhookLogsTool from \"./get/get-all-webhook-logs.js\";\nimport CreateWebhookTool from \"./post/create-webhook.js\";\nimport GetWebhookLogsTool from \"./get/get-webhook-logs-by-id.js\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\nimport { AuthorizationPolicies } from \"auth/umbraco-auth-policies.js\";\nimport {\n type ToolCollectionExport,\n type ToolDefinition,\n} from \"@umbraco-cms/mcp-server-sdk\";\n\nexport const WebhookCollection: ToolCollectionExport = {\n metadata: {\n name: 'webhook',\n displayName: 'Webhooks',\n description: 'Webhook management and event handling',\n dependencies: []\n },\n tools: (user: CurrentUserResponseModel) => {\n const tools: ToolDefinition<any, any>[] = [];\n\n if (AuthorizationPolicies.TreeAccessWebhooks(user)) {\n tools.push(\n GetWebhookItemTool,\n CreateWebhookTool,\n GetWebhookTool,\n GetWebhookByIdTool,\n DeleteWebhookTool,\n UpdateWebhookTool,\n GetWebhookEventsTool,\n GetAllWebhookLogsTool,\n GetWebhookLogsTool\n );\n }\n\n return tools;\n }\n};\n\n// Backwards compatibility export\nexport const WebhookTools = (user: CurrentUserResponseModel) => {\n return WebhookCollection.tools(user);\n};","import { CultureCollection } from \"./culture/index.js\";\nimport { DataTypeCollection } from \"./data-type/index.js\";\nimport { DictionaryCollection } from \"./dictionary/index.js\";\nimport { DocumentBlueprintCollection } from \"./document-blueprint/index.js\";\nimport { DocumentCollection } from \"./document/index.js\";\nimport { DocumentTypeCollection } from \"./document-type/index.js\";\nimport { DocumentVersionCollection } from \"./document-version/index.js\";\nimport { HealthCollection } from \"./health/index.js\";\nimport { ImagingCollection } from \"./imaging/index.js\";\nimport { IndexerCollection } from \"./indexer/index.js\";\nimport { LanguageCollection } from \"./language/index.js\";\nimport { LogViewerCollection } from \"./log-viewer/index.js\";\nimport { ManifestCollection } from \"./manifest/index.js\";\nimport { MediaCollection } from \"./media/index.js\";\nimport { MediaTypeCollection } from \"./media-type/index.js\";\nimport { MemberCollection } from \"./member/index.js\";\nimport { MemberGroupCollection } from \"./member-group/index.js\";\nimport { MemberTypeCollection } from \"./member-type/index.js\";\nimport { ModelsBuilderCollection } from \"./models-builder/index.js\";\nimport { PartialViewCollection } from \"./partial-view/index.js\";\nimport { PropertyTypeCollection } from \"./property-type/index.js\";\nimport { RedirectCollection } from \"./redirect/index.js\";\nimport { RelationCollection } from \"./relation/index.js\";\nimport { RelationTypeCollection } from \"./relation-type/index.js\";\nimport { ScriptCollection } from \"./script/index.js\";\nimport { SearcherCollection } from \"./searcher/index.js\";\nimport { ServerCollection } from \"./server/index.js\";\nimport { StaticFileCollection } from \"./static-file/index.js\";\nimport { StylesheetCollection } from \"./stylesheet/index.js\";\nimport { TagCollection } from \"./tag/index.js\";\nimport { TemplateCollection } from \"./template/index.js\";\nimport { TemporaryFileCollection } from \"./temporary-file/index.js\";\nimport { UserCollection } from \"./user/index.js\";\nimport { UserDataCollection } from \"./user-data/index.js\";\nimport { UserGroupCollection } from \"./user-group/index.js\";\nimport { WebhookCollection } from \"./webhook/index.js\";\nimport type { ToolCollectionExport } from \"@umbraco-cms/mcp-server-sdk\";\nimport { CurrentUserResponseModel } from \"@/umb-management-api/schemas/index.js\";\n\n/**\n * Registry of all available tool collections.\n * Add new collections here when implementing new API endpoints.\n */\nexport const availableCollections: ToolCollectionExport[] = [\n CultureCollection,\n DataTypeCollection,\n DictionaryCollection,\n DocumentBlueprintCollection,\n DocumentCollection,\n DocumentTypeCollection,\n DocumentVersionCollection,\n HealthCollection,\n ImagingCollection,\n IndexerCollection,\n LanguageCollection,\n LogViewerCollection,\n ManifestCollection,\n MediaCollection,\n MediaTypeCollection,\n MemberCollection,\n MemberGroupCollection,\n MemberTypeCollection,\n ModelsBuilderCollection,\n PartialViewCollection,\n PropertyTypeCollection,\n RedirectCollection,\n RelationCollection,\n RelationTypeCollection,\n ScriptCollection,\n SearcherCollection,\n ServerCollection,\n StaticFileCollection,\n StylesheetCollection,\n TagCollection,\n TemplateCollection,\n TemporaryFileCollection,\n UserCollection,\n UserDataCollection,\n UserGroupCollection,\n WebhookCollection,\n];\n","import { type ToolModeDefinition } from \"@umbraco-cms/mcp-server-sdk\";\n\n/**\n * Base modes - map directly to collections\n */\nexport const baseModes: ToolModeDefinition[] = [\n {\n name: 'content',\n displayName: 'Content Management',\n description: 'Document creation, editing, versioning, and blueprints',\n collections: ['document', 'document-version', 'document-blueprint', 'tag']\n },\n {\n name: 'content-modeling',\n displayName: 'Content Modeling',\n description: 'Document and media structure: types, data types, and content to see the output',\n collections: ['document-type', 'data-type', 'media-type']\n },\n {\n name: 'front-end',\n displayName: 'Front-end Development',\n description: 'Templates, partial views, stylesheets, scripts, and static files',\n collections: ['template', 'partial-view', 'stylesheet', 'script', 'static-file']\n },\n {\n name: 'media',\n displayName: 'Media Management',\n description: 'Media library, imaging operations, and file uploads',\n collections: ['media', 'imaging', 'temporary-file']\n },\n {\n name: 'search',\n displayName: 'Search',\n description: 'Examine indexes and search functionality',\n collections: ['indexer', 'searcher']\n },\n {\n name: 'users',\n displayName: 'User Management',\n description: 'Back office users, user groups, and user data',\n collections: ['user', 'user-group', 'user-data']\n },\n {\n name: 'members',\n displayName: 'Member Management',\n description: 'Front-end members, member types, and member groups',\n collections: ['member', 'member-type', 'member-group']\n },\n {\n name: 'health',\n displayName: 'Health & Diagnostics',\n description: 'Health checks and log viewer',\n collections: ['health', 'log-viewer']\n },\n {\n name: 'translation',\n displayName: 'Translation & Localization',\n description: 'Cultures, languages, and dictionary items',\n collections: ['culture', 'language', 'dictionary']\n },\n {\n name: 'system',\n displayName: 'System',\n description: 'Server information, manifest, and models builder',\n collections: ['server', 'manifest', 'models-builder']\n },\n {\n name: 'integrations',\n displayName: 'Integrations',\n description: 'Webhooks, redirects, relations, and tags',\n collections: ['webhook', 'redirect', 'relation', 'relation-type']\n }\n];\n\n/**\n * All modes - just base modes (compound modes removed for simplicity)\n */\nexport const allModes: ToolModeDefinition[] = [...baseModes];\n\n/**\n * Get all mode names for validation\n */\nexport const allModeNames: string[] = allModes.map(m => m.name);\n","/**\n * Tool slice names that can be assigned to tools.\n * This is the SINGLE SOURCE OF TRUTH for slice names.\n *\n * Slices are assigned explicitly on each tool via the `slices` property.\n * Exported for runtime validation (e.g., checking user config values).\n */\nexport const toolSliceNames = [\n // CRUD\n 'create', 'read', 'update', 'delete',\n // Navigation\n 'tree', 'folders',\n // Query\n 'search', 'list', 'references',\n // Workflow\n 'publish', 'recycle-bin', 'move', 'copy', 'sort', 'validate', 'rename',\n // Information\n 'configuration', 'audit', 'urls', 'domains', 'permissions', 'user-status', 'current-user',\n // Entity Management\n 'notifications', 'public-access', 'scaffolding', 'blueprints',\n // System\n 'server-info', 'diagnostics', 'templates',\n] as const;\n\n/**\n * Valid slice names for tool categorization.\n * Derived from toolSliceNames array for compile-time type safety.\n */\nexport type ToolSliceName = typeof toolSliceNames[number];\n\n/**\n * All valid slice names for configuration validation.\n * Includes 'other' as a catch-all for tools with empty slices arrays.\n */\nexport const allSliceNames: readonly string[] = [...toolSliceNames, 'other'];\n\n/**\n * Extended slice names including 'other' for catch-all purposes.\n * Tools with empty slices array are always included as 'other'.\n */\nexport type ExtendedSliceName = ToolSliceName | 'other';\n"]}