API / API reference / Imports
Compare a conflict
Compare a conflict
GET /api/v1/imports/{importId}/changes/{changeId}/compare
Compares the current content of a page or space template in Lunedo with the content of the new export, converted as it would be applied, without applying anything. The Lunedo side is the draft for people who may edit the page, otherwise its latest version. The source of a page restricted further at the source is shown only to people who keep access once the restriction is applied. Requires the permission import.view on the import in importId.
curl -H "Authorization: Bearer ld_..." \ "https://wiki.example.org/api/v1/imports/{importId}/changes/{changeId}/compare"Compares the current content of a page or space template in Lunedo with the content of the new export, converted as it would be applied, without applying anything. The Lunedo side is the draft for people who may edit the page, otherwise its latest version. The source of a page restricted further at the source is shown only to people who keep access once the restriction is applied.
Requires the permission import.view on the import in importId.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”ID of the import.
ID of the change.
Responses
Section titled “Responses”The comparison.
The current content in Lunedo compared with the content of the new export. Nothing is applied.
object
Whether a page or a space template is compared. New values can be added in later versions; handle unknown values.
Decisions that can be taken now. While the page waits for a restriction from the source, only lunedo is possible.
Decision: for a conflict lunedo keeps the Lunedo version, source takes the source version as a new version, both keeps the Lunedo version and adds the source version to the history, marked as not applied; for a page deleted at the source trash moves it to the trash and keep keeps it. New values can be added in later versions; handle unknown values.
What mentions and page links in the document point to, as far as the caller may see it.
object
Names of mentioned people the caller may see, by account ID.
object
Name of the person.
Profile pictures of the people in people that have one, by account ID. The picture is at /api/v1/accounts/{accountId}/picture.
object
Version of the profile picture.
Linked pages by ID.
object
A linked page.
object
Title, or empty without access.
Key of the page’s space, or empty without access.
Kind of the item.
Whether the caller can open the page.
Whether the page is in the trash. Then only the title is given, as In trash.
Running topics that topic updates and decisions in the document refer to, by ID, as far as the caller may see them.
object
A running topic.
object
Title of the running topic.
Whether the topic is still open. New values can be added in later versions; handle unknown values.
Images in the document with more than 100 megapixels, as far as the caller may see them. They have no smaller version and are shown as a file that opens in full size.
Example
{ "kind": "page", "lunedo": { "title": "Release plan", "version": null }, "source": { "title": "Release plan", "version": 7 }, "decisions": [ "lunedo", "source", "both" ], "decision": null, "diff": { "title": null, "blocks": [], "changes": 0 }, "before": { "type": "doc", "content": [] }, "after": { "type": "doc", "content": [] }, "references": { "people": {}, "pages": {}, "topics": {}, "tooLargeImages": [] }}ambiguousCredentials: The request carries both a session and an API token. invalidInput: The request is not valid.
Error response following RFC 9457 Problem Details.
object
Stable identifier of the error kind. Clients branch on this value.
Short summary of the error kind. It does not change between occurrences.
HTTP status code of the response.
Explanation of this occurrence, for people.
The last part of type, for clients that prefer a short key.
Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.
Why the request was not allowed, for forbidden.
Seconds to wait before retrying, for rateLimited, locked and busy.
Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.
What Lunedo was doing with the backup target when it failed, for backupTargetFailed.
What the full storage refuses, for storageFull: an upload, or a large write such as an import.
Minimum password length, for passwordPolicy.
Level that locked the setting, for settingLocked.
Lowest allowed value, for settingBelowMinimum.
Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.
Domains that belong to another identity provider, for domainInUse.
The current address of the instance, for instanceMoved.
ID of the identity provider that manages the account, for managedAccount and managedDomain.
Name of the identity provider that manages the account, for managedAccount and managedDomain.
Number of accounts still linked to the identity provider, for providerHasAccounts.
Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.
Bytes the organization’s imports use already, for organizationImportLimit.
Number of parts still missing, for uploadIncomplete.
Number of pages below that your own role does not cover, for shareBeyondOwnAccess.
Longest allowed lifetime of a link for anyone in days, for expiryTooLate.
Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.
Required sections that are empty or missing, for requiredSectionsEmpty.
A required section.
object
Key of the section.
Heading of the section.
Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.
Number of translations into the language, for defaultLanguageTranslated.
The existing translation, for translationExists.
Check of the light mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Check of the dark mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Who gains and who loses access, with the confirmation to send, for moveChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the content leaves a confidential space and loses its protection.
Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.
Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the copy leaves a confidential space and is not protected by it.
True when people can read the copy who cannot read the source; the copy then needs the confirmation.
Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.
Number of items the copy creates.
Number of items below that are left out because the caller cannot read them.
Number of items below that are left out because they cannot be copied.
True when the copy is large and runs in the background.
Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.
Format or editor schema version of the file, for newerTemplateFormat.
Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.
Position of the template in the file, counted from 0, for templateNameTaken.
What is wrong with the templates of the file, for invalidTemplatesInFile.
A problem in a template of the file.
object
Where in the template, such as field 3 or content.
Explanation for people, naming the template and the place.
The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.
What is wrong with the document, for invalidDocument and invalidComment.
A problem in the document.
object
Position in the document, such as .content[2].content[0].
Kind of problem, such as unknownNode or invalidAttribute.
Explanation for people.
Examples
{ "type": "urn:lunedo:problem:ambiguousCredentials", "title": "The request carries both a session and an API token", "status": 400, "code": "ambiguousCredentials"}{ "type": "urn:lunedo:problem:invalidInput", "title": "The request is not valid", "status": 400, "code": "invalidInput"}invalidApiToken: The API token is not valid. notSignedIn: Sign in or send an API token.
Error response following RFC 9457 Problem Details.
object
Stable identifier of the error kind. Clients branch on this value.
Short summary of the error kind. It does not change between occurrences.
HTTP status code of the response.
Explanation of this occurrence, for people.
The last part of type, for clients that prefer a short key.
Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.
Why the request was not allowed, for forbidden.
Seconds to wait before retrying, for rateLimited, locked and busy.
Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.
What Lunedo was doing with the backup target when it failed, for backupTargetFailed.
What the full storage refuses, for storageFull: an upload, or a large write such as an import.
Minimum password length, for passwordPolicy.
Level that locked the setting, for settingLocked.
Lowest allowed value, for settingBelowMinimum.
Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.
Domains that belong to another identity provider, for domainInUse.
The current address of the instance, for instanceMoved.
ID of the identity provider that manages the account, for managedAccount and managedDomain.
Name of the identity provider that manages the account, for managedAccount and managedDomain.
Number of accounts still linked to the identity provider, for providerHasAccounts.
Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.
Bytes the organization’s imports use already, for organizationImportLimit.
Number of parts still missing, for uploadIncomplete.
Number of pages below that your own role does not cover, for shareBeyondOwnAccess.
Longest allowed lifetime of a link for anyone in days, for expiryTooLate.
Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.
Required sections that are empty or missing, for requiredSectionsEmpty.
A required section.
object
Key of the section.
Heading of the section.
Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.
Number of translations into the language, for defaultLanguageTranslated.
The existing translation, for translationExists.
Check of the light mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Check of the dark mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Who gains and who loses access, with the confirmation to send, for moveChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the content leaves a confidential space and loses its protection.
Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.
Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the copy leaves a confidential space and is not protected by it.
True when people can read the copy who cannot read the source; the copy then needs the confirmation.
Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.
Number of items the copy creates.
Number of items below that are left out because the caller cannot read them.
Number of items below that are left out because they cannot be copied.
True when the copy is large and runs in the background.
Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.
Format or editor schema version of the file, for newerTemplateFormat.
Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.
Position of the template in the file, counted from 0, for templateNameTaken.
What is wrong with the templates of the file, for invalidTemplatesInFile.
A problem in a template of the file.
object
Where in the template, such as field 3 or content.
Explanation for people, naming the template and the place.
The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.
What is wrong with the document, for invalidDocument and invalidComment.
A problem in the document.
object
Position in the document, such as .content[2].content[0].
Kind of problem, such as unknownNode or invalidAttribute.
Explanation for people.
Examples
{ "type": "urn:lunedo:problem:invalidApiToken", "title": "The API token is not valid", "status": 401, "code": "invalidApiToken"}{ "type": "urn:lunedo:problem:notSignedIn", "title": "Sign in or send an API token", "status": 401, "code": "notSignedIn"}comparisonWithheld: The new content is restricted at the source. forbidden: Not allowed.
Error response following RFC 9457 Problem Details.
object
Stable identifier of the error kind. Clients branch on this value.
Short summary of the error kind. It does not change between occurrences.
HTTP status code of the response.
Explanation of this occurrence, for people.
The last part of type, for clients that prefer a short key.
Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.
Why the request was not allowed, for forbidden.
Seconds to wait before retrying, for rateLimited, locked and busy.
Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.
What Lunedo was doing with the backup target when it failed, for backupTargetFailed.
What the full storage refuses, for storageFull: an upload, or a large write such as an import.
Minimum password length, for passwordPolicy.
Level that locked the setting, for settingLocked.
Lowest allowed value, for settingBelowMinimum.
Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.
Domains that belong to another identity provider, for domainInUse.
The current address of the instance, for instanceMoved.
ID of the identity provider that manages the account, for managedAccount and managedDomain.
Name of the identity provider that manages the account, for managedAccount and managedDomain.
Number of accounts still linked to the identity provider, for providerHasAccounts.
Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.
Bytes the organization’s imports use already, for organizationImportLimit.
Number of parts still missing, for uploadIncomplete.
Number of pages below that your own role does not cover, for shareBeyondOwnAccess.
Longest allowed lifetime of a link for anyone in days, for expiryTooLate.
Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.
Required sections that are empty or missing, for requiredSectionsEmpty.
A required section.
object
Key of the section.
Heading of the section.
Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.
Number of translations into the language, for defaultLanguageTranslated.
The existing translation, for translationExists.
Check of the light mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Check of the dark mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Who gains and who loses access, with the confirmation to send, for moveChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the content leaves a confidential space and loses its protection.
Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.
Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the copy leaves a confidential space and is not protected by it.
True when people can read the copy who cannot read the source; the copy then needs the confirmation.
Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.
Number of items the copy creates.
Number of items below that are left out because the caller cannot read them.
Number of items below that are left out because they cannot be copied.
True when the copy is large and runs in the background.
Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.
Format or editor schema version of the file, for newerTemplateFormat.
Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.
Position of the template in the file, counted from 0, for templateNameTaken.
What is wrong with the templates of the file, for invalidTemplatesInFile.
A problem in a template of the file.
object
Where in the template, such as field 3 or content.
Explanation for people, naming the template and the place.
The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.
What is wrong with the document, for invalidDocument and invalidComment.
A problem in the document.
object
Position in the document, such as .content[2].content[0].
Kind of problem, such as unknownNode or invalidAttribute.
Explanation for people.
Examples
{ "type": "urn:lunedo:problem:comparisonWithheld", "title": "The new content is restricted at the source", "status": 403, "code": "comparisonWithheld"}{ "type": "urn:lunedo:problem:forbidden", "title": "Not allowed", "status": 403, "code": "forbidden"}changeNotFound: The change does not exist. notFound: Not found.
Error response following RFC 9457 Problem Details.
object
Stable identifier of the error kind. Clients branch on this value.
Short summary of the error kind. It does not change between occurrences.
HTTP status code of the response.
Explanation of this occurrence, for people.
The last part of type, for clients that prefer a short key.
Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.
Why the request was not allowed, for forbidden.
Seconds to wait before retrying, for rateLimited, locked and busy.
Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.
What Lunedo was doing with the backup target when it failed, for backupTargetFailed.
What the full storage refuses, for storageFull: an upload, or a large write such as an import.
Minimum password length, for passwordPolicy.
Level that locked the setting, for settingLocked.
Lowest allowed value, for settingBelowMinimum.
Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.
Domains that belong to another identity provider, for domainInUse.
The current address of the instance, for instanceMoved.
ID of the identity provider that manages the account, for managedAccount and managedDomain.
Name of the identity provider that manages the account, for managedAccount and managedDomain.
Number of accounts still linked to the identity provider, for providerHasAccounts.
Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.
Bytes the organization’s imports use already, for organizationImportLimit.
Number of parts still missing, for uploadIncomplete.
Number of pages below that your own role does not cover, for shareBeyondOwnAccess.
Longest allowed lifetime of a link for anyone in days, for expiryTooLate.
Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.
Required sections that are empty or missing, for requiredSectionsEmpty.
A required section.
object
Key of the section.
Heading of the section.
Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.
Number of translations into the language, for defaultLanguageTranslated.
The existing translation, for translationExists.
Check of the light mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Check of the dark mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Who gains and who loses access, with the confirmation to send, for moveChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the content leaves a confidential space and loses its protection.
Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.
Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the copy leaves a confidential space and is not protected by it.
True when people can read the copy who cannot read the source; the copy then needs the confirmation.
Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.
Number of items the copy creates.
Number of items below that are left out because the caller cannot read them.
Number of items below that are left out because they cannot be copied.
True when the copy is large and runs in the background.
Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.
Format or editor schema version of the file, for newerTemplateFormat.
Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.
Position of the template in the file, counted from 0, for templateNameTaken.
What is wrong with the templates of the file, for invalidTemplatesInFile.
A problem in a template of the file.
object
Where in the template, such as field 3 or content.
Explanation for people, naming the template and the place.
The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.
What is wrong with the document, for invalidDocument and invalidComment.
A problem in the document.
object
Position in the document, such as .content[2].content[0].
Kind of problem, such as unknownNode or invalidAttribute.
Explanation for people.
Examples
{ "type": "urn:lunedo:problem:changeNotFound", "title": "The change does not exist", "status": 404, "code": "changeNotFound"}{ "type": "urn:lunedo:problem:notFound", "title": "Not found", "status": 404, "code": "notFound"}changeNotComparable: Only conflicts can be compared. changesUnavailable: The changes are not listed yet. comparisonUnavailable: The comparison is no longer available.
Error response following RFC 9457 Problem Details.
object
Stable identifier of the error kind. Clients branch on this value.
Short summary of the error kind. It does not change between occurrences.
HTTP status code of the response.
Explanation of this occurrence, for people.
The last part of type, for clients that prefer a short key.
Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.
Why the request was not allowed, for forbidden.
Seconds to wait before retrying, for rateLimited, locked and busy.
Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.
What Lunedo was doing with the backup target when it failed, for backupTargetFailed.
What the full storage refuses, for storageFull: an upload, or a large write such as an import.
Minimum password length, for passwordPolicy.
Level that locked the setting, for settingLocked.
Lowest allowed value, for settingBelowMinimum.
Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.
Domains that belong to another identity provider, for domainInUse.
The current address of the instance, for instanceMoved.
ID of the identity provider that manages the account, for managedAccount and managedDomain.
Name of the identity provider that manages the account, for managedAccount and managedDomain.
Number of accounts still linked to the identity provider, for providerHasAccounts.
Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.
Bytes the organization’s imports use already, for organizationImportLimit.
Number of parts still missing, for uploadIncomplete.
Number of pages below that your own role does not cover, for shareBeyondOwnAccess.
Longest allowed lifetime of a link for anyone in days, for expiryTooLate.
Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.
Required sections that are empty or missing, for requiredSectionsEmpty.
A required section.
object
Key of the section.
Heading of the section.
Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.
Number of translations into the language, for defaultLanguageTranslated.
The existing translation, for translationExists.
Check of the light mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Check of the dark mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Who gains and who loses access, with the confirmation to send, for moveChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the content leaves a confidential space and loses its protection.
Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.
Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the copy leaves a confidential space and is not protected by it.
True when people can read the copy who cannot read the source; the copy then needs the confirmation.
Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.
Number of items the copy creates.
Number of items below that are left out because the caller cannot read them.
Number of items below that are left out because they cannot be copied.
True when the copy is large and runs in the background.
Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.
Format or editor schema version of the file, for newerTemplateFormat.
Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.
Position of the template in the file, counted from 0, for templateNameTaken.
What is wrong with the templates of the file, for invalidTemplatesInFile.
A problem in a template of the file.
object
Where in the template, such as field 3 or content.
Explanation for people, naming the template and the place.
The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.
What is wrong with the document, for invalidDocument and invalidComment.
A problem in the document.
object
Position in the document, such as .content[2].content[0].
Kind of problem, such as unknownNode or invalidAttribute.
Explanation for people.
Examples
{ "type": "urn:lunedo:problem:changeNotComparable", "title": "Only conflicts can be compared", "status": 409, "code": "changeNotComparable"}{ "type": "urn:lunedo:problem:changesUnavailable", "title": "The changes are not listed yet", "status": 409, "code": "changesUnavailable"}{ "type": "urn:lunedo:problem:comparisonUnavailable", "title": "The comparison is no longer available", "status": 409, "code": "comparisonUnavailable"}rateLimited: Too many requests.
Error response following RFC 9457 Problem Details.
object
Stable identifier of the error kind. Clients branch on this value.
Short summary of the error kind. It does not change between occurrences.
HTTP status code of the response.
Explanation of this occurrence, for people.
The last part of type, for clients that prefer a short key.
Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.
Why the request was not allowed, for forbidden.
Seconds to wait before retrying, for rateLimited, locked and busy.
Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.
What Lunedo was doing with the backup target when it failed, for backupTargetFailed.
What the full storage refuses, for storageFull: an upload, or a large write such as an import.
Minimum password length, for passwordPolicy.
Level that locked the setting, for settingLocked.
Lowest allowed value, for settingBelowMinimum.
Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.
Domains that belong to another identity provider, for domainInUse.
The current address of the instance, for instanceMoved.
ID of the identity provider that manages the account, for managedAccount and managedDomain.
Name of the identity provider that manages the account, for managedAccount and managedDomain.
Number of accounts still linked to the identity provider, for providerHasAccounts.
Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.
Bytes the organization’s imports use already, for organizationImportLimit.
Number of parts still missing, for uploadIncomplete.
Number of pages below that your own role does not cover, for shareBeyondOwnAccess.
Longest allowed lifetime of a link for anyone in days, for expiryTooLate.
Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.
Required sections that are empty or missing, for requiredSectionsEmpty.
A required section.
object
Key of the section.
Heading of the section.
Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.
Number of translations into the language, for defaultLanguageTranslated.
The existing translation, for translationExists.
Check of the light mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Check of the dark mode color, for brandContrast.
object
The checked color.
Whether it reaches the contrast WCAG AA asks for.
Contrast of the color as text on the background.
Contrast of text on the color.
The nearest shade that passes, or null when none exists.
Who gains and who loses access, with the confirmation to send, for moveChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the content leaves a confidential space and loses its protection.
Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.
Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.
object
Number of people who get access.
Number of people who lose access.
Number of people whose role rises.
Number of people whose role drops.
Number of affected people the caller may not see; they are counted but not listed.
Whether changes lists only the first 100 people.
People whose access changes, ordered by name.
How the access of one person changes.
object
ID of the account.
Name of the person.
True when the copy leaves a confidential space and is not protected by it.
True when people can read the copy who cannot read the source; the copy then needs the confirmation.
Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.
Number of items the copy creates.
Number of items below that are left out because the caller cannot read them.
Number of items below that are left out because they cannot be copied.
True when the copy is large and runs in the background.
Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.
Format or editor schema version of the file, for newerTemplateFormat.
Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.
Position of the template in the file, counted from 0, for templateNameTaken.
What is wrong with the templates of the file, for invalidTemplatesInFile.
A problem in a template of the file.
object
Where in the template, such as field 3 or content.
Explanation for people, naming the template and the place.
The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.
What is wrong with the document, for invalidDocument and invalidComment.
A problem in the document.
object
Position in the document, such as .content[2].content[0].
Kind of problem, such as unknownNode or invalidAttribute.
Explanation for people.
Examples
{ "type": "urn:lunedo:problem:rateLimited", "title": "Too many requests", "status": 429, "code": "rateLimited"}