{"openapi":"3.1.0","servers":[{"url":"/","description":"not sure about where this description should go..."}],"info":{"title":"21RISK API","summary":"Specs for the 21RISK application API.","version":"1.0.0"},"paths":{"/api/rpc/queryActivity":{"post":{"operationId":"queryActivity","description":"Query activity entries with filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"type":{"description":"Valid operands: login, openFileWithoutTenant, activateVersion, addBillingDivision, addBillingReference, addBoardOwner, addBoardStatusToBoard, addGroupOwner, addUserToGroup, adoptFrameworkTemplate, adoptSuggestedControls, answerUserTrainingQuestion, assignResponsibility, closeItems, createAgent, createAiChatAccess, createApiKey, createAutomation, createBoard, createBoardAccess, createBoardCategory, createBoardResponsibility, createBoardSite, createBoardStatus, createBoardStatusPermission, createBoardTemplate, createClaim, createClaimDamageType, createClaimPayment, createClaimRootCause, createCompliance2Board, createComplianceQuestion, createComplianceSnapshot, createComplianceSnapshotPdfLink, createControl, createCurrencyExcelLink, createDocumentBoard, createEngineeringReport, createField, createFinding, createFindingsBoard, createFindingsReport, createFolder, createFramework, createFrameworkRequirement, createGrcReconciliationReport, createGrcSyncJob, createIdentityProviderConfig, createInsurancePeriod, createInsurancePolicy, createInsuranceValueColumn, createOrganization, createOrRotateScimConnectionKey, createPhysicalNode, createPlannedMaintenance, createPolicy, createReport, createReportExcelLink, createReportPdfLink, createReports, createRiskImprovement, createSafetyWalksBoard, createScimConnection, createSite, createSiteGroup, createSitesBulkImportJob, createSsoConnection, createSuggestedAutomation, createTableView, createTag, createUser, createUserGroup, createUsersBulkImportJob, createUserTrainingCampaign, createUserTrainingQuestion, createVersion, deleteAgent, deleteAiChatAccess, deleteApiKey, deleteAutomation, deleteBillingDivision, deleteBillingReference, deleteBoard, deleteBoardAccess, deleteBoardCategory, deleteBoardResponsibility, deleteBoardSite, deleteBoardStatus, deleteBoardStatusPermission, deleteBoardTemplate, deleteClaim, deleteClaimDamageType, deleteClaimPayment, deleteClaimRootCause, deleteComplianceQuestion, deleteComplianceSnapshot, deleteControl, deleteConversation, deleteEngineeringReport, deleteField, deleteFinding, deleteFindingsReport, deleteFramework, deleteFrameworkRequirement, deleteInsurancePeriod, deleteInsurancePolicy, deletePhysicalNode, deletePolicy, deleteReport, deleteRiskImprovement, deleteScimConnection, deleteSite, deleteSiteGroup, deleteSsoConnection, deleteTableView, deleteTag, deleteUser, deleteUserGroup, deleteUserTrainingCampaign, deleteUserTrainingQuestion, deleteVersion, duplicateBoard, duplicateVersion, endAllUserSessions, endUserSession, importSitesBulkImport, importUsersBulkImport, moveBoard, movePhysicalNode, openItems, permanentlyDeleteInactiveSite, permanentlyDeleteInactiveSites, publishReport, reactivateSite, reactivateUser, refreshSamlMetadata, removeBoardOwner, removeBoardStatusFromBoard, removeGroupOwner, removeInsuranceValueColumn, removeUserFromGroup, reorderBoardStatuses, reorderTableViews, reorderTags, replaceBoardStatusOnBoard, resetUserTrainingAssignment, restorePhysicalNode, revertNotification, revokeAllOauthConsents, revokeOauthConsent, rotateScimConnectionKey, runAutomationSchedule, saveBoardDocument, triggerScimSync, unassignResponsibility, unpublishReport, updateAdvancedAnalytics, updateAiChatAccess, updateAiDefaultModel, updateAiEnabled, updateAiSpendingLimit, updateApiKey, updateAutomation, updateBillingDivision, updateBillingSettings, updateBoardAccess, updateBoardAgentInstructions, updateBoardCategory, updateBoardExpiredStatus, updateBoardFrameworks, updateBoardIntroduction, updateBoardItemLabels, updateBoardLandingPage, updateBoardName, updateBoardOwners, updateBoardResponsibility, updateBoardSlug, updateBoardStartingLevel, updateBoardStatus, updateBoardStatusPermission, updateBoardTemplate, updateClaim, updateClaims, updateComment, updateComplianceItem, updateComplianceQuestion, updateComplianceQuestionItem, updateComplianceSnapshot, updateControl, updateDefaultTenant, updateEngineeringReport, updateFeatureFlags, updateField, updateFinding, updateFindingsReport, updateFramework, updateFrameworkRequirement, updateGrcBoardCategories, updateGrcSync, updateGroupCurrency, updateGroupFeatureFlags, updateGroupFrozen, updateGroupLogo, updateGroupOwners, updateGroupTier, updateIdentityProviderConfig, updateInsurance, updateInsurancePeriod, updateInsurancePeriodSetLocked, updateInsurancePolicy, updateInsuranceRenewalDate, updateInsuranceValueColumn, updateInsuranceValues, updateItNotificationEmailRecipients, updateNotification, updateOauthConsent, updatePhysicalNode, updatePolicy, updateReport, updateReportItems, updateRiskImprovement, updateRiskModel, updateSite, updateSiteGroup, updateSitesAsInactive, updateSiteSetInactive, updateSlug, updateSsoConnectionTogglePrimary, updateSsoSettings, updateTableView, updateTag, updateTenantLogo, updateTenantName, updateUser, updateUserGroup, updateUserTrainingCampaign, updateUserTrainingQuestion, updateVersionName, upsertGrcStatus, upsertSamlProviderConfig. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"userName":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"message":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date","type","userName"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryAiConversationCosts":{"post":{"operationId":"queryAiConversationCosts","description":"Query AI conversations with their aggregated cost and token usage","tags":["P3"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"provider":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"actor":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"updatedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["provider","actor","messages","costInEuros","totalTokens","inputTokens","outputTokens","updatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryApiKey":{"post":{"operationId":"queryApiKey","description":"Get details about an API key in your organization, including its name and role. Available to organization owners.","tags":["api-keys"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"keyId":{"type":"string","minLength":1,"description":"The unique identifier of the API key."}},"required":["tenant","keyId"],"additionalProperties":false},"examples":{"basic":{"summary":"Get details about an API key","value":{"tenant":"acme-corp","keyId":"example-key-id"}}}}}}}},"/api/rpc/queryApikeys":{"post":{"operationId":"queryApikeys","description":"List API keys in your organization, including their names and roles. Available to organization owners.","tags":["api-keys"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryAutomationLogChanges":{"post":{"operationId":"queryAutomationLogChanges","description":"Query automation log changes with optional filters and pagination","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"logId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"itemId":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"revision":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","itemId","revision"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","logId"],"additionalProperties":false}}}}}},"/api/rpc/queryAutomationLogs":{"post":{"operationId":"queryAutomationLogs","description":"Query automation logs with optional filters and pagination","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"automationId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"description":"Valid operands: running, success, failed. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"invokedBy":{"description":"Valid operands: schedule, manual. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"invoker":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"startedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"itemsMatched":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"itemsProcessed":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"durationMs":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["startedAt","status","itemsMatched","itemsProcessed","durationMs","invokedBy","invoker"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","automationId"],"additionalProperties":false}}}}}},"/api/rpc/queryAutomations":{"post":{"operationId":"queryAutomations","description":"Query automations with optional filters and pagination","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"topic":{"type":"string","enum":["actions","model"]},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBillingRow":{"post":{"operationId":"queryBillingRow","description":"Get details about a billing row in your organization, including its date, description, hours, and rate. Requires permission to view billing.","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"The ID of the billing row."}},"required":["tenant","id"],"additionalProperties":false},"examples":{"basic":{"summary":"Get details about a billing row","value":{"tenant":"acme-corp","id":42}}}}}}}},"/api/rpc/queryBillableHours":{"post":{"operationId":"queryBillableHours","description":"Query billable hours with optional filters and pagination","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"consultant":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"division":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"invoiceNumber":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"invoiceNumberDraft":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date","consultant","division","from","to","hours","rateInDKK","totalDKK","invoiceNumber","invoiceNumberDraft"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardAccessEntry":{"post":{"operationId":"queryBoardAccessEntry","description":"Get one board access entry by ID for a board the caller can manage","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","boardSlug","_id"],"additionalProperties":false},"examples":{"basic":{"summary":"Get one board access entry","value":{"tenant":"acme-corp","boardSlug":"critical-12","_id":42}}}}}}}},"/api/rpc/queryBoardAccessEntries":{"post":{"operationId":"queryBoardAccessEntries","description":"Query access entries for one board where the caller can manage access","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["isAuthors","isResponsibles"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardCategories":{"post":{"operationId":"queryBoardCategories","description":"Query board categories with optional filters and pagination","tags":["insurance","findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"boardId":{"type":"string"},"parent":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"query":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardPermissions":{"post":{"operationId":"queryBoardPermissions","description":"Query board permissions with optional filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"type":"string"},"permViewItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permCreateItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permUpdateItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permDeleteItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permViewOwnItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permUpdateOwnItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permDeleteOwnItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permViewAssignedItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permUpdateAssignedItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permDeleteAssignedItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permManageAccess":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permApproveItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsReadCopeValues":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsUpdateCopeValues":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsCreateRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsReadRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsUpdateRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsDeleteRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsReadNatcat":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permManageSettings":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permTransferResponsibilities":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"userName":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"userEmail":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["userName","userEmail","sources","permViewItems","permCreateItems","permUpdateItems","permDeleteItems","permViewOwnItems","permUpdateOwnItems","permDeleteOwnItems","permViewAssignedItems","permUpdateAssignedItems","permDeleteAssignedItems","permManageAccess","permApproveItems","permInsReadCopeValues","permInsUpdateCopeValues","permInsCreateRiskImprovements","permInsReadRiskImprovements","permInsUpdateRiskImprovements","permInsDeleteRiskImprovements","permInsReadNatcat","permManageSettings","permTransferResponsibilities"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardResponsibilities":{"post":{"operationId":"queryBoardResponsibilities","description":"Query board responsibilities with optional filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardResponsibilityAssignments":{"post":{"operationId":"queryBoardResponsibilityAssignments","description":"Query board responsibility assignments with optional filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["siteName"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryBoardSites":{"post":{"operationId":"queryBoardSites","description":"Query sites assigned to a board with optional filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardStatusGlobals":{"post":{"operationId":"queryBoardStatusGlobals","description":"Query global board statuses with filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","openOrClosed"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardStatuses":{"post":{"operationId":"queryBoardStatuses","description":"Query statuses for the required boardSlug, with optional filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string","minLength":1},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","openOrClosed"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"byBoardSlug":{"summary":"Query board statuses by board slug","value":{"tenant":"acme-corp","boardSlug":"insurance","first":25}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Board status collection response","value":{"edges":[{"node":{"_id":1,"name":"To do","grcStatus":null,"restrictedMessage":null,"internalStatus":"nonCompliant","internalSort":5,"openOrClosed":"open","default":true,"includeInDefaultView":true,"position":100,"rules":null,"color":"#fe121d","createdAt":"2025-04-03T17:42:38.373Z","createdByUserId":"example|user-1"},"cursor":"cursor-status-1"},{"node":{"_id":2,"name":"In Progress","grcStatus":"","restrictedMessage":null,"internalStatus":"nonCompliantWithPlan","internalSort":4,"openOrClosed":"open","default":false,"includeInDefaultView":true,"position":200,"rules":null,"color":"#ffff3b","createdAt":"2025-04-03T17:42:38.373Z","createdByUserId":"example|user-1"},"cursor":"cursor-status-2"},{"node":{"_id":3,"name":"Completed","grcStatus":null,"restrictedMessage":null,"internalStatus":"compliant","internalSort":2,"openOrClosed":"closed","default":false,"includeInDefaultView":true,"position":300,"rules":null,"color":"#19ae54","createdAt":"2025-04-03T17:42:38.373Z","createdByUserId":"example|user-1"},"cursor":"cursor-status-3"}],"pageInfo":{"hasPrevPage":false,"hasNextPage":false,"endCursor":"cursor-status-3","startCursor":"cursor-status-1","totalCount":3}}}}}}}}}},"/api/rpc/queryBoardTemplates":{"post":{"operationId":"queryBoardTemplates","description":"Query the templates new items on a board can start from, with the values each template fills in","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryClaimRootCauses":{"post":{"operationId":"queryClaimRootCauses","description":"Query the claims root causes: per claims line, the categories and the sub-categories under them (two levels). Each row has its id, name, parentId and path (\"Category › Sub-category\"). Filter by claimsLine, and by parent for one level of the tree (\"!*\" for the categories). A claim's rootCause is one of these ids; removed root causes are left out.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"claimsLine":{"description":"Valid operands: liability, property. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryClaim":{"post":{"operationId":"queryClaim","description":"Get one claim by Item ID.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","minLength":24,"maxLength":24,"description":"The ID of the item: the itemId of a row that its list query returns, such as queryClaims or queryFindings."}},"required":["tenant","itemId"],"additionalProperties":{}}}}}}},"/api/rpc/queryClaims":{"post":{"operationId":"queryClaims","description":"Query claims with filters and pagination.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"claimsLine":{"description":"Valid operands: liability, property. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"damageType":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"rootCauseStatus":{"description":"Valid operands: unknown, suspected, confirmed, undetermined. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCauseCategory":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCause":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"rootCauseDescription":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"dateOfLoss":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"worstCaseEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"deductible":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossOutstanding":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netIncurred":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["number","status","statusGroup","name","site","date","createdDate","completedDate","claimsLine","damageType","rootCauseStatus","rootCauseCategory","rootCause","dateOfLoss","worstCaseEstimate","deductible","netPaid","grossPaid","grossOutstanding","netIncurred","costEstimate","responsible","dueDate","tags"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryClaimsTotals":{"post":{"operationId":"queryClaimsTotals","description":"Summarize the claims on a Claims board that match the given filters: the summed worst case, deductible, net paid, gross paid, gross outstanding, net incurred and cost estimate, and the number of claims in each status, in board order.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"claimsLine":{"description":"Valid operands: liability, property. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"damageType":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"rootCauseStatus":{"description":"Valid operands: unknown, suspected, confirmed, undetermined. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCauseCategory":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCause":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"rootCauseDescription":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"dateOfLoss":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"worstCaseEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"deductible":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossOutstanding":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netIncurred":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryCompliance2BoardSites":{"post":{"operationId":"queryCompliance2BoardSites","description":"Query Compliance 2 board sites with filters and pagination","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string","minLength":1},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"lastModified":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"compliance":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"cost":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","lastModified","compliance","cost"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryComplianceSnapshots":{"post":{"operationId":"queryComplianceSnapshots","description":"Query compliance reports with optional filters and pagination","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"createdBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"participants":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"reportDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","reportDate","site","createdBy"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryComplianceQuestionItem":{"post":{"operationId":"queryComplianceQuestionItem","description":"Get one Compliance 2 question item by Item ID.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","minLength":24,"maxLength":24,"description":"The ID of the item: the itemId of a row that its list query returns, such as queryClaims or queryFindings."}},"required":["tenant","itemId"],"additionalProperties":{}}}}}}},"/api/rpc/queryComplianceQuestionItems":{"post":{"operationId":"queryComplianceQuestionItems","description":"Query Compliance 2 question items with filters and pagination.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["number","status","statusGroup","name","site","date","createdDate","completedDate","level","costEstimate","responsible","dueDate","verifiedAt","expiresAt","tags"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryComplianceQuestionItemsTotals":{"post":{"operationId":"queryComplianceQuestionItemsTotals","description":"Summarize the compliance question items on a Compliance board that match the given filters: the summed cost estimate, and the number of items in each status, in board order.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryControls":{"post":{"operationId":"queryControls","description":"Query the organization’s controls with search, filters and pagination: code, name, owner, and the frameworks and requirements each covers. Each row includes the description document; filter by requirement for the controls that meet one. Needs view access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"requirement":{"description":"Only the controls mapped to this requirement.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"frameworks":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"owner":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"code":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["code","name","owner","updatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryFindingsBoardSites":{"post":{"operationId":"queryFindingsBoardSites","description":"Query findings board sites with filters and pagination","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string","minLength":1},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"lastModified":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"progress":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"cost":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","findings","lastModified","progress","cost"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryFindingsReports":{"post":{"operationId":"queryFindingsReports","description":"Query findings reports with filters and pagination","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"createdBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"reportDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","reportDate","site","findingCount","createdBy"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryFinding":{"post":{"operationId":"queryFinding","description":"Get one finding by Item ID.","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","minLength":24,"maxLength":24,"description":"The ID of the item: the itemId of a row that its list query returns, such as queryClaims or queryFindings."}},"required":["tenant","itemId"],"additionalProperties":{}}}}}}},"/api/rpc/queryFindings":{"post":{"operationId":"queryFindings","description":"Query findings for a Findings board with filters and pagination.","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"controls":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"reports":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["number","status","statusGroup","name","site","date","createdDate","completedDate","costEstimate","responsible","dueDate","verifiedAt","expiresAt","tags"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryFindingsTotals":{"post":{"operationId":"queryFindingsTotals","description":"Summarize the findings on a Findings board that match the given filters: the summed cost estimate, and the number of findings in each status, in board order.","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"controls":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"reports":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryFrameworkRequirements":{"post":{"operationId":"queryFrameworkRequirements","description":"Query the requirements and sections of the organization’s frameworks: reference, title, description, exclusion (not applicable), the controls mapped to each, and coverage rolled up over the tree (covered, partial, gap, excluded). Filter by frameworkId, and by parent for one level of the tree (\"!*\" for the top level). Needs view access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"frameworkId":{"description":"Only the requirements of this framework.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"parent":{"anyOf":[{"type":"string","const":"!*"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}]},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["requirement","framework"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryFrameworks":{"post":{"operationId":"queryFrameworks","description":"Query the organization’s adopted frameworks with search, filters and pagination: name, publisher, version, how many requirements and controls each has, and coverage (requirements with a control: covered, partial, gap, excluded). Get a framework’s requirement tree with queryFrameworkRequirements; list templates to adopt with queryFrameworkTemplates. Needs view access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"publisher":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","publisher","version","requirementCount","controlCount","updatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryGrcRecs":{"post":{"operationId":"queryGrcRecs","description":"Query GRC recommendations with optional pagination and sorting. Returns a paginated collection response where each node contains synced GRC recommendation fields such as recGUID, fileNo, status, impact, primaryType, secondaryType, estimates, response fields, and internal sync timestamps.","tags":["insurance","grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileNo":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["internalGroupId","internalGrcId","recGUID","fileNo","service","recCode","recYear","recMonth","recNumber","recSubletter","status","primaryType","secondaryType","numberOfDocuments","currency","inspectionPerformedBy","statusDate","impact","keywords","currentLossEstimate","currentLossEstimateRange","completedLossEstimate","completedLossEstimateRange","costToCompleteEstimate","costToCompleteEstimateRange","costToCompleteActual","savingsRatio","intendedAction","responseDate","responseFrom","facilityComment","internalCreatedDate","internalLastSyncDate","expectedCompletionDate","mgmtResponseAction","mgmtResponseDate","mgmtResponseFrom","mgmtResponseComment","thirdLevelResponseAction","thirdLevelResponseDate","thirdLevelResponseFrom","thirdLevelResponseComment"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false},"examples":{"basic":{"summary":"First page of GRC recommendations for a tenant","value":{"tenant":"example-tenant","first":10,"sort":["internalLastSyncDate"],"direction":["desc"]}},"bySiteFileNo":{"summary":"Request GRC recommendations for a specific site using fileNo. Organizations that have GRC sync enabled, automatically get the grc_file_no sites custom column. This column matches the fileNo field on GRC recommendations and can be used to filter recommendations pertaining to a specific site.","value":{"tenant":"example-tenant","first":100,"fileNo":"1000.0001","sort":["recYear","recNumber"],"direction":["desc","asc"]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated GRC recommendations with sync and recommendation details","value":{"edges":[{"node":{"internalGroupId":"000000000000000000000001","internalGrcId":"example-site-example-rec","internalCreatedDate":"2025-08-21T16:41:53.071Z","internalLastSyncDate":"2026-05-26T00:41:54.596Z","fileNo":"1000.0001","recGUID":"00000000-0000-4000-8000-000000000001","service":"Fire","recYear":2025,"recMonth":"06","recNumber":19,"recSubletter":null,"status":"In Progress","numberOfDocuments":0,"currency":"USD","inspectionPerformedBy":"External Inspector","statusDate":"2025-06-12T00:00:00.000Z","impact":"Moderate","primaryType":"Spec. Hazards","secondaryType":"Fire Separation","keywords":"Fire separations – Forklift charging","currentLossEstimate":10000000,"currentLossEstimateRange":"5MM-10MM","completedLossEstimate":10000,"completedLossEstimateRange":"<50K","costToCompleteEstimate":50000,"costToCompleteEstimateRange":"25K-50K","costToCompleteActual":50000,"savingsRatio":199.8,"intendedAction":"In Progress","responseDate":"2026-03-09T00:00:00.000Z","responseFrom":"Facility Manager","facilityComment":"---Safety Coordinator commented on 2025-10-09:This recommendation overlaps with a prior fire separation action and remains in progress.---","expectedCompletionDate":"2026-06-21T00:00:00.000Z","mgmtResponseAction":null,"mgmtResponseDate":null,"mgmtResponseFrom":null,"mgmtResponseComment":null,"thirdLevelResponseAction":null,"thirdLevelResponseDate":null,"thirdLevelResponseFrom":null,"thirdLevelResponseComment":null,"recCode":null},"cursor":"opaque-example-cursor-1"}],"pageInfo":{"hasPrevPage":false,"hasNextPage":true,"endCursor":"opaque-example-cursor-1","startCursor":"opaque-example-cursor-1","totalCount":4}}}}}}}}}},"/api/rpc/queryGrcSyncJobs":{"post":{"operationId":"queryGrcSyncJobs","description":"Query GRC sync jobs with optional filters and pagination","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryGroupBalance":{"post":{"operationId":"queryGroupBalance","description":"Query group balance entries with optional filters and pagination","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryInsuranceChanges":{"post":{"operationId":"queryInsuranceChanges","description":"Returns insurance changes for sites currently on the Insurance board that the user can access. Supply siteId for one site or omit for portfolio history. Includes all periods; period filters select events in that period. Site columns and filters use current values, while details describe the historical insurance change. Off-site values include both directions without requiring access to the counterparty site.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"description":"Site to retrieve insurance changes for. Omit for all accessible sites currently on the Insurance board.","type":"string"},"query":{"description":"Free-text search on the current site name.","type":"string"},"changedBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"insurance":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: active, inactive. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"changes":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"period":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date","changedBy","name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent","period"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":{}},"examples":{"portfolioHistory":{"summary":"Latest changes across accessible Insurance sites","value":{"tenant":"north-bridge-hq","sort":"date","direction":"desc","first":25}},"siteHistory":{"summary":"Insurance changes for one site","value":{"tenant":"north-bridge-hq","siteId":"68f9a6c3f2d5e0019a7c2b11","sort":"date","direction":"desc","first":25}}}}}}}},"/api/rpc/queryInsuranceOverviewSites":{"post":{"operationId":"queryInsuranceOverviewSites","description":"Query insurance overview sites with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"period":{"type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"insurance":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: active, inactive. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"valueStatus":{"description":"Valid operands: -, in progress, completed. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"address":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"tiv":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"openRiskImprovements":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"riskScore":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent","tiv","openRiskImprovements","riskScore","valueStatus"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","period"],"additionalProperties":{}}}}}}},"/api/rpc/queryInsurancePolicies":{"post":{"operationId":"queryInsurancePolicies","description":"List an insurance period's policies (master, Freedom of Services and local) with their documents, the primary document first. Needs the Insurance board's Manage Settings permission.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string","description":"The insurance period whose policies to list, by name."},"query":{"description":"Only policies whose name matches this text.","type":"string"},"type":{"description":"Valid operands: master, fos, local. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","type","createdAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","period"],"additionalProperties":false}}}}}},"/api/rpc/queryInsuranceValuesOffSite":{"post":{"operationId":"queryInsuranceValuesOffSite","description":"List the off-site value arrangements in force for an insurance period: one row per owning site and holding site pair, with stock and supplies and machinery and equipment the owner keeps at the holder, in the stated currency and in base currency. Use this when a user asks which sites keep stock or machinery at other sites, or what a warehouse holds for others.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"period":{"type":"string"},"ownerSiteName":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"holdingSiteName":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"inputCurrency":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"stockAndSuppliesInput":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"machineryAndEquipmentInput":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"stockAndSupplies":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"machineryAndEquipment":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"total":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"stockAndSuppliesPrev":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"machineryAndEquipmentPrev":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"note":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"updatedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["ownerSiteName","holdingSiteName","inputCurrency","stockAndSuppliesInput","machineryAndEquipmentInput","stockAndSupplies","machineryAndEquipment","total","stockAndSuppliesPrev","machineryAndEquipmentPrev","updatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","period"],"additionalProperties":false}}}}}},"/api/rpc/queryInsuranceValues":{"post":{"operationId":"queryInsuranceValues","description":"Query insurance COPE values for a specific period, with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"period":{"type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"valueStatus":{"description":"Valid operands: -, in progress, completed. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"copeStatus":{"description":"Valid operands: -, in progress, completed. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"biPeriod":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"smokeVents":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"fireSections":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"closureMechanisms":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"cableAndPiping":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"highRackStorage":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"spillDropCol":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"electricalInstallation":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"lithiumBatteries":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"unmannedMachinery":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"seperateCharging":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"markedCharging":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sharedOccupancy":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"electricalHeating":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"fireDetection":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"fireLogbook":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"fireAutSprinklers":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"fireExting":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"externalHydrants":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"extingService":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"thermographicSurvey":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"hotWorkPermit":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"inspectionRegularHousekeeping":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"inspectionSandwichPanels":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"inspectionFireDoors":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"smokePolicy":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"biPlan":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"solarInstallted":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"roof":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"internalWalls":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"externalWalls":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"occupancyType":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"storageTypes":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"waterPumps":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"waterSupply":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"tiv":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"tivChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"totalPD":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"totalPDChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"totalBI":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"totalBIChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"tivIncludingOffSite":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"stockAndSuppliesIncludingOffSite":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"machineryAndEquipmentIncludingOffSite":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"area":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"buildings":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"machineryAndEquipment":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"leaseImprovements":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"furnitureAndFixtures":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"stockAndSupplies":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"businessInterruption":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"buildingsChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"machineryAndEquipmentChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"leaseImprovementsChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"furnitureAndFixturesChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"stockAndSuppliesChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"businessInterruptionChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"businessInterruptionScaled":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"businessInterruptionScaledChange":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"numberOfBuildings":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"stories":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"whiteCollarEmployees":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"blueCollarEmployees":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"normalOperatingDaysAWeek":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"buildingConstructionYear":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"fireBrigade":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"fireDetectionArea":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"sprinklerProtection":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"smokeVentsPerc":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"normalOperationShifts":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","createdDate","tiv","tivChange","totalPD","totalPDChange","totalBI","totalBIChange","tivIncludingOffSite","stockAndSuppliesIncludingOffSite","machineryAndEquipmentIncludingOffSite","valueStatus","copeStatus","area","buildings","machineryAndEquipment","leaseImprovements","furnitureAndFixtures","stockAndSupplies","businessInterruption","buildingsChange","machineryAndEquipmentChange","leaseImprovementsChange","furnitureAndFixturesChange","stockAndSuppliesChange","businessInterruptionChange","businessInterruptionScaled","businessInterruptionScaledChange","numberOfBuildings","stories","whiteCollarEmployees","blueCollarEmployees","normalOperatingDaysAWeek","buildingConstructionYear","fireBrigade","fireDetectionArea","sprinklerProtection","smokeVentsPerc","normalOperationShifts","biPeriod","smokeVents","fireSections","closureMechanisms","cableAndPiping","highRackStorage","spillDropCol","electricalInstallation","lithiumBatteries","unmannedMachinery","seperateCharging","markedCharging","sharedOccupancy","electricalHeating","fireDetection","fireLogbook","fireAutSprinklers","fireExting","externalHydrants","extingService","thermographicSurvey","hotWorkPermit","inspectionRegularHousekeeping","inspectionSandwichPanels","inspectionFireDoors","smokePolicy","biPlan","solarInstallted","roof","internalWalls","externalWalls","occupancyType","storageTypes","waterPumps","waterSupply","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","period"],"additionalProperties":{}},"examples":{"basic":{"summary":"First page of insurance values","value":{"tenant":"acme-corp","first":10,"period":"2025"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated COPE values with site info","value":{"edges":[{"node":{"_id":"63092299f195895df0412798","name":"Esbjerg","address":"Frihedsvej 25b, 6700 Esbjerg, Denmark","address_countryCode":"DK","address_country":"Denmark","address_region":"Southern Denmark","address_district":null,"address_cityPlace":"Esbjerg","address_postcode":"6700","address_locality":null,"address_neighborhood":null,"address_street":"Frihedsvej","address_streetNumber":"25b","address_markerLatitude":55.476355,"address_markerlongitude":8.45901,"status":"active","parents":[],"tags":[],"buildings":200000,"machineryAndEquipment":50000,"leaseImprovements":120000,"furnitureAndFixtures":20000,"stockAndSupplies":1000,"c_val_01a0fc71-6809-71c1-b918-b397ba999109":53478.78,"businessInterruption":3000,"buildingsPrev":null,"machineryAndEquipmentPrev":null,"leaseImprovementsPrev":null,"furnitureAndFixturesPrev":null,"stockAndSuppliesPrev":null,"businessInterruptionPrev":null,"area":null,"numberOfBuildings":null,"stories":null,"tiv":447478.78,"tivPrev":0,"tivChange":null,"totalPD":444478.78,"totalPDPrev":0,"totalPDChange":null,"totalBI":3000,"totalBIPrev":0,"totalBIChange":null,"riskScore":42,"c_sites_test_select":"Option 2","c_sites_test_text":"some-text","c_sites_test_number":342,"c_sites_test_date":null,"c_sites_test_id":"asd3234"},"cursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMwOTIyOTlmMTk1ODk1ZGYwNDEyNzk4Il0="}],"pageInfo":{"hasPrevPage":false,"hasNextPage":true,"endCursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMwOTIyOTlmMTk1ODk1ZGYwNDEyNzk4Il0=","startCursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMwOTIyOTlmMTk1ODk1ZGYwNDEyNzk4Il0=","totalCount":3}}}}}}}}}},"/api/rpc/queryInsuranceEngineeringReports":{"post":{"operationId":"queryInsuranceEngineeringReports","description":"Query insurance engineering reports with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"source":{"description":"Valid operands: self-inspection, GRC, other, IF, Codan, Paragon, Swiss Re, Chubb, Zürich, Tryg, Allianz, AIG, Marsh, Willis Towers Watson, Aon, Howden. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["auditDate","createdDate","site"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryInvoices":{"post":{"operationId":"queryInvoices","description":"Query invoices with optional filters and pagination","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["bookedInvoiceNumber","date","amount"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryItemChangeHistory":{"post":{"operationId":"queryItemChangeHistory","description":"Query item change history","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string"},"asOf":{},"changedBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"changes":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"itemName":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["revision","date","changedBy"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryItemFiles":{"post":{"operationId":"queryItemFiles","description":"Query the files attached to an item","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string"},"query":{"description":"Only files whose name matches this text.","type":"string"},"asOf":{},"attachedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","size","mimeType","attachedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryItems":{"post":{"operationId":"queryItems","description":"Query items (actions/risk improvements) by board ID or slug, with optional filters and pagination. The board filter uses risk type IDs and names for compliance 1 boards, and board IDs and names for newer board types. Synthetic Closed compliance items are excluded unless a status filter is supplied.","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"compliance":{"description":"Valid operands: awaitingReview, closed, compliant, excellent, missing, nonCompliant, nonCompliantWithPlan, notAnswered, notApplicable, notScorable. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sync":{"description":"Valid operands: not-applicable, no-integration, grc-synced, other-integration. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"source":{"description":"Valid operands: self-inspection, GRC, other, IF, Codan, Paragon, Swiss Re, Chubb, Zürich, Tryg, Allianz, AIG, Marsh, Willis Towers Watson, Aon, Howden. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"claimsLine":{"description":"Valid operands: liability, property. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"damageType":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"board":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"type":{"description":"Valid operands: f, q, e, c, l, p. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"dateOfLoss":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"worstCaseEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"deductible":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossOutstanding":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netIncurred":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"externalId":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["status","statusGroup","compliance","level","name","source","claimsLine","damageType","dateOfLoss","worstCaseEstimate","deductible","netPaid","grossPaid","grossOutstanding","netIncurred","externalId","costEstimate","responsible","dueDate","tags","site","board","date","createdDate","verifiedAt","expiresAt","completedDate","leBefore","leAfter"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":{}},"examples":{"basic":{"summary":"First page of items on a board","value":{"tenant":"acme-corp","first":10,"boardSlug":"risk-board"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated items with full details","value":{"edges":[{"node":{"itemId":"64d36134187473e627f16cc6","name":"2 Did your organization audit PII access and storage?","compliance":"nonCompliantWithPlan","compliance_sort":4,"level":"2","levelSort":[2],"categoryName":"Did your organization audit PII access and storage?","itemType":"c","canUpdate":true,"isOverdue":false,"date":"2026-03-09T15:59:44.609Z","createdDate":"2023-08-09T09:49:40.258Z","completedDate":null,"boardStatus_id":-2,"boardStatus_name":"In Progress","boardStatus_internalStatus":"nonCompliantWithPlan","boardStatus_color":"#FFFD38","boardStatus_openOrClosed":null,"boardStatus_includeInDefaultView":null,"costEstimate":345,"dueDate":"2025-05-01T00:00:00.000Z","externalId":null,"syncStatus":"not-applicable","source":null,"engineeringReportId":null,"labels":[],"tags":[],"responsible_user_id":"21risk|6502d5603633ce6b3a5418c6","responsible_name":"Shreya (Freelancer)","responsible_email":"shreya.thakrar228@gmail.com","responsible_picture_id":null,"site_id":"63760f894fae2735d63bfb54","site_name":"Svanemosen 2","site_parents":[],"riskType_id":"642fe66ca7ea977311028673","riskType_name":"GDPR","board_id":"642fe66ca7ea977311028673","board_name":"GDPR","boardCategory_id":null,"boardCategory_name":null,"boardCategory_parent":null,"boardCategory_parents":[],"boardId":"64d361349b7fba78b53d023e","boardSlug":"gdpr","itemSingularLabel":"action","lossEstimateBefore":null,"lossEstimateAfter":null},"cursor":"W1sxXSxbMiwzXSwiaXRlbUlkIiwiNjRkMzYxMzQxODc0NzNlNjI3ZjE2Y2M2Il0="}],"pageInfo":{"hasPrevPage":false,"hasNextPage":true,"endCursor":"W1sxXSxbMiwzXSwiaXRlbUlkIiwiNjRkMzYxMzQxODc0NzNlNjI3ZjE2Y2M2Il0=","startCursor":"W1sxXSxbMiwzXSwiaXRlbUlkIiwiNjRkMzYxMzQxODc0NzNlNjI3ZjE2Y2M2Il0=","totalCount":3}}}}}}}}}},"/api/rpc/queryNatcatAndClimateByInsuranceSites":{"post":{"operationId":"queryNatcatAndClimateByInsuranceSites","description":"Query natural catastrophe and climate data by insurance sites with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"version":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","reportDate"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryNatcatAndClimateTransactions":{"post":{"operationId":"queryNatcatAndClimateTransactions","description":"Query natural catastrophe and climate transactions with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"siteName":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"version":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["siteName","reportId","reportDate","version"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryNotificationsInbox":{"post":{"operationId":"queryNotificationsInbox","description":"The current user's notifications inbox (paginated collection).","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"title":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["risk-improvements","natcat","values","cope","engineering-reports","compliance","findings","responsibilities"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["risk-improvements","natcat","values","cope","engineering-reports","compliance","findings","responsibilities"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"actor":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["Unread","Read"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["Unread","Read"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"date":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"type":"string","enum":["date"]},{"type":"array","items":{"type":"string","enum":["date"]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant"],"additionalProperties":{}}}}}}},"/api/rpc/queryNotifications":{"post":{"operationId":"queryNotifications","description":"Query notifications with filters and pagination","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["templateKey","subject","updatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryOauthConsents":{"post":{"operationId":"queryOauthConsents","description":"Query OAuth consents with optional filters and pagination","tags":["oauth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["app","grantedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"additionalProperties":false}}}}}},"/api/rpc/queryPlannedMaintenance":{"post":{"operationId":"queryPlannedMaintenance","description":"Query planned maintenance entries with filtering and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","startDate","endDate","createdDate","createdByName"]},"direction":{"type":"string","enum":["asc","desc"]}},"additionalProperties":false}}}}}},"/api/rpc/queryPolicies":{"post":{"operationId":"queryPolicies","description":"Query the organization’s policies (the items on the Frameworks and Controls board) with search, filters and pagination: name, site, status, owner, current documents, linked controls, when each was last approved and by whom, and when its next review is due (expiresAt). Filter expiresAt \"<@today\" for overdue reviews, statusGroup for open or approved policies, or controls by control id for the policies covering a control. Needs view access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"description":"Only policies whose name matches this text.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"controls":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["number","statusGroup","name","site","date","createdDate","completedDate","status","responsible","verifiedAt","approvedBy","expiresAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryReport":{"post":{"operationId":"queryReport","description":"Get one report by ID.","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reportId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","pattern":"^[a-f\\d]{24}$"}]}},"required":["tenant","reportId"],"additionalProperties":false},"examples":{"compliance2":{"summary":"Get a compliance report","value":{"tenant":"acme-corp","reportId":"019d0d7a-8e15-7000-8000-000000000007"}}}}}}}},"/api/rpc/queryReports":{"post":{"operationId":"queryReports","description":"Get all reports (audits) in a group. Supports pagination, filtering by board, model, version, site, status, auditor, and date fields. Pass boardId=null for org-level view.","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":["string","null"]},"query":{"type":"string"},"model":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"version":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"status":{"description":"Valid operands: draft, published. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"auditor":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"createdBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"published":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"lastModified":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["model","version","site","status","auditor","createdBy","published","date","lastModified"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardId"],"additionalProperties":{}},"examples":{"basic":{"summary":"First page of reports for a board","value":{"tenant":"acme-corp","first":10,"boardId":"65609db61989edb7123ec9e8"}},"orgLevel":{"summary":"All reports across boards","value":{"tenant":"acme-corp","first":10,"boardId":null}},"withFilter":{"summary":"Filter by status","value":{"tenant":"acme-corp","first":10,"boardId":null,"filter":{"status":{"eq":"published"}}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated reports","value":{"edges":[{"node":{"_id":"6509a1b2c3d4e5f6a7b8c9d0","name":"Q1 2026 Fire Safety Audit","model":"Fire Safety","version":"v2","site":"Esbjerg","status":"published","auditor":"Jane Smith","date":"2026-03-15","published":"2026-03-20"},"cursor":"WzEsImRhdGUiLCIyMDI2LTAzLTE1Il0="}],"pageInfo":{"hasPrevPage":false,"hasNextPage":true,"endCursor":"WzEsImRhdGUiLCIyMDI2LTAzLTE1Il0=","startCursor":"WzEsImRhdGUiLCIyMDI2LTAzLTE1Il0=","totalCount":156}}}}}}}}}},"/api/rpc/queryRiskImprovement":{"post":{"operationId":"queryRiskImprovement","description":"Get one risk improvement by Item ID.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","minLength":24,"maxLength":24,"description":"The ID of the item: the itemId of a row that its list query returns, such as queryClaims or queryFindings."}},"required":["tenant","itemId"],"additionalProperties":{}}}}}}},"/api/rpc/queryRiskImprovements":{"post":{"operationId":"queryRiskImprovements","description":"Query risk improvements with filters and pagination.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sync":{"description":"Valid operands: not-applicable, no-integration, grc-synced, other-integration. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"source":{"description":"Valid operands: self-inspection, GRC, other, IF, Codan, Paragon, Swiss Re, Chubb, Zürich, Tryg, Allianz, AIG, Marsh, Willis Towers Watson, Aon, Howden. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"externalId":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"leBefore":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"leAfter":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["number","status","statusGroup","name","site","date","createdDate","completedDate","source","externalId","costEstimate","responsible","dueDate","tags","leBefore","leAfter"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","boardSlug"],"additionalProperties":{}},"examples":{"basic":{"summary":"First page of risk improvements","value":{"tenant":"acme-corp","boardSlug":"insurance","first":10}},"filtered":{"summary":"Filter by site","value":{"tenant":"acme-corp","boardSlug":"insurance","first":10,"site":"63092299f195895df0412798"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated risk improvements","value":{"edges":[{"node":{"itemId":"67e2abbf9e0a47a1f2cdaf3c","name":"Upgrade sprinkler protection","itemType":"e","canUpdate":true,"boardStatus_id":1,"boardStatus_name":"To do","boardStatus_internalStatus":"nonCompliant","boardStatus_color":"#fe121d","boardStatus_openOrClosed":"open","boardStatus_includeInDefaultView":true,"syncStatus":"no-integration","source":"self-inspection","boardCategory_id":44,"boardCategory_name":"Upgrade Existing","boardCategory_parent":{"_id":42,"name":"Sprinklers"},"boardCategory_parents":[{"_id":42,"name":"Sprinklers"}],"externalId":null,"costEstimate":null,"responsible_user_id":null,"responsible_name":null,"responsible_email":null,"responsible_picture_id":null,"dueDate":null,"labels":[],"tags":[],"site_id":"63092299f195895df0412798","site_name":"Esbjerg","site_parents":[],"engineeringReportId":null,"boardSlug":"insurance","parentItemId":null,"isSubtask":false,"date":"2025-05-13T12:30:44.186Z","createdDate":"2025-03-25T13:12:31.237Z","completedDate":null,"lossEstimateBefore":null,"lossEstimateAfter":null},"cursor":"W1siaXRlbUlkIiwiNjdlMmFiYmY5ZTBhNDdhMWYyY2RhZjNjIl1d"}],"pageInfo":{"hasPrevPage":false,"hasNextPage":false,"startCursor":"W1siaXRlbUlkIiwiNjdlMmFiYmY5ZTBhNDdhMWYyY2RhZjNjIl1d","endCursor":"W1siaXRlbUlkIiwiNjdlMmFiYmY5ZTBhNDdhMWYyY2RhZjNjIl1d","totalCount":1}}}}}}}}}},"/api/rpc/queryRiskImprovementsTotals":{"post":{"operationId":"queryRiskImprovementsTotals","description":"Summarize the risk improvements on an Insurance board that match the given filters: the summed cost estimate and loss estimates before and after, and the number of risk improvements in each status, in board order.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sync":{"description":"Valid operands: not-applicable, no-integration, grc-synced, other-integration. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"source":{"description":"Valid operands: self-inspection, GRC, other, IF, Codan, Paragon, Swiss Re, Chubb, Zürich, Tryg, Allianz, AIG, Marsh, Willis Towers Watson, Aon, Howden. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"externalId":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"leBefore":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"leAfter":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}}},"required":["tenant","boardSlug"],"additionalProperties":{}}}}}}},"/api/rpc/queryRiskTypes":{"post":{"operationId":"queryRiskTypes","description":"Query risk types with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryScimGroups":{"post":{"operationId":"queryScimGroups","description":"Query SCIM groups with filters and pagination","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"},"deleted":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"displayName":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["displayName","externalId","memberCount","deleted"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/queryScimSyncDetail":{"post":{"operationId":"queryScimSyncDetail","description":"Query SCIM sync detail rows with filters and pagination","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"entityId":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","entityId"],"additionalProperties":false}}}}}},"/api/rpc/queryScimSyncs":{"post":{"operationId":"queryScimSyncs","description":"Query SCIM syncs with filters and pagination","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"status":{"description":"Valid operands: in-progress, completed, failed. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["startedAt","completedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryScimUsers":{"post":{"operationId":"queryScimUsers","description":"Query SCIM users with filters and pagination","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"},"deleted":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"email":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["email","externalId","deleted"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/querySiteActivity":{"post":{"operationId":"querySiteActivity","description":"Returns combined Site and Insurance activity for accessible sites. Supply siteId for one site or omit it for portfolio activity. Site and Insurance entries retain their source-specific change details.","tags":["sites","insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"description":"ID of the site whose activity to retrieve. Omit to span every accessible site.","type":"string"},"query":{"description":"Free-text search on the current site name.","type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"insurance":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: active, inactive. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"changedBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"changes":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date","name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent","changedBy"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":{}},"examples":{"siteActivity":{"summary":"Recent Site and Insurance activity for one site","value":{"tenant":"north-bridge-hq","siteId":"68f9a6c3f2d5e0019a7c2b11","sort":"date","direction":"desc","first":25}}}}}}}},"/api/rpc/querySiteChangeHistory":{"post":{"operationId":"querySiteChangeHistory","description":"Returns site revision activity. Supply siteId for one site or omit it for every site in the organization. Revision-prefixed fields describe the saved revision; shared site fields and filters use current values.","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"description":"ID of the site whose revision history you want to retrieve. Omit to span every site in the organization.","type":"string"},"query":{"description":"Free-text search on the site name.","type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"insurance":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: active, inactive. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"changedBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"changes":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["date","name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent","changedBy","revision"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":{}},"examples":{"siteHistory":{"summary":"Latest revisions for one site","value":{"tenant":"north-bridge-hq","siteId":"68f9a6c3f2d5e0019a7c2b11","sort":"revision","direction":"desc","first":25}},"portfolioActivity":{"summary":"Recent activity for sites currently in Denmark","value":{"tenant":"north-bridge-hq","country":"DK","date":"@today-14d..@today","sort":"date","direction":"desc","first":25}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"siteHistory":{"summary":"A revision with current site context","value":{"edges":[{"node":{"id":7421,"siteId":"68f9a6c3f2d5e0019a7c2b11","name":"Copenhagen Office","revision":18,"revisionStatus":"inactive","previousRevisionStatus":"active","revisionStatusChanged":true,"changedKeys":["status"],"date":"2026-06-10T11:05:57.854Z"}}]}}}}}},"400":{"description":"Error 400","content":{"application/json":{"examples":{"sortMismatch":{"summary":"sort and direction must match","value":{"message":"You must provide a sort and direction for each sort field."}}}}}}}}},"/api/rpc/querySiteGroupMatrix":{"post":{"operationId":"querySiteGroupMatrix","description":"Query the site group matrix: one row per site (same filters as the sites collection) including the site groups each site is a member of","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"insurance":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: active, inactive. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":{}}}}}}},"/api/rpc/querySiteGroupMembership":{"post":{"operationId":"querySiteGroupMembership","description":"Query site group membership with optional filters and pagination","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteGroupId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","siteGroupId"],"additionalProperties":false}}}}}},"/api/rpc/querySiteGroups":{"post":{"operationId":"querySiteGroups","description":"Query site groups with optional filters and pagination","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"slug":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"type":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"description":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"sites":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","slug","description","sites"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/querySitePermissions":{"post":{"operationId":"querySitePermissions","description":"Query site permissions with optional filters and pagination","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string"},"query":{"type":"string"},"permUpdateSites":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permDeleteSites":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permAccessAllSites":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"userName":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"userEmail":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["userName","userEmail","sources","permUpdateSites","permDeleteSites","permAccessAllSites"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","siteId"],"additionalProperties":false}}}}}},"/api/rpc/querySites":{"post":{"operationId":"querySites","description":"Get all sites in an organization. Every member can look up every site; filter with hasAccess=\"true\" to narrow to the sites the calling user can work with on boards, or boardId to narrow to the sites they can work with on that board. Each row carries the boolean hasAccess. Use with filters and pagination to narrow the results.","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"country":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"city":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"region":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"district":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"postcode":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"locality":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"neighborhood":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"insurance":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: active, inactive. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"parent":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"hasAccess":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":{}},"examples":{"basic":{"summary":"First page of sites","value":{"tenant":"acme-corp","first":10}},"withFilter":{"summary":"Filter by country","value":{"tenant":"acme-corp","first":10,"country":"DK"}},"withAccess":{"summary":"Only the sites the calling user can work with","value":{"tenant":"acme-corp","first":10,"hasAccess":true}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated sites with address and custom fields","value":{"edges":[{"node":{"_id":"63092299f195895df0412798","name":"Esbjerg","address":"Frihedsvej 25b, 6700 Esbjerg, Denmark","address_countryCode":"DK","address_country":"Denmark","address_region":"Southern Denmark","address_district":null,"address_cityPlace":"Esbjerg","address_postcode":"6700","address_locality":null,"address_neighborhood":null,"address_street":"Frihedsvej","address_streetNumber":"25b","address_latitude":55.476355,"address_markerLatitude":55.476355,"address_longitude":8.45901,"address_markerlongitude":8.45901,"address_zoom":15,"address_pitch":null,"address_bearing":null,"address_mapstyle":"mapbox://styles/mapbox/satellite-streets-v12","parents":[],"sortKey":["Esbjerg"],"insuranceActive":true,"createdDate":"2022-08-26T19:44:25.000Z","status":"active","hasChildren":false,"hasAccess":true,"parent":null,"tags":[],"c_sites_test_select":"Option 2","c_sites_test_text":"some-text","c_sites_test_number":342,"c_sites_test_date":null,"c_sites_test_id":"asd3234"},"cursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMwOTIyOTlmMTk1ODk1ZGYwNDEyNzk4Il0="},{"node":{"_id":"633970bb74b842b24796cf7f","name":"Palo Alto","address":"1610 Middlefield Road, Palo Alto, California 94301, United States","address_countryCode":"US","address_country":"United States","address_region":"California","address_district":"Santa Clara County","address_cityPlace":"Palo Alto","address_postcode":"94301","address_locality":null,"address_neighborhood":"Old Palo Alto","address_street":"Middlefield Road","address_streetNumber":"1610","address_latitude":37.441835,"address_markerLatitude":37.441835,"address_longitude":-122.14307,"address_markerlongitude":-122.14307,"address_zoom":15,"address_pitch":0,"address_bearing":0,"address_mapstyle":"mapbox://styles/mapbox/satellite-streets-v12","parents":[],"sortKey":["Palo Alto"],"insuranceActive":true,"createdDate":"2022-10-02T11:06:35.000Z","status":"active","hasChildren":false,"hasAccess":true,"parent":null,"tags":[],"c_sites_test_select":"Option 1","c_sites_test_text":"somer-oter text","c_sites_test_number":2349,"c_sites_test_date":null,"c_sites_test_id":"23423"},"cursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMzOTcwYmI3NGI4NDJiMjQ3OTZjZjdmIl0="}],"pageInfo":{"hasPrevPage":false,"hasNextPage":true,"endCursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMzOTcwYmI3NGI4NDJiMjQ3OTZjZjdmIl0=","startCursor":"W1sxXSxbMiwzXSwiX2lkIiwiNjMwOTIyOTlmMTk1ODk1ZGYwNDEyNzk4Il0=","totalCount":17}}}}}}}}}},"/api/rpc/querySsoFlow":{"post":{"operationId":"querySsoFlow","description":"Query a single SSO flow","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"state":{"type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","state"],"additionalProperties":false}}}}}},"/api/rpc/querySsoFlows":{"post":{"operationId":"querySsoFlows","description":"Query SSO flows with optional filters and pagination","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"ssoConnectionId":{"type":"string"},"status":{"description":"Valid operands: Failed, Succeeded, In-progress. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["createdAt","lastUpdatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","ssoConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/queryTagChangeHistory":{"post":{"operationId":"queryTagChangeHistory","description":"Query tag change history","tags":["tags"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"labelId":{"type":"string"},"changedBy":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["revision","date","changedBy"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","labelId"],"additionalProperties":false}}}}}},"/api/rpc/queryTags":{"post":{"operationId":"queryTags","description":"Query tags with optional filters and pagination","tags":["tags"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"description":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","description"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryUserBoardPermissions":{"post":{"operationId":"queryUserBoardPermissions","description":"Query user board permissions with optional filters and pagination","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userId":{"type":"string"},"permViewItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permCreateItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permUpdateItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permDeleteItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permManageAccess":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permApproveItems":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permManageSettings":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permTransferResponsibilities":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"boardName":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["boardName","sources","permViewItems","permCreateItems","permUpdateItems","permDeleteItems","permManageAccess","permApproveItems","permManageSettings","permTransferResponsibilities"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","userId"],"additionalProperties":false}}}}}},"/api/rpc/queryUserGroupMembership":{"post":{"operationId":"queryUserGroupMembership","description":"Query user group memberships with optional filters and pagination","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userGroupId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"email":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","email"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","userGroupId"],"additionalProperties":false}}}}}},"/api/rpc/queryUserGroups":{"post":{"operationId":"queryUserGroups","description":"Query user groups with optional filters and pagination","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"slug":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"description":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"members":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","slug","description","permissions","members"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryUserInsurancePermissions":{"post":{"operationId":"queryUserInsurancePermissions","description":"Query user insurance permissions with optional filters and pagination","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userId":{"type":"string"},"permInsReadCopeValues":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsUpdateCopeValues":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsReadRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsCreateRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsUpdateRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsDeleteRiskImprovements":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permInsReadNatcat":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permManageAccess":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permManageSettings":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"permTransferResponsibilities":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"boardName":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["boardName","sources","permInsReadCopeValues","permInsUpdateCopeValues","permInsReadRiskImprovements","permInsCreateRiskImprovements","permInsUpdateRiskImprovements","permInsDeleteRiskImprovements","permInsReadNatcat","permManageAccess","permManageSettings","permTransferResponsibilities"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","userId"],"additionalProperties":false}}}}}},"/api/rpc/queryUserSitePermissions":{"post":{"operationId":"queryUserSitePermissions","description":"Query user site permissions with optional filters and pagination","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userId":{"type":"string"},"sourceDirect":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sourceAccessAllSites":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sourceOrgOwner":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sourceResponsibility":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"siteName":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["siteName","sourceDirect","sourceAccessAllSites","sourceOrgOwner","sourceResponsibility"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant","userId"],"additionalProperties":false}}}}}},"/api/rpc/queryUserTrainingAssignments":{"post":{"operationId":"queryUserTrainingAssignments","description":"Query everyone’s training results on the User Training board, with search, filters and pagination: one row per trainee of a campaign with their status (not started, in progress, overdue, passed, failed, not completed), latest score, attempts used, due date and when they finished. Filter by campaign for one campaign’s trainees; the export is the completion report auditors ask for. Needs view access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"campaign":{"description":"Only the trainees of this campaign.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"progress":{"description":"Valid operands: notStarted, inProgress, overdue, passed, failed, notCompleted. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"email":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","email","progress","scorePercent","attemptsUsed","dueAt","finishedAt","assignedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryUserTrainingCampaigns":{"post":{"operationId":"queryUserTrainingCampaigns","description":"Query the organization’s training campaigns on the User Training board, with search, filters and pagination: status (draft, active, closed), user groups, the questions with their correct answers, and how many people are assigned, passed, failed and overdue. Needs view access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"status":{"description":"Valid operands: draft, active, closed. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"title":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["title","status","assignedCount","completedCount","failedCount","overdueCount","launchedAt","updatedAt"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryUserSessions":{"post":{"operationId":"queryUserSessions","description":"Query user sessions with optional filters and pagination","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["location","ip","created","expires"]},"direction":{"type":"string","enum":["asc","desc"]}},"additionalProperties":false}}}}}},"/api/rpc/queryUsersBySite":{"post":{"operationId":"queryUsersBySite","description":"Query users assigned to a specific site with optional filters and pagination","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"site_name":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: activeMember, deleted, neverSeen, passiveMember. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"email":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","email","site_name","status"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryUsers":{"post":{"operationId":"queryUsers","description":"Get all users (members) in a group. Supports pagination, filtering by name, email, status, and group membership.","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"sites":{},"userType":{"description":"Valid operands: user, agent. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"groups":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"status":{"description":"Valid operands: activeMember, deleted, neverSeen, passiveMember. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"email":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"after":{"description":"Cursor-based pagination: return results after this cursor. Use pageInfo.endCursor from the previous page.","type":"string"},"before":{"description":"Cursor-based pagination: return results before this cursor. Use pageInfo.startCursor from the current/previous page.","type":"string"},"first":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"string","const":"all"}]},"last":{"description":"Cursor-based pagination: number of results to return before the before cursor. Use for backward pagination.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sort":{"type":"string","enum":["name","email","status","createdDate"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["tenant"],"additionalProperties":false},"examples":{"basic":{"summary":"First page of users","value":{"tenant":"acme-corp","first":10}},"withFilter":{"summary":"Filter by status","value":{"tenant":"acme-corp","first":10,"filter":{"status":{"eq":"active"}}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Paginated users with membership info","value":{"edges":[{"node":{"_id":"auth0|507f1f77bcf86cd799439011","name":"Jane Smith","email":"jane@acme.com","status":"active","groups":["Admins"]},"cursor":"WzEsIm5hbWUiLCJKYW5lIFNtaXRoIl0="}],"pageInfo":{"hasPrevPage":false,"hasNextPage":true,"endCursor":"WzEsIm5hbWUiLCJKYW5lIFNtaXRoIl0=","startCursor":"WzEsIm5hbWUiLCJKYW5lIFNtaXRoIl0=","totalCount":42}}}}}}}}}},"/api/rpc/createComplianceSnapshotPdfLink":{"post":{"operationId":"createComplianceSnapshotPdfLink","description":"Generate a temporary PDF download link for a compliance-2 snapshot report","tags":["compliance","reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"snapshotId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","boardSlug","snapshotId"],"additionalProperties":false}}}}}},"/api/rpc/createEngineeringReportsExportCommand":{"post":{"operationId":"createEngineeringReportsExportCommand","description":"Create a zip export of all engineering reports, with one folder per site and a flat latest/ folder holding the newest report per site as <site-name>-<site-id>.pdf","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/createInsuranceExcelCommand":{"post":{"operationId":"createInsuranceExcelCommand","description":"Create a zip export of insurance data for a selected period","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string"}},"required":["tenant","period"],"additionalProperties":false}}}}}},"/api/rpc/dismissVideoIntroduction":{"post":{"operationId":"dismissVideoIntroduction","description":"Dismiss a feature-introduction video for the current user. The video stays hidden for that user everywhere; queryTenant only returns non-dismissed videos.","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"slug":{}},"required":["tenant","slug"],"additionalProperties":false},"examples":{"basic":{"summary":"Dismiss the access-page intro video","value":{"tenant":"acme-corp","slug":"access-introduction"}}}}}}}},"/api/rpc/endAllUserSessions":{"post":{"operationId":"endAllUserSessions","description":"End all active sessions for the current user","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}}}},"/api/rpc/endUserSession":{"post":{"operationId":"endUserSession","description":"End a specific active session for the current user","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sessionId":{"type":"string"}},"required":["sessionId"],"additionalProperties":false}}}}}},"/api/rpc/confirmFileUpload":{"post":{"operationId":"confirmFileUpload","description":"Finishes an upload from createFileUpload, once its script has run: checks the file's content against its type and makes it available. Until then, functions that take a file id reject it. Returns the file, whose `_id` is the `fileId` from createFileUpload. Confirming again returns the same file.","tags":["public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The fileId from createFileUpload, once the file is uploaded."}},"required":["tenant","fileId"],"additionalProperties":false},"examples":{"afterUpload":{"summary":"Confirm an uploaded photo","value":{"tenant":"acme-corp","fileId":"7d1e2f4a-9b3c-4e5d-8f6a-1b2c3d4e5f60"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"mimeType":{"type":"string"}},"required":["_id","name","size","mimeType"]}}}}}}},"/api/rpc/createCurrencyExcelLink":{"post":{"operationId":"createCurrencyExcelLink","description":"Generate a temporary Excel export link for an insurance period's currency rates","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string"}},"required":["tenant","period"],"additionalProperties":false}}}}}},"/api/rpc/closeItems":{"post":{"operationId":"closeItems","description":"Close selected compliance items on a board","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"selectionContext":{"type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"type":"string"},"boardSlug":{"type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"statusGroup":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["open","closed","ignore"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["open","closed","ignore"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"compliance":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"sync":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["not-applicable","no-integration","grc-synced","other-integration"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["not-applicable","no-integration","grc-synced","other-integration"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"source":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["self-inspection","GRC","other","IF","Codan","Paragon","Swiss Re","Chubb","Zürich","Tryg","Allianz","AIG","Marsh","Willis Towers Watson","Aon","Howden"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["self-inspection","GRC","other","IF","Codan","Paragon","Swiss Re","Chubb","Zürich","Tryg","Allianz","AIG","Marsh","Willis Towers Watson","Aon","Howden"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"claimsLine":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["liability","property"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["liability","property"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"damageType":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"category":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"responsible":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"tags":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"site":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"board":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"type":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["f","q","e","c","l","p"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["f","q","e","c","l","p"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"isSubtask":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"string"},"opr":{"type":"string","enum":["equal","contains","startswith","endswith","!equal","!contains","!startswith","!endswith"]},"value":{"type":"string"}},"required":["type","opr","value"],"additionalProperties":false}]},"dateOfLoss":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"worstCaseEstimate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"deductible":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"netPaid":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"grossPaid":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"grossOutstanding":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"netIncurred":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"externalId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"string"},"opr":{"type":"string","enum":["equal","contains","startswith","endswith","!equal","!contains","!startswith","!endswith"]},"value":{"type":"string"}},"required":["type","opr","value"],"additionalProperties":false}]},"costEstimate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"dueDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"date":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"createdDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"verifiedAt":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"expiresAt":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"completedDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["status","statusGroup","compliance","level","name","source","claimsLine","damageType","dateOfLoss","worstCaseEstimate","deductible","netPaid","grossPaid","grossOutstanding","netIncurred","externalId","costEstimate","responsible","dueDate","tags","site","board","date","createdDate","verifiedAt","expiresAt","completedDate","leBefore","leAfter"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["status","statusGroup","compliance","level","name","source","claimsLine","damageType","dateOfLoss","worstCaseEstimate","deductible","netPaid","grossPaid","grossOutstanding","netIncurred","externalId","costEstimate","responsible","dueDate","tags","site","board","date","createdDate","verifiedAt","expiresAt","completedDate","leBefore","leAfter"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant"],"additionalProperties":{}},"boardSlug":{"type":"string"}},"required":["tenant","selectionContext","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/openItems":{"post":{"operationId":"openItems","description":"Reopen selected closed compliance items on a board","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"selectionContext":{"type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"type":"string"},"boardSlug":{"type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"statusGroup":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["open","closed","ignore"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["open","closed","ignore"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"compliance":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"sync":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["not-applicable","no-integration","grc-synced","other-integration"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["not-applicable","no-integration","grc-synced","other-integration"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"source":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["self-inspection","GRC","other","IF","Codan","Paragon","Swiss Re","Chubb","Zürich","Tryg","Allianz","AIG","Marsh","Willis Towers Watson","Aon","Howden"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["self-inspection","GRC","other","IF","Codan","Paragon","Swiss Re","Chubb","Zürich","Tryg","Allianz","AIG","Marsh","Willis Towers Watson","Aon","Howden"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"claimsLine":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["liability","property"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["liability","property"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"damageType":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"category":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"responsible":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"tags":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"site":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"board":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"type":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["f","q","e","c","l","p"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["f","q","e","c","l","p"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"isSubtask":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"string"},"opr":{"type":"string","enum":["equal","contains","startswith","endswith","!equal","!contains","!startswith","!endswith"]},"value":{"type":"string"}},"required":["type","opr","value"],"additionalProperties":false}]},"dateOfLoss":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"worstCaseEstimate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"deductible":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"netPaid":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"grossPaid":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"grossOutstanding":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"netIncurred":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"externalId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"string"},"opr":{"type":"string","enum":["equal","contains","startswith","endswith","!equal","!contains","!startswith","!endswith"]},"value":{"type":"string"}},"required":["type","opr","value"],"additionalProperties":false}]},"costEstimate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{"type":["number","null"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"number"},"opr":{"type":"string","const":".."},"value":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"items":false,"minItems":2,"maxItems":2}},"required":["type","opr","value"],"additionalProperties":false}]}]},"dueDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"date":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"createdDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"verifiedAt":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"expiresAt":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"completedDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["status","statusGroup","compliance","level","name","source","claimsLine","damageType","dateOfLoss","worstCaseEstimate","deductible","netPaid","grossPaid","grossOutstanding","netIncurred","externalId","costEstimate","responsible","dueDate","tags","site","board","date","createdDate","verifiedAt","expiresAt","completedDate","leBefore","leAfter"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["status","statusGroup","compliance","level","name","source","claimsLine","damageType","dateOfLoss","worstCaseEstimate","deductible","netPaid","grossPaid","grossOutstanding","netIncurred","externalId","costEstimate","responsible","dueDate","tags","site","board","date","createdDate","verifiedAt","expiresAt","completedDate","leBefore","leAfter"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant"],"additionalProperties":{}},"boardSlug":{"type":"string"}},"required":["tenant","selectionContext","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/markUpdatesSeen":{"post":{"operationId":"markUpdatesSeen","description":"Mark all product updates (\"What's new\") as seen for the current user. Clears the unseen-updates badge; queryTenant's unseenUpdatesCount becomes 0 until the next update ships.","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false},"examples":{"basic":{"summary":"Mark product updates as seen","value":{"tenant":"acme-corp"}}}}}}}},"/api/rpc/createFileUpload":{"post":{"operationId":"createFileUpload","description":"Upload a local file to 21RISK from a client that can run shell commands, such as Claude Code. Pass the file name, its type and its exact size in bytes (`wc -c < <file>`). Save the returned `uploadScript` to a file and run `sh <script> <path-to-file>` before `expiresAt`. It sends the file in one request, or in parts when it is larger than `partSize`, so files up to 2 GB work. Then call confirmFileUpload with `fileId`: it checks the file and makes it available. Only a confirmed file id works where functions take one, for example `fileId` on createEngineeringReport. Prefer this over uploadAssetFromBase64, which carries the file inside the request and only suits small files.","tags":["public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"filename":{"type":"string","minLength":1,"maxLength":255,"description":"The file name, with its extension."},"contentType":{"type":"string","pattern":"^[\\w.+-]+\\/[\\w.+-]+$","description":"The file type, such as image/png or application/pdf."},"size":{"type":"integer","minimum":1,"maximum":2000000000,"description":"The exact size of the file in bytes. The upload must match it."},"scope":{"default":"tenant","description":"Whose the file is: the tenant's (the default), or `user` for your own profile picture. A user's file must be an image, belongs to no tenant and shows wherever you appear.","type":"string","enum":["tenant","user"]}},"required":["tenant","filename","contentType","size","scope"],"additionalProperties":false},"examples":{"report":{"summary":"Start uploading an engineering report PDF","value":{"tenant":"acme-corp","filename":"2026 GRC survey.pdf","contentType":"application/pdf","size":18420113}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string","description":"The file id. Confirm the upload with confirmFileUpload, then pass it to functions that take a file id."},"contentType":{"type":"string"},"size":{"type":"number"},"partSize":{"type":"number","description":"Files larger than this go up in parts of this size."},"partCount":{"type":"number","description":"How many parts the file goes up in; 1 for a single PUT."},"uploadScript":{"type":"string","description":"A shell script that uploads the file, in one request or in parts. Save it to a file and run `sh <script> <path-to-file>`; it needs only curl, dd and sed."},"uploadUrl":{"type":"string","description":"For clients without the script: PUT the whole file here when it fits in one part."},"partsUrl":{"type":"string","description":"For clients without the script: the base of the multipart requests for larger files (POST to start, PUT /<n>?upload=<uploadId> per part, POST /complete?upload=<uploadId> with the parts)."},"expiresAt":{"description":"Every request of the upload must be made before this time.","type":"string","format":"date-time"}},"required":["fileId","contentType","size","partSize","partCount","uploadScript","uploadUrl","partsUrl","expiresAt"]},"examples":{"success":{"summary":"A file that fits in one request","value":{"fileId":"814d6ca1-df22-4749-8258-bf22280ee3d7","contentType":"application/pdf","size":18420113,"partSize":52428800,"partCount":1,"uploadScript":"set -eu\nfile=\"$1\"\nsize=$(wc -c < \"$file\" | tr -d ' ')\n[ \"$size\" -eq 18420113 ] || { echo \"$file has $size bytes, but this upload is for 18420113\" >&2; exit 1; }\ncurl -sS --fail-with-body --retry 3 -T \"$file\" -H 'Content-Type: application/pdf' 'https://uploads.21risk.com/814d6ca1-df22-4749-8258-bf22280ee3d7?token=use%3Dupload~exp%3D1792080000~…~hmac%3D9f2c…'","uploadUrl":"https://uploads.21risk.com/814d6ca1-df22-4749-8258-bf22280ee3d7?token=use%3Dupload~exp%3D1792080000~…~hmac%3D9f2c…","partsUrl":"https://uploads.21risk.com/814d6ca1-df22-4749-8258-bf22280ee3d7/parts?token=use%3Dupload~exp%3D1792080000~…~hmac%3D9f2c…","expiresAt":"2026-10-15T18:00:00.000Z"}}}}}}}}},"/api/rpc/uploadAssetFromBase64":{"post":{"operationId":"uploadAssetFromBase64","description":"Upload base64-encoded file content into 21RISK file storage and return the internal asset link.","tags":["public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"base64":{"type":"string","minLength":1,"description":"Base64-encoded file content. The data URI prefix is optional and will be stripped if provided."},"fileName":{"type":"string","minLength":1,"description":"File name including extension, for example page-1.png or extracted.jpg."}},"required":["tenant","base64","fileName"],"additionalProperties":false},"examples":{"pngData":{"summary":"Upload a PNG from base64 content","value":{"tenant":"acme-corp","base64":"iVBORw0KGgoAAAANSUhEUgAAAAUA","fileName":"chart.png"}},"dataUri":{"summary":"Upload base64 content with a data URI prefix","value":{"tenant":"acme-corp","base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA","fileName":"screenshot.png"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Uploaded asset reference","value":{"downloadLink":"/asset/68354ac4b2a7744c89cbb2f1/","name":"chart.png","mimeType":"image/png","size":20480}}}}}}}}},"/api/rpc/uploadAssetFromUrl":{"post":{"operationId":"uploadAssetFromUrl","description":"Upload a file of up to 100 MB into 21RISK file storage from a publicly accessible URL and return the internal asset link. For a local file, use createFileUpload instead.","tags":["public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"url":{"type":"string","format":"uri","description":"Publicly accessible URL of the file to upload."},"fileName":{"type":"string","minLength":1,"description":"File name including extension, for example screenshot.png or report.pdf."}},"required":["tenant","url","fileName"],"additionalProperties":false},"examples":{"imageUrl":{"summary":"Upload an image from a public URL","value":{"tenant":"acme-corp","url":"https://example.com/images/floorplan.png","fileName":"floorplan.png"}},"pdfUrl":{"summary":"Upload a PDF from a public URL","value":{"tenant":"acme-corp","url":"https://example.com/reports/inspection-report.pdf","fileName":"inspection-report.pdf"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Uploaded asset reference","value":{"downloadLink":"/asset/68354ac4b2a7744c89cbb2f1/","name":"floorplan.png","mimeType":"image/png","size":182044}}}}}}}}},"/api/rpc/reorderTableViews":{"post":{"operationId":"reorderTableViews","description":"Set the current user table-view order","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"endpoint":{"type":"string","enum":["sites","siteChanges","items","reports","insuranceOverviewSites","insurancePolicies","compliance2BoardSites","compliance2Snapshots","findingsBoardSites","findingsReports","users"]},"boardSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},{"type":"null"}]},"tenant":{},"viewSlugs":{}},"required":["endpoint","boardSlug","tenant","viewSlugs"],"additionalProperties":{}},{"type":"object","properties":{"endpoint":{"type":"string","const":"insurance"},"endpointMode":{"type":"string","enum":["values","cope"]},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},"tenant":{},"viewSlugs":{}},"required":["endpoint","endpointMode","boardSlug","tenant","viewSlugs"],"additionalProperties":{}}]}}}}}},"/api/rpc/createReportExcelLink":{"post":{"operationId":"createReportExcelLink","description":"Generate a temporary Excel export link for reports","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":["string","null"]},"query":{"type":"string"},"model":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"version":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"site":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["draft","published"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["draft","published"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"auditor":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"createdBy":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"published":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"date":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"lastModified":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["model","version","site","status","auditor","createdBy","published","date","lastModified"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["model","version","site","status","auditor","createdBy","published","date","lastModified"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant","boardId"],"additionalProperties":{}}}}}}},"/api/rpc/createReportPdfLink":{"post":{"operationId":"createReportPdfLink","description":"Generate a temporary PDF download link for a report","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/deleteReport":{"post":{"operationId":"deleteReport","description":"Delete selected audit reports from a board","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":["string","null"]},"query":{"type":"string"},"model":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"version":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"site":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["draft","published"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["draft","published"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"auditor":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"createdBy":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"published":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"date":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"lastModified":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["model","version","site","status","auditor","createdBy","published","date","lastModified"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["model","version","site","status","auditor","createdBy","published","date","lastModified"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant","boardId"],"additionalProperties":{}}}}}}},"/api/rpc/updateReport":{"post":{"operationId":"updateReport","description":"Update an audit report","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reportId":{"type":"string"},"auditorId":{},"date":{},"participants":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_reports_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","reportId"],"additionalProperties":false}}}}}},"/api/rpc/createModelExcelLink":{"post":{"operationId":"createModelExcelLink","description":"Generate a temporary Excel export link for a risk model","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1},"_id":{"type":"string"}},"required":["tenant","boardSlug","_id"],"additionalProperties":false}}}}}},"/api/rpc/createModelPdfLink":{"post":{"operationId":"createModelPdfLink","description":"Generate a temporary PDF download link for a risk model","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1},"_id":{"type":"string"}},"required":["tenant","boardSlug","_id"],"additionalProperties":false}}}}}},"/api/rpc/createReports":{"post":{"operationId":"createReports","description":"Create audit reports for selected sites using a risk model. Selected sites outside the calling user's site access are skipped; the response reports how many reports were created and how many sites were skipped.","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"model":{"type":"string","description":"The risk model to use"},"strategy":{"default":"startAllNonCompliant","description":"The strategy to use when creating the report","type":"string","enum":["startAllCompliant","startAllNonCompliant","startAuditBasedOnCurrentIfNoneThenCompliant"]},"auditor":{"type":["string","null"]},"date":{"anyOf":[{},{"type":"null"}]},"selectionContext":{"type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"country":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"city":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"region":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"district":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"postcode":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"locality":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"neighborhood":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"tags":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"insurance":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"groups":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"parent":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"hasAccess":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"createdDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant"],"additionalProperties":{}}},"required":["tenant","model","strategy","selectionContext"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Two reports created, one selected site skipped","value":{"status":"Created #2 reports","created":2,"skipped":1}}}}}}}}},"/api/rpc/permanentlyDeleteInactiveSites":{"post":{"operationId":"permanentlyDeleteInactiveSites","description":"Permanently delete multiple inactive sites using a selection context","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"country":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"city":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"region":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"district":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"postcode":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"locality":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"neighborhood":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"tags":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"insurance":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"groups":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"parent":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"hasAccess":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"createdDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant"],"additionalProperties":{}}}}}}},"/api/rpc/updateSitesAsInactive":{"post":{"operationId":"updateSitesAsInactive","description":"Bulk update sites to inactive status using a selection context","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"country":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"city":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"region":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"district":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"postcode":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"locality":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"neighborhood":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"tags":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"insurance":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"groups":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"parent":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"hasAccess":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"createdDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"q":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}]}},"required":["tenant"],"additionalProperties":{}}}}}}},"/api/rpc/updateReportItems":{"post":{"operationId":"updateReportItems","description":"Update items within an audit report","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"},"updates":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"childId":{"type":["string","null"]},"updates":{"type":"object","properties":{"dueDate":{"anyOf":[{},{"type":"null"}]},"costEstimate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"responsible":{"type":["string","null"]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateReportItems__schema0"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateReportItems__schema0"}},{"type":"null"}]},"notApplicable":{"type":["boolean","null"]},"files":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"mimeType":{"type":"string"}},"required":["_id","name","size","mimeType"],"additionalProperties":false}},{"type":"null"}]},"addSubTask":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"itemId":{"type":["string","null"]},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false}},{"type":"null"}]},"deleteSubTask":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"completed":{"type":["boolean","null"]},"answered":{"type":["boolean","null"]},"name":{"type":["string","null"]},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"comment":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateReportItems__schema0"}},{"type":"null"}]},"customColumns":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"anyOf":[{"anyOf":[{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},{"type":"number"}]},{}]},{"type":"null"}]}},"visible":{"type":"boolean"},"children":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"completed":{"type":"boolean"},"name":{"type":"string"}},"required":["itemId","completed"],"additionalProperties":false}}},"additionalProperties":false}},"required":["itemId","childId","updates"],"additionalProperties":false}}},"required":["tenant","_id","updates"],"additionalProperties":false}}}}}},"/api/rpc/updateRiskModel":{"post":{"operationId":"updateRiskModel","description":"Update the questions of a Compliance 1.0 risk model version. Compliance 1.0 is read-only, so this is always refused.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"modelId":{"type":"string"},"model":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"checkboxes"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"comment"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"currency"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"number"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"scientific"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"section"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"select"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"signature"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"slider"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false},{"type":"object","properties":{"scorable":{"type":"boolean"},"requireAnswer":{"type":"boolean"},"requireAction":{"type":"boolean"},"requireComment":{"type":"boolean"},"requireFiles":{"type":"boolean"},"canHaveAction":{"type":"boolean"},"canHaveComment":{"type":"boolean"},"canHaveFiles":{"type":"boolean"},"canBeNotApplicable":{"type":"boolean"},"requireFileOnNotApplicable":{"type":"boolean"},"requireCommentOnNotApplicable":{"type":"boolean"},"versionId":{"type":"string"},"level":{"type":"string"},"name":{"type":"string"},"labels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"state":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"displayState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},"condition":{"anyOf":[{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"compliance"},"level":{"type":"string"},"target":{"type":"array","items":{"type":"string","enum":["awaitingReview","closed","compliant","excellent","missing","nonCompliant","nonCompliantWithPlan","notAnswered","notApplicable","notScorable"]}},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","target","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasComment"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"hasFiles"},"level":{"type":"string"},"target":{"type":"boolean"}},"required":["type","level","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"checkedIndexes":{"type":"array","items":{"type":"number"}}},"required":["checkedIndexes"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"state"},"level":{"type":"string"},"stateCondition":{"type":"object","properties":{"selectedIndex":{"type":"array","items":{"type":"number"}}},"required":["selectedIndex"],"additionalProperties":false},"compare":{"type":"string","enum":["oneOf","allOf"]}},"required":["type","level","stateCondition","compare"],"additionalProperties":false}]}},{"type":"null"}]},"startingPoint":{"type":"object","properties":{"moveComment":{"type":"boolean"},"moveAction":{"type":"boolean"},"moveFiles":{"type":"boolean"},"moveAnswer":{"type":"boolean"},"moveAnswerFallback":{"type":"string","enum":["optimistic","pessimistic","none"]},"moveAnswerDifferentVersion":{"anyOf":[{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"level":{"type":"string"},"migration":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"null"}]},"_id":{"type":"string"}},"required":["level","migration","_id"],"additionalProperties":false}},"defaultState":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}},"required":["versions","defaultState"],"additionalProperties":false},{"type":"null"}]}},"required":["moveComment","moveAction","moveFiles","moveAnswer","moveAnswerFallback","moveAnswerDifferentVersion"],"additionalProperties":false},"categoryId":{"type":"string","const":"users"}},"required":["scorable","requireAnswer","requireAction","requireComment","requireFiles","canHaveAction","canHaveComment","canHaveFiles","canBeNotApplicable","requireFileOnNotApplicable","requireCommentOnNotApplicable","versionId","level","name","labels","description","state","displayState","condition","startingPoint","categoryId"],"additionalProperties":false}]}}},"required":["tenant","boardSlug","modelId","model"],"additionalProperties":false}}}}}},"/api/rpc/updateActivitySubscription":{"post":{"operationId":"updateActivitySubscription","description":"Subscribe or unsubscribe from an activity type","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"type":{},"subscribed":{"default":false,"type":"boolean"}},"required":["tenant","type","subscribed"],"additionalProperties":false}}}}}},"/api/rpc/createAutomation":{"post":{"operationId":"createAutomation","description":"Create a new automation","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":250},"filterGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"filters":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["name"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["costEstimate"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["dueDate","createdDate"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["responsible","status","compliance","isSubtask"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false}]}}},"required":["filters"],"additionalProperties":false}},"enabled":{"default":false,"type":"boolean"},"actions":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string","const":"set status"},"value":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string","const":"notification"},"content":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"recipients":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["type","content","subject","recipients"],"additionalProperties":false}]}},"trigger":{},"schedule":{"type":"object","properties":{"type":{},"intervalSeconds":{"type":"number","minimum":1},"hour":{"type":"string"},"minute":{"type":"string"},"daysOfWeek":{},"dayOfMonth":{"type":"integer","minimum":0,"maximum":31}},"required":["type"],"additionalProperties":false},"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","boardId","name","enabled","actions","trigger","id"],"additionalProperties":false}}}}}},"/api/rpc/createSuggestedAutomation":{"post":{"operationId":"createSuggestedAutomation","description":"Create a suggested automation on a board","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"},"suggested":{}},"required":["tenant","boardId","suggested"],"additionalProperties":false}}}}}},"/api/rpc/deleteAutomation":{"post":{"operationId":"deleteAutomation","description":"Delete an automation","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"},"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","boardId","id"],"additionalProperties":false}}}}}},"/api/rpc/runAutomationSchedule":{"post":{"operationId":"runAutomationSchedule","description":"Manually run an automation schedule","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"id":{"type":"string"}},"required":["tenant","id"],"additionalProperties":false}}}}}},"/api/rpc/updateAutomation":{"post":{"operationId":"updateAutomation","description":"Update an existing automation","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":250},"filterGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"filters":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["name"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["costEstimate"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["dueDate","createdDate"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["responsible","status","compliance","isSubtask"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false}]}}},"required":["filters"],"additionalProperties":false}},"enabled":{"default":false,"type":"boolean"},"actions":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string","const":"set status"},"value":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string","const":"notification"},"content":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"recipients":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["type","content","subject","recipients"],"additionalProperties":false}]}},"trigger":{},"schedule":{"type":"object","properties":{"type":{},"intervalSeconds":{"type":"number","minimum":1},"hour":{"type":"string"},"minute":{"type":"string"},"daysOfWeek":{},"dayOfMonth":{"type":"integer","minimum":0,"maximum":31}},"required":["type"],"additionalProperties":false},"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","boardId","name","enabled","actions","trigger","id"],"additionalProperties":false}}}}}},"/api/rpc/addBillingReference":{"post":{"operationId":"addBillingReference","description":"Add a billing reference","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reference":{},"effectiveDate":{}},"required":["tenant","reference","effectiveDate"],"additionalProperties":false}}}}}},"/api/rpc/deleteBillingReference":{"post":{"operationId":"deleteBillingReference","description":"Delete a billing reference","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"billingReferenceId":{}},"required":["tenant","billingReferenceId"],"additionalProperties":false}}}}}},"/api/rpc/addBoardOwner":{"post":{"operationId":"addBoardOwner","description":"Add an owner to a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"owners":{}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/createBoardAccess":{"post":{"operationId":"createBoardAccess","description":"Grant board access to a user or group","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"user_id":{},"userGroupId":{},"name":{"type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoardAccess":{"post":{"operationId":"deleteBoardAccess","description":"Revoke board access from a user or group","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","boardSlug","_id"],"additionalProperties":false}}}}}},"/api/rpc/removeBoardOwner":{"post":{"operationId":"removeBoardOwner","description":"Remove an owner from a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"owners":{}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardAccess":{"post":{"operationId":"updateBoardAccess","description":"Update access settings for a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{},"permissions":{"default":[],"type":"array","items":{"type":"string","enum":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:approve:risk-improvements","insurance:read:natcat","manage:settings","transfer:responsibilities","view:items","view:items:authored","update:items:authored","delete:items:authored","view:items:responsible","update:items:responsible","delete:items:responsible"]}}},"required":["tenant","boardSlug","_id","name","permissions"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardOwners":{"post":{"operationId":"updateBoardOwners","description":"Update the owners of a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"owners":{}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/createBoardCategory":{"post":{"operationId":"createBoardCategory","description":"Create a category","tags":["insurance","findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"name":{},"parent":{}},"required":["tenant","boardSlug","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoardCategory":{"post":{"operationId":"deleteBoardCategory","description":"Delete a category","tags":["insurance","findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardCategory":{"post":{"operationId":"updateBoardCategory","description":"Update a category","tags":["insurance","findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{},"name":{},"parent":{}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/assignResponsibility":{"post":{"operationId":"assignResponsibility","description":"Assign a user to a board responsibility role at a site","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"responsibilityId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"userId":{"type":"string","minLength":1},"siteId":{"type":"string","minLength":1}},"required":["tenant","responsibilityId","userId","siteId"],"additionalProperties":false}}}}}},"/api/rpc/createBoardResponsibility":{"post":{"operationId":"createBoardResponsibility","description":"Create a new board responsibility","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}},"required":["tenant","boardSlug","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoardResponsibility":{"post":{"operationId":"deleteBoardResponsibility","description":"Delete a board responsibility","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/unassignResponsibility":{"post":{"operationId":"unassignResponsibility","description":"Unassign a user from a board responsibility role","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardResponsibility":{"post":{"operationId":"updateBoardResponsibility","description":"Update a board responsibility","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"description":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/createBoardSite":{"post":{"operationId":"createBoardSite","description":"Associate a site with a board","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"siteId":{},"siteGroupId":{}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoardSite":{"post":{"operationId":"deleteBoardSite","description":"Remove a site from a board","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"_id":{}},"required":["tenant","boardSlug","_id"],"additionalProperties":false}}}}}},"/api/rpc/createBoardStatusPermission":{"post":{"operationId":"createBoardStatusPermission","description":"Create a board status permission rule","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardStatusPermissionId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string"},"boardStatusId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"boardSlug":{"type":"string","minLength":1},"enabled":{"default":false,"type":"boolean"},"filterGroups":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"filters":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["externalId","name"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["user-group"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["group-owner","isSubtask"]},"value":{"type":"string","enum":["true","false"]}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["attachedFiles"],"description":"attachedFiles: how many files are attached to the item. For items with fixed periods (a Compliance 2.0 answer whose question uses them, or a finding with its own), only files first attached in the current period count; files added in the same update count too."},"value":{"type":"string","description":"A number filter, for example \">0\" for at least one file, \"=0\" for none, or \">=3\" for at least three. It must compare against a number: \"*\", \"!*\" and \"*..*\" are rejected, since a count always has a value."}},"required":["field","value"],"additionalProperties":false}]}}},"required":["filters"],"additionalProperties":false}}},"required":["tenant","name","boardStatusId","boardSlug","enabled","filterGroups"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoardStatusPermission":{"post":{"operationId":"deleteBoardStatusPermission","description":"Delete a board status permission rule","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardStatusPermissionId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["tenant","boardStatusPermissionId"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardStatusPermission":{"post":{"operationId":"updateBoardStatusPermission","description":"Update a board status permission rule","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardStatusPermissionId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string"},"boardStatusId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"boardSlug":{"type":"string","minLength":1},"enabled":{"default":false,"type":"boolean"},"filterGroups":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"filters":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["externalId","name"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["user-group"]},"value":{"type":"string"}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["group-owner","isSubtask"]},"value":{"type":"string","enum":["true","false"]}},"required":["field","value"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"field":{"type":"string","enum":["attachedFiles"],"description":"attachedFiles: how many files are attached to the item. For items with fixed periods (a Compliance 2.0 answer whose question uses them, or a finding with its own), only files first attached in the current period count; files added in the same update count too."},"value":{"type":"string","description":"A number filter, for example \">0\" for at least one file, \"=0\" for none, or \">=3\" for at least three. It must compare against a number: \"*\", \"!*\" and \"*..*\" are rejected, since a count always has a value."}},"required":["field","value"],"additionalProperties":false}]}}},"required":["filters"],"additionalProperties":false}}},"required":["tenant","name","boardStatusId","boardSlug","enabled","filterGroups"],"additionalProperties":false}}}}}},"/api/rpc/addBoardStatusToBoard":{"post":{"operationId":"addBoardStatusToBoard","description":"Add a status to a compliance board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardStatusId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","boardStatusId","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/createBoardStatus":{"post":{"operationId":"createBoardStatus","description":"Create a new board status","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1},"internalStatus":{},"openOrClosed":{},"color":{"type":"string"}},"required":["tenant","name","internalStatus","openOrClosed","color"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoardStatus":{"post":{"operationId":"deleteBoardStatus","description":"Delete a board status","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/removeBoardStatusFromBoard":{"post":{"operationId":"removeBoardStatusFromBoard","description":"Remove a status option from a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardStatusId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","boardStatusId","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/reorderBoardStatuses":{"post":{"operationId":"reorderBoardStatuses","description":"Set the display order of the statuses on a board. Pass every status id on the board, in the wanted order; a list that leaves out a status or includes one not on the board is rejected.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"boardStatusIds":{}},"required":["tenant","boardSlug","boardStatusIds"],"additionalProperties":false}}}}}},"/api/rpc/replaceBoardStatusOnBoard":{"post":{"operationId":"replaceBoardStatusOnBoard","description":"Replace a status on a board in place: every item revision, automation, filter and status rule on the board that refers to the status refers to the replacement instead, then the status is removed from the board. Other boards are not affected and the status itself is kept.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardStatusId":{},"replacementBoardStatusId":{},"boardSlug":{}},"required":["tenant","boardStatusId","replacementBoardStatusId","boardSlug"],"additionalProperties":false},"examples":{"replaceOnInsuranceBoard":{"summary":"Move all \"Rejected\" risk improvements to \"To do\" and remove \"Rejected\" from the board","value":{"tenant":"my-org","boardSlug":"insurance","boardStatusId":208,"replacementBoardStatusId":110}}}}}}}},"/api/rpc/updateBoardStatus":{"post":{"operationId":"updateBoardStatus","description":"Update a board status configuration","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string","minLength":1},"internalStatus":{},"openOrClosed":{},"grcStatus":{"type":"string"},"restrictedMessage":{"type":"string","maxLength":255},"isDefault":{"default":false,"type":"boolean"},"includeInDefaultView":{"default":false,"type":"boolean"},"boardSlug":{"type":"string"},"color":{"type":"string"}},"required":["tenant","_id","name","internalStatus","openOrClosed","isDefault","includeInDefaultView","color"],"additionalProperties":false}}}}}},"/api/rpc/upsertGrcStatus":{"post":{"operationId":"upsertGrcStatus","description":"Upsert a GRC status mapping for a board status","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/createBoardTemplate":{"post":{"operationId":"createBoardTemplate","description":"Create a template that new items on a board can start from","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemName":{},"status":{},"boardCategory":{},"costEstimate":{},"notes":{},"labels":{},"controlIds":{},"files":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{},"fields":{"description":"Custom field values keyed by c_items_<field slug>. A given field replaces its value and null clears it; fields not given keep theirs. ID fields cannot be set.","type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}},"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"},"name":{},"description":{}},"required":["tenant","boardSlug","name"],"additionalProperties":false},"examples":{"withControls":{"summary":"A template whose findings start linked to a control the board offers through its frameworks","value":{"tenant":"acme-corp","boardSlug":"audit-findings","name":"Hazardous waste with general waste","description":"Use for waste segregation findings during site inspections","itemName":"Hazardous waste stored with general waste","controlIds":["01920000-0000-7000-8000-000000000000"]}}}}}}}},"/api/rpc/deleteBoardTemplate":{"post":{"operationId":"deleteBoardTemplate","description":"Delete a board template","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","templateId"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardTemplate":{"post":{"operationId":"updateBoardTemplate","description":"Update a board template","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemName":{},"status":{},"boardCategory":{},"costEstimate":{},"notes":{},"labels":{},"controlIds":{},"files":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{},"fields":{"description":"Custom field values keyed by c_items_<field slug>. A given field replaces its value and null clears it; fields not given keep theirs. ID fields cannot be set.","type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}},"tenant":{},"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{},"description":{}},"required":["tenant","templateId"],"additionalProperties":false}}}}}},"/api/rpc/createBoard":{"post":{"operationId":"createBoard","description":"Create a Compliance 1.0 board. Compliance 1.0 is read-only, so this is always refused; use createCompliance2Board instead.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":50},"categoryId":{"default":"construction","type":"string"},"description":{"type":"string"}},"required":["tenant","name","categoryId"],"additionalProperties":false}}}}}},"/api/rpc/createCompliance2Board":{"post":{"operationId":"createCompliance2Board","description":"Create a new compliance-2 board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":50},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9-]+$"}},"required":["tenant","name","slug"],"additionalProperties":false}}}}}},"/api/rpc/createDocumentBoard":{"post":{"operationId":"createDocumentBoard","description":"Create a Document board: one rich-text page, such as how a process works or what the boards in a folder are for. It starts empty; write it with saveBoardDocument (baseRevision null). The creator becomes its owner. Requires the createBoards permission.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"}},"required":["tenant","name","slug"],"additionalProperties":false},"examples":{"create":{"summary":"Create a document","value":{"tenant":"acme-corp","name":"Incident response","slug":"incident-response"}}}}}}}},"/api/rpc/createFindingsBoard":{"post":{"operationId":"createFindingsBoard","description":"Create a new findings board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"},"itemSingularLabel":{},"itemPluralLabel":{}},"required":["tenant","name","slug","itemSingularLabel","itemPluralLabel"],"additionalProperties":false}}}}}},"/api/rpc/createSafetyWalksBoard":{"post":{"operationId":"createSafetyWalksBoard","description":"Create a new safety-walks board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"}},"required":["tenant","name","slug"],"additionalProperties":false}}}}}},"/api/rpc/deleteBoard":{"post":{"operationId":"deleteBoard","description":"Delete a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/duplicateBoard":{"post":{"operationId":"duplicateBoard","description":"Duplicate a Compliance 1.0 board. Compliance 1.0 is read-only, so this is always refused.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/moveBoard":{"post":{"operationId":"moveBoard","description":"Move a board or folder in the sidebar: into a folder, out to the top level, or next to another board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"folderSlug":{},"before":{},"after":{}},"required":["tenant","boardSlug","folderSlug"],"additionalProperties":false}}}}}},"/api/rpc/saveBoardDocument":{"post":{"operationId":"saveBoardDocument","description":"Replace the text of a Document board (a board of type \"document\"), saving it as a new revision. Read the document with queryBoardDocument first and send its revision as baseRevision (null when it has never been saved); if someone saved after that, the save is rejected with 409 and nothing changes, so read it again and redo the change on the newer text. Accepts markdown, plain text or a TipTap document; send null to empty the document. Saving text equal to the current text writes nothing. To restore an earlier version, send its content from queryBoardDocumentHistory. Requires edit access to the board.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"content":{},"baseRevision":{}},"required":["tenant","boardSlug","content","baseRevision"],"additionalProperties":false},"examples":{"markdown":{"summary":"Save text written as markdown","value":{"tenant":"acme-corp","boardSlug":"how-we-handle-incidents","content":"## First hour\n\n1. Make the area safe.\n2. Call the site manager.","baseRevision":3}},"firstSave":{"summary":"Write a document nobody has saved yet","value":{"tenant":"acme-corp","boardSlug":"how-we-handle-incidents","content":"This folder holds the boards for our incident process.","baseRevision":null}}}}}}}},"/api/rpc/updateBoardAgentInstructions":{"post":{"operationId":"updateBoardAgentInstructions","description":"Replace a board's agent instructions — the free-form guidance AI agents read before working on the board (see queryBoardAgentContext). Accepts markdown, plain text or a TipTap document limited to paragraphs, headings, bold, italic, inline code, code blocks, lists and links (tables, images and other nodes are rejected); send null to clear. Requires manage:settings on the board.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"agentInstructions":{}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"markdown":{"summary":"Set instructions from markdown","value":{"tenant":"acme-corp","boardSlug":"fire-safety","agentInstructions":"## How to work on this board\n\n- Always cite the question number.\n- Never close an item without a photo."}},"clear":{"summary":"Clear the instructions","value":{"tenant":"acme-corp","boardSlug":"fire-safety","agentInstructions":null}}}}}}}},"/api/rpc/updateBoardArchived":{"post":{"operationId":"updateBoardArchived","description":"Archive or un-archive a board. An archived board is excluded from analytics: the next items_per_day load skips it and removes its existing rows. The board, its reports and its items are untouched.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1},"archived":{}},"required":["tenant","boardSlug","archived"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardExpiredStatus":{"post":{"operationId":"updateBoardExpiredStatus","description":"Set the status that Compliance 2.0 answers or findings move to when their verification expires","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"expiredStatusId":{}},"required":["tenant","boardSlug","expiredStatusId"],"additionalProperties":false},"examples":{"setExpiredStatus":{"summary":"Move expired items to a dedicated status","description":"Use an open status that is used on the board, for example \"Verification due\". Pass null to move expired items to the board default status instead.","value":{"tenant":"acme-corp","boardSlug":"first-aid","expiredStatusId":42}}}}}}}},"/api/rpc/updateBoardFrameworks":{"post":{"operationId":"updateBoardFrameworks","description":"Choose the frameworks a findings board offers when linking findings to controls. Removing a framework leaves the findings of the board only the controls its remaining frameworks offer: every other linked control is unlinked, and each finding keeps the old links in its history. Requires manage:settings on the board and view access to the Frameworks and Controls board.","tags":["boards","findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"},"frameworkIds":{}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"set":{"summary":"Offer SOC 2 on a findings board","value":{"tenant":"acme-corp","boardSlug":"audit-findings","frameworkIds":["01999f6e-5a3b-7c1d-9e2f-3a4b5c6d7e8f"]}}}}}}}},"/api/rpc/updateBoardIntroduction":{"post":{"operationId":"updateBoardIntroduction","description":"Update a board's introduction text","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"introduction":{}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardItemLabels":{"post":{"operationId":"updateBoardItemLabels","description":"Update the item labels of a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"},"itemSingularLabel":{},"itemPluralLabel":{}},"required":["tenant","boardSlug","itemSingularLabel","itemPluralLabel"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardLandingPage":{"post":{"operationId":"updateBoardLandingPage","description":"Change how a board's landing page looks — the page outside the app where members file items without opening the board. Only the claims board has one (/<tenant>/claims/create). Set the title, the introduction above the form, the confirmation message shown after a report, the accent colour (#rrggbb) of the header and the form's border, a moving background (mesh, aurora, contour, godray or truchet, drawn in the accent colour), and — on the Enterprise plan — whether to hide “Powered by 21RISK”. The texts accept markdown, plain text or a TipTap document with paragraphs, bold, italic, lists and links. Omit a field to keep it; send null to show the default again. Requires manage:settings on the board.","tags":["boards","claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"title":{},"introduction":{},"confirmation":{},"accentColor":{},"background":{},"hidePoweredBy":{}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"customize":{"summary":"Set a title, introduction and colour","value":{"tenant":"acme-corp","boardSlug":"claims","title":"Report damage or a loss","introduction":"Report every loss **within 24 hours**, however small. Questions? Write to risk@acme.com.","accentColor":"#0f766e","background":"aurora"}},"reset":{"summary":"Show the default title again","value":{"tenant":"acme-corp","boardSlug":"claims","title":null}}}}}}}},"/api/rpc/updateBoardName":{"post":{"operationId":"updateBoardName","description":"Update the name of a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["tenant","boardSlug","name"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardSlug":{"post":{"operationId":"updateBoardSlug","description":"Update the slug of a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"}},"required":["tenant","boardSlug","slug"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardStartingLevel":{"post":{"operationId":"updateBoardStartingLevel","description":"Update a board's compliance starting level","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"startingLevel":{}},"required":["tenant","boardSlug","startingLevel"],"additionalProperties":false}}}}}},"/api/rpc/createClaimDamageType":{"post":{"operationId":"createClaimDamageType","description":"Add a damage type to a claims line","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"claimsLine":{},"name":{}},"required":["tenant","claimsLine","name"],"additionalProperties":false}}}}}},"/api/rpc/createClaimPayment":{"post":{"operationId":"createClaimPayment","description":"Record a payment received from the insurer on a claim","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"},"paymentDate":{},"amount":{},"payer":{},"note":{}},"required":["tenant","itemId","paymentDate","amount"],"additionalProperties":false}}}}}},"/api/rpc/createClaimRootCause":{"post":{"operationId":"createClaimRootCause","description":"Add a root cause to a claims line: a category, or a sub-category under an existing category","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"claimsLine":{},"name":{},"parentId":{}},"required":["tenant","claimsLine","name"],"additionalProperties":false}}}}}},"/api/rpc/createClaim":{"post":{"operationId":"createClaim","description":"Create a claim on the claims board","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"site":{"type":"string","pattern":"^[a-f\\d]{24}$"},"claimsLine":{},"damageType":{},"dateOfLoss":{},"worstCaseEstimate":{},"deductible":{},"rootCauseStatus":{},"rootCause":{},"rootCauseDescription":{},"status":{},"notes":{},"responsible":{},"labels":{},"files":{},"fields":{"description":"Custom field values keyed by c_items_<field slug>.","type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","name","site","claimsLine","damageType","dateOfLoss"],"additionalProperties":false}}}}}},"/api/rpc/deleteClaimDamageType":{"post":{"operationId":"deleteClaimDamageType","description":"Remove a damage type from a claims line","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"damageTypeId":{}},"required":["tenant","damageTypeId"],"additionalProperties":false}}}}}},"/api/rpc/deleteClaimPayment":{"post":{"operationId":"deleteClaimPayment","description":"Delete a recorded insurer payment from a claim","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"paymentId":{}},"required":["tenant","paymentId"],"additionalProperties":false}}}}}},"/api/rpc/deleteClaimRootCause":{"post":{"operationId":"deleteClaimRootCause","description":"Remove a root cause from a claims line. Removing a category also removes its sub-categories. Claims filed under a removed root cause are set to unknown (not known yet) without a root cause; each claim's history keeps the old one.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"rootCauseId":{}},"required":["tenant","rootCauseId"],"additionalProperties":false}}}}}},"/api/rpc/deleteClaim":{"post":{"operationId":"deleteClaim","description":"Delete a claim. It leaves the claims list and its page, and its history, payments included, is kept.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/updateClaim":{"post":{"operationId":"updateClaim","description":"Update a claim","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"},"name":{},"status":{},"responsible":{},"labels":{},"notes":{},"comment":{},"addFiles":{},"removeFiles":{},"renameFiles":{},"claimsLine":{},"damageType":{},"dateOfLoss":{},"worstCaseEstimate":{},"deductible":{},"rootCauseStatus":{},"rootCause":{},"rootCauseDescription":{},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","itemId"],"additionalProperties":false},"examples":{"updateCustomColumns":{"summary":"Update custom fields on a claim","description":"Custom fields are passed under `fields`, keyed by their `c_items_*` slug. MultiSelect fields use arrays; an empty array or null clears a value, while omission preserves it. Number fields accept numbers or numeric strings; scalar fields can be cleared with an empty string or null. Call `queryFields` with the items table context and claims board slug first to discover the configured fields and allowed values.","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","fields":{"c_items_priority":"High","c_items_regions":["Europe","Americas"],"c_items_evidence_score":42}}}}}}}}},"/api/rpc/updateComment":{"post":{"operationId":"updateComment","description":"Edit an item comment authored by the current user","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"commentId":{},"text":{}},"required":["tenant","commentId","text"],"additionalProperties":false}}}}}},"/api/rpc/updateComplianceQuestionItem":{"post":{"operationId":"updateComplianceQuestionItem","description":"Update a compliance question item answer for a site","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{},"name":{},"status":{},"dueDate":{},"verify":{},"costEstimate":{},"responsible":{},"labels":{},"notes":{},"comment":{},"addFiles":{},"removeFiles":{},"renameFiles":{},"addSubTask":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255}},"required":["name"],"additionalProperties":false}},"deleteSubTask":{"type":"array","items":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"subTasks":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["itemId"],"additionalProperties":false}},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","itemId"],"additionalProperties":false},"examples":{"updateCustomColumns":{"summary":"Update custom fields on a compliance question item","description":"Custom fields are passed under `fields`, keyed by their `c_items_*` slug. MultiSelect fields use arrays; an empty array or null clears a value, while omission preserves it. Number fields accept numbers or numeric strings; scalar fields can be cleared with an empty string or null. Call `queryFields` with the items table context and board slug first to discover the configured fields and allowed values.","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","fields":{"c_items_priority":"High","c_items_regions":["Europe","Americas"],"c_items_evidence_score":42}}},"verifyAnswer":{"summary":"Confirm that an answer is still valid","description":"For questions with rolling expiry, `verify: true` records that the answer was verified today and restarts its expiry. The answer must be in a closed status after the update. Questions with fixed periods reject it: their answers are verified by moving them to a closed status.","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","verify":true}}}}}}}},"/api/rpc/createComplianceQuestion":{"post":{"operationId":"createComplianceQuestion","description":"Create a new compliance question on a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"name":{},"type":{},"description":{},"tags":{},"setAllItemsToStatus":{},"insertStrategy":{},"targetQuestionId":{},"applicabilityConditions":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{}},"required":["tenant","boardSlug","name","type"],"additionalProperties":false}}}}}},"/api/rpc/deleteComplianceQuestion":{"post":{"operationId":"deleteComplianceQuestion","description":"Delete a compliance question from a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"questionId":{}},"required":["tenant","questionId"],"additionalProperties":false}}}}}},"/api/rpc/updateComplianceQuestion":{"post":{"operationId":"updateComplianceQuestion","description":"Update a compliance question","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"questionId":{},"changeType":{},"name":{},"description":{},"tags":{},"changeNote":{},"setAllItemsToStatus":{},"insertStrategy":{},"targetQuestionId":{},"applicabilityConditions":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{}},"required":["tenant","questionId","changeType"],"additionalProperties":false}}}}}},"/api/rpc/createComplianceSnapshot":{"post":{"operationId":"createComplianceSnapshot","description":"Create a compliance snapshot for a site on a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"siteId":{},"name":{},"snapshot":{},"description":{},"participants":{}},"required":["tenant","boardSlug","siteId","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteComplianceSnapshot":{"post":{"operationId":"deleteComplianceSnapshot","description":"Delete a compliance snapshot","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"snapshotId":{},"boardSlug":{},"siteId":{}},"required":["tenant","snapshotId","boardSlug","siteId"],"additionalProperties":false}}}}}},"/api/rpc/updateComplianceSnapshot":{"post":{"operationId":"updateComplianceSnapshot","description":"Update a compliance snapshot","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"snapshotId":{},"name":{},"description":{},"participants":{}},"required":["tenant","snapshotId"],"additionalProperties":false}}}}}},"/api/rpc/createControl":{"post":{"operationId":"createControl","description":"Create a control — the organization’s own statement of what it does to meet framework requirements — optionally mapped to requirements across frameworks. Needs create access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"code":{},"name":{},"description":{},"ownerUserId":{},"requirementIds":{}},"required":["tenant","name"],"additionalProperties":false},"examples":{"mapped":{"summary":"A control covering one SOC 2 criterion","value":{"tenant":"acme-corp","code":"ACC-01","name":"Role-based access on production resources","requirementIds":["01920000-0000-7000-8000-000000000000"]}}}}}}}},"/api/rpc/deleteControl":{"post":{"operationId":"deleteControl","description":"Delete a control and unmap it from every requirement. Every finding and policy linked to it is unlinked; each keeps the old link in its history. Needs delete access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"controlId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","controlId"],"additionalProperties":false}}}}}},"/api/rpc/updateControl":{"post":{"operationId":"updateControl","description":"Update a control: code, name, description, owner and the requirements it covers (requirementIds replaces the full set). Omitted fields keep their value; null clears. Needs update access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"controlId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{},"name":{},"description":{},"ownerUserId":{},"requirementIds":{}},"required":["tenant","controlId"],"additionalProperties":false}}}}}},"/api/rpc/createCopeBulkImportJob":{"post":{"operationId":"createCopeBulkImportJob","description":"Create a COPE bulk import job from an uploaded spreadsheet","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileId":{"maxItems":1,"type":"array","items":{"type":"string","minLength":1}},"periodSlug":{"type":"string","minLength":1},"skipSecondRow":{"default":false,"type":"boolean"}},"required":["tenant","fileId","periodSlug","skipSecondRow"],"additionalProperties":false}}}}}},"/api/rpc/importCopeBulkImportJob":{"post":{"operationId":"importCopeBulkImportJob","description":"Import a COPE bulk import job","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId"],"additionalProperties":false}}}}}},"/api/rpc/createTableView":{"post":{"operationId":"createTableView","description":"Save a new private table view with a custom name, URL, columns, sorting, and filters","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"endpoint":{},"endpointMode":{},"boardSlug":{},"name":{},"slug":{},"columns":{},"sorting":{},"filters":{}},"required":["tenant","endpoint","boardSlug","name","slug","columns","sorting","filters"],"additionalProperties":false}}}}}},"/api/rpc/deleteTableView":{"post":{"operationId":"deleteTableView","description":"Delete a private or shared table view; built-in views cannot be deleted","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"id":{}},"required":["tenant","id"],"additionalProperties":false}}}}}},"/api/rpc/createEngineeringReport":{"post":{"operationId":"createEngineeringReport","description":"Create an engineering report on the insurance board, with its new and updated risk improvements. Requires `fileId`: the UUID of the report PDF, uploaded to this tenant. When you have the PDF as a local file, upload it first with createFileUpload and confirmFileUpload, and use its fileId; do not skip creating the report because the PDF is not uploaded yet.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"date":{},"siteId":{"type":"string","minLength":24},"source":{"type":"string","enum":["self-inspection","GRC","other","IF","Codan","Paragon","Swiss Re","Chubb","Zürich","Tryg","Allianz","AIG","Marsh","Willis Towers Watson","Aon","Howden"]},"externalId":{},"executiveSummary":{},"fileId":{},"riskImprovements":{"default":[],"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"description":{"type":"string"},"lossEstimateBefore":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lossEstimateAfter":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"costEstimate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"externalId":{"type":"string"},"boardCategory":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["name","status"],"additionalProperties":false}},"updatedRiskImprovements":{"default":[],"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string"},"lossEstimateBefore":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lossEstimateAfter":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"costEstimate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"boardCategory":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["itemId","name"],"additionalProperties":false}}},"required":["tenant","name","date","siteId","source","executiveSummary","fileId","riskImprovements","updatedRiskImprovements"],"additionalProperties":false},"examples":{"uploadedPdf":{"summary":"Create a report from a PDF uploaded with createFileUpload","value":{"tenant":"acme-corp","name":"Property Risk Engineering Survey 2026","date":"2026-06-15","siteId":"68354ac4b2a7744c89cbb2f1","source":"GRC","externalId":"4122.0031","executiveSummary":"Single-storey steel-frame warehouse, fully sprinklered. The main loss scenario is a rack-storage fire.","fileId":"814d6ca1-df22-4749-8258-bf22280ee3d7","riskImprovements":[{"name":"26-06-01 Install ESFR sprinkler protection","status":1,"description":"Upgrade the rack-storage area to ESFR sprinklers.","costEstimate":1200000}],"updatedRiskImprovements":[]}}}}}}}},"/api/rpc/deleteEngineeringReport":{"post":{"operationId":"deleteEngineeringReport","description":"Delete an engineering report","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/updateEngineeringReport":{"post":{"operationId":"updateEngineeringReport","description":"Update an existing engineering report","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"},"name":{},"siteId":{"type":"string","minLength":24},"date":{},"source":{"type":"string","enum":["self-inspection","GRC","other","IF","Codan","Paragon","Swiss Re","Chubb","Zürich","Tryg","Allianz","AIG","Marsh","Willis Towers Watson","Aon","Howden"]},"externalId":{},"executiveSummary":{}},"required":["tenant","_id","name","siteId","date","source"],"additionalProperties":false}}}}}},"/api/rpc/createField":{"post":{"operationId":"createField","description":"Create a new custom field","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fieldId":{},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name of Field. Must be an alphanumeric string (spaces and hyphens allowed), between 1 and 100 characters"},"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z_][a-zA-Z0-9_]*$","description":"A slug to uniquely identify the field"},"description":{"type":"string","maxLength":255},"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"string","minLength":1,"maxLength":100},"color":{"anyOf":[{},{"type":"string"}]}},"required":["id","value"],"additionalProperties":false}},"addField":{"type":"string"},"collectionEndpointName":{},"boardSlug":{"type":"string"},"type":{}},"required":["tenant","name","slug","collectionEndpointName","type"],"additionalProperties":false}}}}}},"/api/rpc/deleteField":{"post":{"operationId":"deleteField","description":"Delete a custom field","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fieldId":{}},"required":["tenant","fieldId"],"additionalProperties":false}}}}}},"/api/rpc/updateField":{"post":{"operationId":"updateField","description":"Update a custom field","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fieldId":{},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name of Field. Must be an alphanumeric string (spaces and hyphens allowed), between 1 and 100 characters"},"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z_][a-zA-Z0-9_]*$","description":"A slug to uniquely identify the field"},"description":{"type":"string","maxLength":255},"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"type":"string","minLength":1,"maxLength":100},"color":{"anyOf":[{},{"type":"string"}]}},"required":["id","value"],"additionalProperties":false}},"addField":{"type":"string"},"collectionEndpointName":{},"boardSlug":{"type":"string"},"type":{}},"required":["tenant","fieldId","name","slug"],"additionalProperties":false}}}}}},"/api/rpc/createFindingsReport":{"post":{"operationId":"createFindingsReport","description":"Create a findings report for a site on a findings board","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"},"siteId":{"type":"string","pattern":"^[a-f\\d]{24}$"},"name":{},"reportDate":{},"description":{},"findingIds":{}},"required":["tenant","boardSlug","siteId","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteFindingsReport":{"post":{"operationId":"deleteFindingsReport","description":"Delete a findings report","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reportId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","reportId"],"additionalProperties":false}}}}}},"/api/rpc/updateFindingsReport":{"post":{"operationId":"updateFindingsReport","description":"Update a findings report and the findings associated with it","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reportId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{},"reportDate":{},"description":{},"findingIds":{}},"required":["tenant","reportId"],"additionalProperties":false}}}}}},"/api/rpc/createFinding":{"post":{"operationId":"createFinding","description":"Create a finding on a findings board","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the board"},"name":{},"site":{"type":"string","pattern":"^[a-f\\d]{24}$"},"status":{},"notes":{},"dueDate":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{},"responsible":{},"costEstimate":{},"boardCategory":{},"labels":{},"controlIds":{},"files":{},"reportId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fields":{"description":"Custom field values keyed by c_items_<field slug>.","type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","boardSlug","name","site"],"additionalProperties":false}}}}}},"/api/rpc/deleteFinding":{"post":{"operationId":"deleteFinding","description":"Delete a finding and its sub-tasks. They leave every list and their pages, and their history is kept.","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/updateFinding":{"post":{"operationId":"updateFinding","description":"Update a finding","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"},"name":{},"status":{},"dueDate":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{},"verify":{},"costEstimate":{},"boardCategory":{},"responsible":{},"labels":{},"notes":{},"comment":{},"addFiles":{},"removeFiles":{},"renameFiles":{},"controlIds":{},"addSubTask":{},"deleteSubTask":{},"subTasks":{},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","itemId"],"additionalProperties":false},"examples":{"requireVerification":{"summary":"Require a finding to be verified every quarter","description":"Once the finding is closed, it must be verified again within each fixed 3-month period counted from the anchor date; otherwise it moves to the board's expired status. Pass `expiryIntervalAmount: null` to remove the requirement.","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","expiryIntervalAmount":3,"expiryIntervalUnit":"month","expiryMode":"fixed","expiryAnchor":"2026-01-01"}},"verifyFinding":{"summary":"Confirm that a finding is still resolved","description":"For findings that require verification on a rolling interval, `verify: true` records that the finding was verified today and restarts its expiry. The finding must be in a closed status after the update. Findings with fixed periods are verified by entering a closed status, and reject `verify`.","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","verify":true}}}}}}}},"/api/rpc/createFolder":{"post":{"operationId":"createFolder","description":"Create a new folder board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":2,"maxLength":100}},"required":["tenant","name"],"additionalProperties":false}}}}}},"/api/rpc/adoptFrameworkTemplate":{"post":{"operationId":"adoptFrameworkTemplate","description":"Adopt a 21RISK framework template (e.g. SOC 2, ISO/IEC 27001): copies the framework and its requirement tree into the organization, where everything stays editable. With includeControls, also creates the suggested controls, mapped across every adopted framework. Needs create access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"templateKey":{},"includeControls":{"default":false,"description":"Also create the suggested controls for this framework that the organization does not have yet. Suggested controls it already has are linked either way.","type":"boolean"}},"required":["tenant","templateKey","includeControls"],"additionalProperties":false},"examples":{"soc2":{"summary":"Adopt SOC 2 with the suggested controls","value":{"tenant":"acme-corp","templateKey":"soc2-tsc@2017","includeControls":true}}}}}}}},"/api/rpc/adoptSuggestedControls":{"post":{"operationId":"adoptSuggestedControls","description":"Add the 21RISK suggested controls for a framework adopted from a template: creates the ones the organization does not have yet and maps all of them to the framework’s requirements. Needs create access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"frameworkId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","frameworkId"],"additionalProperties":false}}}}}},"/api/rpc/createFrameworkRequirement":{"post":{"operationId":"createFrameworkRequirement","description":"Add a section or requirement to a framework, after its last sibling. Needs create access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"frameworkId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"parentId":{"description":"Parent node; omit for a top-level node.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{},"ref":{},"title":{},"description":{}},"required":["tenant","frameworkId","kind","ref","title"],"additionalProperties":false}}}}}},"/api/rpc/createFramework":{"post":{"operationId":"createFramework","description":"Create an empty framework to build by hand, such as an insurer’s requirements or a group standard. Needs create access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"publisher":{},"version":{},"description":{}},"required":["tenant","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteFrameworkRequirement":{"post":{"operationId":"deleteFrameworkRequirement","description":"Delete a requirement or section with everything under it. To keep it on record as not applicable, set excludedReason with updateFrameworkRequirement instead. Needs delete access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"requirementId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","requirementId"],"additionalProperties":false}}}}}},"/api/rpc/deleteFramework":{"post":{"operationId":"deleteFramework","description":"Delete a framework and its requirements. Controls stay; only their mappings to this framework are removed. Findings boards stop offering the framework, and their findings keep only the controls the remaining frameworks of each board offer; the findings keep the old links in their history. Needs delete access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"frameworkId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","frameworkId"],"additionalProperties":false}}}}}},"/api/rpc/updateFrameworkRequirement":{"post":{"operationId":"updateFrameworkRequirement","description":"Edit a framework requirement: reference, title, description, exclusion (not applicable, with a reason) and the controls mapped to it. Omitted fields keep their value; null clears. Needs update access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"requirementId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ref":{},"title":{},"description":{},"excludedReason":{},"controlIds":{}},"required":["tenant","requirementId"],"additionalProperties":false},"examples":{"exclude":{"summary":"Mark a requirement not applicable","value":{"tenant":"acme-corp","requirementId":"01920000-0000-7000-8000-000000000000","excludedReason":"Privacy is outside our SOC 2 report scope"}}}}}}}},"/api/rpc/updateFramework":{"post":{"operationId":"updateFramework","description":"Update a framework’s name, publisher, version or description. Omitted fields keep their value; null clears. Needs update access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"frameworkId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{},"publisher":{},"version":{},"description":{}},"required":["tenant","frameworkId"],"additionalProperties":false}}}}}},"/api/rpc/createGrcReconciliationReport":{"post":{"operationId":"createGrcReconciliationReport","description":"Create a GRC reconciliation report","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/createGrcSyncJob":{"post":{"operationId":"createGrcSyncJob","description":"Create a GRC sync job","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"dryRun":{"default":false,"type":"boolean"}},"required":["tenant","dryRun"],"additionalProperties":false}}}}}},"/api/rpc/updateGrcBoardCategories":{"post":{"operationId":"updateGrcBoardCategories","description":"Update GRC categories","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/updateGrcSync":{"post":{"operationId":"updateGrcSync","description":"Update GRC sync settings","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"grcEnabled":{"type":"boolean"},"grcId":{"type":"string"},"grcPassword":{"type":"string"}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/createInsuranceBulkImportJob":{"post":{"operationId":"createInsuranceBulkImportJob","description":"Create an insurance values bulk import job from an uploaded spreadsheet","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileId":{"maxItems":1,"type":"array","items":{"type":"string","minLength":1}},"periodSlug":{"type":"string","minLength":1},"skipSecondRow":{"default":false,"type":"boolean"}},"required":["tenant","fileId","periodSlug","skipSecondRow"],"additionalProperties":false}}}}}},"/api/rpc/importInsuranceBulkImportJob":{"post":{"operationId":"importInsuranceBulkImportJob","description":"Import an insurance bulk import job","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId"],"additionalProperties":false}}}}}},"/api/rpc/createInsurancePeriod":{"post":{"operationId":"createInsurancePeriod","description":"Create a new insurance period","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":100},"inceptionDate":{},"currencyDateString":{"type":"string"},"buildingsDescription":{},"leaseImprovementsDescription":{},"machineryAndEquipmentDescription":{},"furnitureAndFixturesDescription":{},"stockAndSuppliesDescription":{},"businessInterruptionDescription":{}},"required":["tenant","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteInsurancePeriod":{"post":{"operationId":"deleteInsurancePeriod","description":"Delete an insurance period","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","id"],"additionalProperties":false}}}}}},"/api/rpc/updateInsurancePeriodSetLocked":{"post":{"operationId":"updateInsurancePeriodSetLocked","description":"Lock or unlock an insurance period","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"locked":{"default":false,"type":"boolean"},"periodName":{"type":"string"}},"required":["tenant","locked","periodName"],"additionalProperties":false}}}}}},"/api/rpc/updateInsurancePeriod":{"post":{"operationId":"updateInsurancePeriod","description":"Update an insurance period","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":100},"inceptionDate":{},"currencyDate":{},"allowedBiPeriods":{},"businessInterruptionBaseMonths":{},"lockedValueKeys":{},"buildingsDescription":{},"leaseImprovementsDescription":{},"machineryAndEquipmentDescription":{},"furnitureAndFixturesDescription":{},"stockAndSuppliesDescription":{},"businessInterruptionDescription":{},"periodName":{"type":"string"}},"required":["tenant","name","periodName"],"additionalProperties":{}},"examples":{"businessInterruptionBaseValue":{"summary":"Sites enter Business Interruption as a 12-month base value, which totals scale by each site's BI period","value":{"tenant":"acme-corp","periodName":"2026","name":"2026","businessInterruptionBaseMonths":12}},"businessInterruptionAsEntered":{"summary":"Business Interruption counts as entered again","value":{"tenant":"acme-corp","periodName":"2026","name":"2026","businessInterruptionBaseMonths":null}}}}}}}},"/api/rpc/updateInsuranceRenewalDate":{"post":{"operationId":"updateInsuranceRenewalDate","description":"Set the renewal date: the month and day the insurance program renews each year. New insurance periods start on it unless another inception date is given; existing periods keep their inception dates.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"month":{},"day":{}},"required":["tenant","month","day"],"additionalProperties":false}}}}}},"/api/rpc/createInsurancePolicy":{"post":{"operationId":"createInsurancePolicy","description":"Add an insurance policy to a period: the master policy, a Freedom of Services (FOS) policy (one of each per period at most) or a local policy, with its uploaded documents or without them for now. One document is the policy itself, the others support it. Needs the Insurance board's Manage Settings permission.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"periodName":{},"type":{},"name":{},"files":{},"primaryFileId":{}},"required":["tenant","periodName","type","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteInsurancePolicy":{"post":{"operationId":"deleteInsurancePolicy","description":"Delete an insurance policy and its documents. Needs the Insurance board's Manage Settings permission.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"policyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","policyId"],"additionalProperties":false}}}}}},"/api/rpc/updateInsurancePolicy":{"post":{"operationId":"updateInsurancePolicy","description":"Change an insurance policy's type, name, documents or which document is the policy itself. Omitted fields keep their value; `files` replaces the whole list. Needs the Insurance board's Manage Settings permission.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"policyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{},"name":{},"files":{},"primaryFileId":{}},"required":["tenant","policyId"],"additionalProperties":false}}}}}},"/api/rpc/createInsuranceValueColumn":{"post":{"operationId":"createInsuranceValueColumn","description":"Add a value column to an insurance period, after the other columns of its group. Property damage and business interruption columns count toward TIV; other values never do.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"periodName":{},"category":{},"name":{},"description":{}},"required":["tenant","periodName","category","name"],"additionalProperties":false}}}}}},"/api/rpc/removeInsuranceValueColumn":{"post":{"operationId":"removeInsuranceValueColumn","description":"Remove a value column from an insurance period and delete the values sites entered for it in that period, including descriptions and confirmations; attached files are unlinked from those values. Removing a property damage or business interruption column lowers the period TIV by those values. Other periods keep the column and their values. Use only when the user explicitly asks to remove the column.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"periodName":{},"valueColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"One of the period's value columns, as listed by queryInsurancePeriod."}},"required":["tenant","periodName","valueColumnId"],"additionalProperties":false}}}}}},"/api/rpc/updateInsuranceValueColumn":{"post":{"operationId":"updateInsuranceValueColumn","description":"Rename a value column of an insurance period, change its description or lock it so only insurance administrators can change its values, for that period only. Values, history and other periods are not affected.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"periodName":{},"valueColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"One of the period's value columns, as listed by queryInsurancePeriod."},"name":{},"description":{},"locked":{}},"required":["tenant","periodName","valueColumnId","name"],"additionalProperties":false}}}}}},"/api/rpc/updateInsuranceValues":{"post":{"operationId":"updateInsuranceValues","description":"Update a site's insurance period data, including insured values and COPE (Construction, Occupancy, Protection, Exposure) risk details such as buildings, machinery, stock, fire protection, exposures, and attachments — and the off-site values it owns that physically stand at other sites on the insurance board.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"periodName":{"type":"string"},"siteId":{"type":"string"},"offSiteValues":{},"valueColumns":{},"buildings":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputCurrency":{},"amountInInputCurrency":{},"amountInBaseCurrency":{},"prevInputCurrency":{},"prevAmountInInputCurrency":{},"prevAmountInBaseCurrency":{}},"additionalProperties":false},"machineryAndEquipment":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputCurrency":{},"amountInInputCurrency":{},"amountInBaseCurrency":{},"prevInputCurrency":{},"prevAmountInInputCurrency":{},"prevAmountInBaseCurrency":{}},"additionalProperties":false},"leaseImprovements":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputCurrency":{},"amountInInputCurrency":{},"amountInBaseCurrency":{},"prevInputCurrency":{},"prevAmountInInputCurrency":{},"prevAmountInBaseCurrency":{}},"additionalProperties":false},"furnitureAndFixtures":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputCurrency":{},"amountInInputCurrency":{},"amountInBaseCurrency":{},"prevInputCurrency":{},"prevAmountInInputCurrency":{},"prevAmountInBaseCurrency":{}},"additionalProperties":false},"stockAndSupplies":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputCurrency":{},"amountInInputCurrency":{},"amountInBaseCurrency":{},"prevInputCurrency":{},"prevAmountInInputCurrency":{},"prevAmountInBaseCurrency":{}},"additionalProperties":false},"businessInterruption":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputCurrency":{},"amountInInputCurrency":{},"amountInBaseCurrency":{},"prevInputCurrency":{},"prevAmountInInputCurrency":{},"prevAmountInBaseCurrency":{}},"additionalProperties":false},"smokeVents":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireSections":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"closureMechanisms":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"cableAndPiping":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"highRackStorage":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"spillDropCol":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"electricalInstallation":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"lithiumBatteries":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"unmannedMachinery":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"seperateCharging":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"markedCharging":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"sharedOccupancy":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"electricalHeating":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireDetection":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireLogbook":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireAutSprinklers":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireExting":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"externalHydrants":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"extingService":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"thermographicSurvey":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"hotWorkPermit":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"inspectionRegularHousekeeping":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"inspectionSandwichPanels":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"inspectionFireDoors":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"smokePolicy":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"biPlan":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"solarInstallted":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"numberOfBuildings":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"stories":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"whiteCollarEmployees":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"blueCollarEmployees":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"normalOperatingDaysAWeek":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"buildingConstructionYear":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireBrigade":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"fireDetectionArea":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"sprinklerProtection":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"smokeVentsPerc":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"normalOperationShifts":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"biPeriod":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"area":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputValue":{},"inputType":{}},"additionalProperties":false},"solarLengthOfSection":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputValue":{},"inputType":{}},"additionalProperties":false},"solarWidthOfSection":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputValue":{},"inputType":{}},"additionalProperties":false},"solarDistanceBetweenSections":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputValue":{},"inputType":{}},"additionalProperties":false},"solarDistanceToRoofEdge":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"inputValue":{},"inputType":{}},"additionalProperties":false},"roof":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"internalWalls":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"externalWalls":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"occupancyType":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"storageTypes":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"waterPumps":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"waterSupply":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{},"value":{}},"additionalProperties":false},"general":{"type":"object","properties":{"isUpdated":{"type":"boolean"},"isConfirmed":{"type":"boolean"},"confirm":{},"description":{},"files":{}},"additionalProperties":false}},"required":["tenant","periodName","siteId"],"additionalProperties":{}}}}}}},"/api/rpc/updateComplianceItem":{"post":{"operationId":"updateComplianceItem","description":"Update a compliance item","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string"},"childId":{"type":"string"},"name":{},"dueDate":{},"costEstimate":{},"responsible":{},"state":{"type":"string"},"description":{},"completed":{"type":"boolean"},"labels":{},"comment":{},"files":{},"children":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"name":{"type":"string"},"completed":{"default":false,"type":"boolean"}},"required":["itemId","completed"],"additionalProperties":false}},"addSubTask":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"name":{"type":"string","minLength":1}},"required":["name"],"additionalProperties":false}},"deleteSubTask":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/createNatCatData":{"post":{"operationId":"createNatCatData","description":"Create nat cat data","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string","minLength":1}},"required":["tenant","siteId"],"additionalProperties":false}}}}}},"/api/rpc/updateNewsletterSubscription":{"post":{"operationId":"updateNewsletterSubscription","description":"Set whether the current user's email receives newsletter emails (adds or removes the email on the unsubscribe suppression list)","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscribed":{}},"required":["subscribed"],"additionalProperties":false}}}}}},"/api/rpc/markNotificationsRead":{"post":{"operationId":"markNotificationsRead","description":"Mark notifications as read","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"ids":{},"all":{"default":false,"type":"boolean"}},"required":["tenant","all"],"additionalProperties":false}}}}}},"/api/rpc/updateBoardWatchLevel":{"post":{"operationId":"updateBoardWatchLevel","description":"Set the notification watch level for a board","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"level":{}},"required":["tenant","boardSlug","level"],"additionalProperties":false}}}}}},"/api/rpc/updateNotificationEmails":{"post":{"operationId":"updateNotificationEmails","description":"Set whether the current user receives notification emails in this tenant","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"enabled":{}},"required":["tenant","enabled"],"additionalProperties":false}}}}}},"/api/rpc/updateWeeklyDigestBoardLevel":{"post":{"operationId":"updateWeeklyDigestBoardLevel","description":"Set a board's weekly-digest inclusion level (participating, all, or ignore) for the current user","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{},"level":{}},"required":["tenant","boardSlug","level"],"additionalProperties":false}}}}}},"/api/rpc/updateWeeklyDigestEmails":{"post":{"operationId":"updateWeeklyDigestEmails","description":"Set whether the current user receives the weekly digest email in this tenant","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"enabled":{}},"required":["tenant","enabled"],"additionalProperties":false}}}}}},"/api/rpc/revertNotification":{"post":{"operationId":"revertNotification","description":"Revert a notification template to its default","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"templateKey":{}},"required":["tenant","templateKey"],"additionalProperties":false}}}}}},"/api/rpc/updateNotification":{"post":{"operationId":"updateNotification","description":"Update a notification template","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"templateKey":{},"subject":{},"body":{},"enabled":{}},"required":["tenant","templateKey","subject","body","enabled"],"additionalProperties":false}}}}}},"/api/rpc/createOrganization":{"post":{"operationId":"createOrganization","description":"Create a new organization (tenant)","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"slug":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[a-z0-9_-]+$","description":"The url for the organization"}},"required":["name","slug"],"additionalProperties":false}}}}}},"/api/rpc/createPolicy":{"post":{"operationId":"createPolicy","description":"Add a policy, such as the Information Security Policy, to the Frameworks and Controls board: its name, site (the head office for an organization-wide policy), owner, uploaded document, the controls it covers and review interval (yearly unless set). It starts in the board default status, Draft, unless another is given; approving it later records the approval. Needs create access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{},"site":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"The site the policy belongs to. An organization-wide policy belongs to the head office site."},"status":{},"responsible":{},"files":{},"controlIds":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{}},"required":["tenant","name","site"],"additionalProperties":false},"examples":{"draft":{"summary":"A draft policy at the head office, reviewed every year","value":{"tenant":"acme-corp","name":"Information Security Policy","site":"5cefa9e42e890b001310f47a","responsible":"email|ciso@example.com"}}}}}}}},"/api/rpc/deletePolicy":{"post":{"operationId":"deletePolicy","description":"Delete a policy. It leaves the policy list and its page, and its history is kept. Needs delete access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/updatePolicy":{"post":{"operationId":"updatePolicy","description":"Update a policy: name, owner, status, document files (addFiles, removeFiles, renameFiles), linked controls (controlIds) and review interval, with an optional comment. Moving it to Approved records the approval; verify: true records a review without changes. Every change is kept in the policy's history. Needs update access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"},"name":{},"status":{},"responsible":{},"comment":{},"addFiles":{},"removeFiles":{},"renameFiles":{},"controlIds":{},"expiryIntervalAmount":{},"expiryIntervalUnit":{},"expiryMode":{},"expiryAnchor":{},"verify":{}},"required":["tenant","itemId"],"additionalProperties":false},"examples":{"newVersion":{"summary":"Replace the policy document with a revised version","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","removeFiles":["01920000-0000-7000-8000-000000000001"],"addFiles":[{"_id":"01920000-0000-7000-8000-000000000002","name":"Information Security Policy v2.1.pdf","size":254112,"mimeType":"application/pdf"}]}},"controls":{"summary":"Link the policy to the controls it covers","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","controlIds":["01920000-0000-7000-8000-0000000000a1","01920000-0000-7000-8000-0000000000a2"]}},"verified":{"summary":"Verify the approved policy today without changes","value":{"tenant":"acme-corp","itemId":"5cefa9e42e890b001310f47a","verify":true}}}}}}}},"/api/rpc/updateDefaultTenant":{"post":{"operationId":"updateDefaultTenant","description":"Update the user's default tenant","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","description":"ID of the tenant to set as default"}},"required":["tenantId"],"additionalProperties":false}}}}}},"/api/rpc/updateFeatureFlags":{"post":{"operationId":"updateFeatureFlags","description":"Update the user's experimental feature flags","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"featureFlagWarmCache":{}},"additionalProperties":false}}}}}},"/api/rpc/createReport":{"post":{"operationId":"createReport","description":"Create a new compliance report draft","tags":["reports"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string"},"strategy":{"default":"startAllNonCompliant","type":"string","enum":["startAllCompliant","startAllNonCompliant","startAuditBasedOnCurrentIfNoneThenCompliant"]}},"required":["tenant","siteId","strategy"],"additionalProperties":false}}}}}},"/api/rpc/publishReport":{"post":{"operationId":"publishReport","description":"Publish a compliance report","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reportId":{"type":"string","minLength":1}},"required":["tenant","reportId"],"additionalProperties":false}}}}}},"/api/rpc/unpublishReport":{"post":{"operationId":"unpublishReport","description":"Unpublish a compliance report","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"reportId":{"type":"string","minLength":1}},"required":["tenant","reportId"],"additionalProperties":false}}}}}},"/api/rpc/createResponsibilitiesBulkImportJob":{"post":{"operationId":"createResponsibilitiesBulkImportJob","description":"Create a responsibilities bulk import job from an uploaded spreadsheet","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileId":{"maxItems":1,"type":"array","items":{"type":"string","minLength":1}},"skipSecondRow":{"default":false,"type":"boolean"},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","fileId","skipSecondRow","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/importResponsibilitiesBulkImport":{"post":{"operationId":"importResponsibilitiesBulkImport","description":"Run a prepared responsibilities bulk import job","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId"],"additionalProperties":false}}}}}},"/api/rpc/createRiskImprovement":{"post":{"operationId":"createRiskImprovement","description":"Create a new risk improvement","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"riskImprovementId":{"description":"The existing risk improvement ID. Required when updating an existing record.","type":"string","pattern":"^[a-f\\d]{24}$"},"name":{},"site":{},"status":{},"description":{},"dueDate":{},"responsible":{},"costEstimate":{},"lossEstimateBefore":{},"lossEstimateAfter":{},"boardCategory":{},"externalId":{},"labels":{},"comment":{},"insuranceEngineeringReportId":{},"addSubTask":{},"deleteSubTask":{},"subTasks":{},"fields":{"description":"Custom field values keyed by c_items_<field slug>.","type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}},"files":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/deleteRiskImprovement":{"post":{"operationId":"deleteRiskImprovement","description":"Delete a risk improvement and its sub-tasks. They leave every list and their pages, and their history is kept.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"riskImprovementId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","riskImprovementId"],"additionalProperties":false}}}}}},"/api/rpc/updateRiskImprovement":{"post":{"operationId":"updateRiskImprovement","description":"Update a risk improvement","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"riskImprovementId":{"description":"The existing risk improvement ID. Required when updating an existing record.","type":"string","pattern":"^[a-f\\d]{24}$"},"name":{},"site":{},"status":{},"description":{},"dueDate":{},"responsible":{},"costEstimate":{},"lossEstimateBefore":{},"lossEstimateAfter":{},"boardCategory":{},"externalId":{},"labels":{},"comment":{},"insuranceEngineeringReportId":{},"addSubTask":{},"deleteSubTask":{},"subTasks":{},"fields":{"description":"Custom field values keyed by c_items_<field slug>.","type":"object","propertyNames":{"type":"string","pattern":"^c_items_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}},"addFiles":{},"removeFiles":{},"renameFiles":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/activateVersion":{"post":{"operationId":"activateVersion","description":"Activate a risk model version on a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","_id","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/createVersion":{"post":{"operationId":"createVersion","description":"Create a risk model version on a Compliance 1.0 board. Compliance 1.0 is read-only, so this is always refused.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["tenant","boardSlug","name"],"additionalProperties":false}}}}}},"/api/rpc/deleteVersion":{"post":{"operationId":"deleteVersion","description":"Delete a risk model version from a board","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","_id","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/duplicateVersion":{"post":{"operationId":"duplicateVersion","description":"Duplicate a Compliance 1.0 risk model version. Compliance 1.0 is read-only, so this is always refused.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","_id","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/updateVersionName":{"post":{"operationId":"updateVersionName","description":"Update the name of a risk model version","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"},"boardSlug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["tenant","_id","boardSlug","name"],"additionalProperties":false}}}}}},"/api/rpc/createOrRotateScimConnectionKey":{"post":{"operationId":"createOrRotateScimConnectionKey","description":"Create or rotate the API key for a SCIM connection","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/createScimConnection":{"post":{"operationId":"createScimConnection","description":"Create a new SCIM connection","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/deleteScimConnection":{"post":{"operationId":"deleteScimConnection","description":"Delete a SCIM connection","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/rotateScimConnectionKey":{"post":{"operationId":"rotateScimConnectionKey","description":"Create or rotate SCIM connection API key","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/triggerScimSync":{"post":{"operationId":"triggerScimSync","description":"Trigger a manual SCIM user sync","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/createSiteGroup":{"post":{"operationId":"createSiteGroup","description":"Create a site group","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the site group"}},"required":["tenant","name","slug"],"additionalProperties":false}}}}}},"/api/rpc/deleteSiteGroup":{"post":{"operationId":"deleteSiteGroup","description":"Delete a site group","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteGroupSlug":{"type":"string"}},"required":["tenant","siteGroupSlug"],"additionalProperties":false}}}}}},"/api/rpc/updateSiteGroup":{"post":{"operationId":"updateSiteGroup","description":"Update a site group","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteGroupSlug":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the site group"}},"required":["tenant","siteGroupSlug"],"additionalProperties":false}}}}}},"/api/rpc/createSitesBulkImportJob":{"post":{"operationId":"createSitesBulkImportJob","description":"Create a bulk import job for sites from an Excel file","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileId":{"maxItems":1,"type":"array","items":{"type":"string","minLength":1}},"skipSecondRow":{"default":false,"type":"boolean"}},"required":["tenant","fileId","skipSecondRow"],"additionalProperties":false}}}}}},"/api/rpc/importSitesBulkImport":{"post":{"operationId":"importSitesBulkImport","description":"Execute a sites bulk import job","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId"],"additionalProperties":false}}}}}},"/api/rpc/createSite":{"post":{"operationId":"createSite","description":"Create a new site","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Provide a name for the site, between 1 and 100 characters"},"notes":{},"tags":{},"siteGroups":{},"parent":{},"address_line_1":{},"address_countryCode":{},"address_region":{},"address_district":{},"address_cityPlace":{},"address_postcode":{},"address_locality":{},"address_neighborhood":{},"address_street":{},"address_streetNumber":{},"address_latitude":{},"address_markerLatitude":{"type":"number"},"address_longitude":{},"address_markerlongitude":{"type":"number"},"address_zoom":{},"address_pitch":{},"address_bearing":{},"address_mapstyle":{"type":"string"},"status":{},"lastModified":{"type":"string"},"createdDate":{"type":"string"},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_sites_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant"],"additionalProperties":false},"examples":{"minimal":{"summary":"Create site with name only","value":{"tenant":"acme-corp","name":"New Warehouse"}},"withAddress":{"summary":"Create site with address","value":{"tenant":"acme-corp","name":"Berlin Office","address_line_1":"Friedrichstraße 100","address_countryCode":"DE","tags":["office","europe"]}},"withSiteGroups":{"summary":"Create site and assign it to site groups","description":"Pass the site group ids under `siteGroups`. Call `querySiteGroups` first to discover the available site groups. System-managed groups are assigned automatically and are ignored here.","value":{"tenant":"acme-corp","name":"Aarhus Plant","siteGroups":[3,7]}},"withCustomColumns":{"summary":"Create site with tenant-specific custom columns","description":"Custom columns are passed under `fields`, keyed by their `c_sites_*` slug. MultiSelect fields use arrays; Number fields accept numbers or numeric strings; Text, DateOnly, Select, and Id fields use strings. Call `queryFields` with the sites table context first to discover which custom columns exist for the tenant and their allowed values.","value":{"tenant":"acme-corp","name":"Lyon Plant","address_countryCode":"FR","fields":{"c_sites_test_select":"Option 1","c_sites_test_multi_select":["Option 1","Option 3"],"c_sites_test_number":120}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Site created","value":"63092299f195895df0412798"}}}}}}}},"/api/rpc/deleteSite":{"post":{"operationId":"deleteSite","description":"Permanently delete an inactive site","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string","description":"The id of the inactive site to permanently delete"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/permanentlyDeleteInactiveSite":{"post":{"operationId":"permanentlyDeleteInactiveSite","description":"Permanently delete an inactive site. The site must be set to inactive first. This action cannot be undone.","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string","description":"The id of the inactive site to permanently delete"}},"required":["tenant","_id"],"additionalProperties":false},"examples":{"basic":{"summary":"Delete inactive site","value":{"tenant":"acme-corp","_id":"5cefa9e42e890b001310f47a"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Site permanently deleted","value":{"deletedIds":["63092299f195895df0412798"],"count":1}}}}}},"400":{"description":"Error 400","content":{"application/json":{"examples":{"siteNotInactive":{"summary":"Site is not inactive","value":{"message":"Site must be set to inactive before it can be deleted"}}}}}}}}},"/api/rpc/reactivateSite":{"post":{"operationId":"reactivateSite","description":"Reactivate an inactive site","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string","description":"The id of the site to reactivate"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/updateSiteSetInactive":{"post":{"operationId":"updateSiteSetInactive","description":"Set a site to inactive. Sites must be set to inactive before they can be permanently deleted.","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string","description":"The id of the site to delete"}},"required":["tenant","_id"],"additionalProperties":false},"examples":{"basic":{"summary":"Set site inactive","value":{"tenant":"acme-corp","_id":"5cefa9e42e890b001310f47a"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Site set to inactive","value":"63092299f195895df0412798"}}}}}}}},"/api/rpc/updateSite":{"post":{"operationId":"updateSite","description":"Update an existing site by ID","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Provide a name for the site, between 1 and 100 characters"},"notes":{},"tags":{},"siteGroups":{},"parent":{},"address_line_1":{},"address_countryCode":{},"address_region":{},"address_district":{},"address_cityPlace":{},"address_postcode":{},"address_locality":{},"address_neighborhood":{},"address_street":{},"address_streetNumber":{},"address_latitude":{},"address_markerLatitude":{"type":"number"},"address_longitude":{},"address_markerlongitude":{"type":"number"},"address_zoom":{},"address_pitch":{},"address_bearing":{},"address_mapstyle":{"type":"string"},"status":{},"lastModified":{"type":"string"},"createdDate":{"type":"string"},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^c_sites_[\\s\\S]{0,}$"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{},{"type":"array","items":{"type":"string"}}]},{"type":"null"}],"description":"Raw custom-column input. Values are interpreted after loading the configured field type."}}},"required":["tenant"],"additionalProperties":false},"examples":{"rename":{"summary":"Rename a site","value":{"tenant":"acme-corp","siteId":"5cefa9e42e890b001310f47a","name":"Copenhagen HQ (Renamed)"}},"updateAddress":{"summary":"Update site address","value":{"tenant":"acme-corp","siteId":"5cefa9e42e890b001310f47a","address_line_1":"Vesterbrogade 10","address_countryCode":"DK"}},"updateSiteGroups":{"summary":"Replace the site group memberships of a site","description":"`siteGroups` replaces the full list of memberships — omit it to leave them unchanged, or pass an empty array to remove the site from every group. Call `querySiteGroups` first to discover the available site group ids. System-managed groups are ignored.","value":{"tenant":"acme-corp","siteId":"5cefa9e42e890b001310f47a","siteGroups":[3,7]}},"updateCustomColumns":{"summary":"Update tenant-specific custom columns","description":"Custom columns are passed under `fields`, keyed by their `c_sites_*` slug. MultiSelect fields use arrays; an empty array or null clears a value, while omission preserves it. Number fields accept numbers or numeric strings; Text, DateOnly, Select, and Id fields use strings. Call `queryFields` with the sites table context first to discover which custom columns exist for the tenant and their allowed values.","value":{"tenant":"acme-corp","siteId":"5cefa9e42e890b001310f47a","fields":{"c_sites_test_select":"Option 1","c_sites_test_multi_select":["Option 1","Option 3"],"c_sites_test_text":"Region lead: Jane Doe","c_sites_test_number":42,"c_sites_test_date":"2026-06-25"}}},"updateNameAndCustomColumns":{"summary":"Update standard fields and custom columns together","description":"Standard fields and `fields` (custom columns) can be updated in a single request.","value":{"tenant":"acme-corp","siteId":"5cefa9e42e890b001310f47a","name":"Copenhagen HQ","tags":["office","europe"],"fields":{"c_sites_test_select":"Option 2"}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Site updated","value":"63092299f195895df0412798"}}}}}}}},"/api/rpc/createIdentityProviderConfig":{"post":{"operationId":"createIdentityProviderConfig","description":"Create an identity provider configuration for an SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"providerType":{},"issuer":{"type":"string","format":"uri"},"clientId":{"type":"string","minLength":5},"clientSecret":{"type":"string","minLength":5}},"required":["tenant","providerType","issuer","clientId","clientSecret"],"additionalProperties":false}}}}}},"/api/rpc/createSsoConnection":{"post":{"operationId":"createSsoConnection","description":"Create a new SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"connectionType":{}},"required":["tenant","connectionType"],"additionalProperties":false}}}}}},"/api/rpc/deleteSsoConnection":{"post":{"operationId":"deleteSsoConnection","description":"Delete an SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"ssoConnectionId":{"type":"string"}},"required":["tenant","ssoConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/refreshSamlMetadata":{"post":{"operationId":"refreshSamlMetadata","description":"Refresh SAML metadata for an SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"ssoConnectionId":{"type":"string","minLength":1}},"required":["tenant","ssoConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/updateIdentityProviderConfig":{"post":{"operationId":"updateIdentityProviderConfig","description":"Update an identity provider configuration for an SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"providerType":{},"issuer":{"type":"string"},"clientId":{"type":"string"},"clientSecret":{"type":"string"}},"required":["tenant","providerType","issuer","clientId","clientSecret"],"additionalProperties":false}}}}}},"/api/rpc/updateSsoConnectionTogglePrimary":{"post":{"operationId":"updateSsoConnectionTogglePrimary","description":"Toggle the primary status of an SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"ssoConnectionId":{"type":"string"},"primary":{"default":false,"type":"boolean"}},"required":["tenant","ssoConnectionId","primary"],"additionalProperties":false}}}}}},"/api/rpc/updateSsoSettings":{"post":{"operationId":"updateSsoSettings","description":"Update SSO domain settings","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"domains":{"type":"string"}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/upsertSamlProviderConfig":{"post":{"operationId":"upsertSamlProviderConfig","description":"Upsert SAML provider configuration for an SSO connection","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"samlProviderType":{},"federationMetadataUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"idpEntityId":{"anyOf":[{"type":"string"},{"type":"string","const":""}]},"idpSsoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"idpCertificate":{"anyOf":[{"type":"string"},{"type":"string","const":""}]},"idpSloUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]}},"required":["tenant","samlProviderType"],"additionalProperties":false}}}}}},"/api/rpc/createTag":{"post":{"operationId":"createTag","description":"Create a new tag","tags":["tags"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"tagId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string"},"description":{"type":"string","maxLength":500}},"required":["tenant","tagId","name","color"],"additionalProperties":false}}}}}},"/api/rpc/deleteTag":{"post":{"operationId":"deleteTag","description":"Delete a tag","tags":["tags"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/reorderTags":{"post":{"operationId":"reorderTags","description":"Set the display order of the tags. Pass every tag id, in the wanted order; a list that leaves out a tag or includes an unknown one is rejected.","tags":["tags"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"tagIds":{}},"required":["tenant","tagIds"],"additionalProperties":false}}}}}},"/api/rpc/updateTag":{"post":{"operationId":"updateTag","description":"Update an existing tag","tags":["tags"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"tagId":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string"},"description":{"type":"string","maxLength":500}},"required":["tenant","tagId","name","color"],"additionalProperties":false}}}}}},"/api/rpc/addGroupOwner":{"post":{"operationId":"addGroupOwner","description":"Add a group owner","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"groupOwners":{"type":"array","items":{"type":"string"}}},"required":["tenant","groupOwners"],"additionalProperties":false}}}}}},"/api/rpc/removeGroupOwner":{"post":{"operationId":"removeGroupOwner","description":"Remove a group owner","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"groupOwners":{"type":"array","items":{"type":"string"}}},"required":["tenant","groupOwners"],"additionalProperties":false}}}}}},"/api/rpc/updateAdvancedAnalytics":{"post":{"operationId":"updateAdvancedAnalytics","description":"Update advanced analytics settings for the organization","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"enabled":{"default":false,"type":"boolean"}},"required":["tenant","enabled"],"additionalProperties":false}}}}}},"/api/rpc/updateClaims":{"post":{"operationId":"updateClaims","description":"Update organization claims / custom attributes","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"enabled":{"default":false,"type":"boolean"}},"required":["tenant","enabled"],"additionalProperties":false}}}}}},"/api/rpc/updateGroupCurrency":{"post":{"operationId":"updateGroupCurrency","description":"Update the default currency for the organization","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"baseCurrency":{}},"required":["tenant","baseCurrency"],"additionalProperties":false}}}}}},"/api/rpc/updateGroupFeatureFlags":{"post":{"operationId":"updateGroupFeatureFlags","description":"Update the organization's experimental feature flags. `featureFlagHotWork` shows the Hot Work board and `featureFlagUserTraining` the User Training board; the compliance frameworks flag no longer has any effect and will be removed. Only organization owners can change them.","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"featureFlagComplianceFrameworks":{},"featureFlagHotWork":{},"featureFlagUserTraining":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/updateGroupLogo":{"post":{"operationId":"updateGroupLogo","description":"Update the logo of the organization","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"logo":{"type":"string"}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/updateGroupOwners":{"post":{"operationId":"updateGroupOwners","description":"Update the owners of the organization","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"groupOwners":{"type":"array","items":{"type":"string"}}},"required":["tenant","groupOwners"],"additionalProperties":false}}}}}},"/api/rpc/updateItNotificationEmailRecipients":{"post":{"operationId":"updateItNotificationEmailRecipients","description":"Update IT notification email recipients for the current tenant","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itNotificationEmailRecipients":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/updateTenantName":{"post":{"operationId":"updateTenantName","description":"Update the name of the organization","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":50}},"required":["tenant","name"],"additionalProperties":false}}}}}},"/api/rpc/updateSlug":{"post":{"operationId":"updateSlug","description":"Update the URL slug of the organization","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"slug":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[a-z0-9_-]+$","description":"The url for the organization"}},"required":["tenant","slug"],"additionalProperties":false}}}}}},"/api/rpc/updateThreadSubscription":{"post":{"operationId":"updateThreadSubscription","description":"Subscribe to or unsubscribe from notifications for an individual item","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"subjectType":{},"subjectId":{},"subscribed":{"default":true,"type":"boolean"}},"required":["tenant","subjectType","subjectId","subscribed"],"additionalProperties":false}}}}}},"/api/rpc/togglePinnedBoard":{"post":{"operationId":"togglePinnedBoard","description":"Pin or unpin a board for the current user","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string","minLength":24,"maxLength":24},"pinned":{"default":false,"type":"boolean"}},"required":["tenant","boardId","pinned"],"additionalProperties":false}}}}}},"/api/rpc/updateProfile":{"post":{"operationId":"updateProfile","description":"Update the current user profile name and picture","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"profilePicture":{"type":"string"}},"required":["name"],"additionalProperties":false}}}}}},"/api/rpc/updateTableView":{"post":{"operationId":"updateTableView","description":"Change a table view's name, URL, sharing, columns, sorting, or filters","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"id":{},"name":{},"slug":{},"visibility":{},"columns":{},"sorting":{},"filters":{}},"required":["tenant","id"],"additionalProperties":false}}}}}},"/api/rpc/updateTenantLogo":{"post":{"operationId":"updateTenantLogo","description":"Update the tenant's logo","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"logo":{"type":"string"}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/addUserToGroup":{"post":{"operationId":"addUserToGroup","description":"Add a user to a user group","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userGroupSlug":{"type":"string"},"user_id":{"type":"string"}},"required":["tenant","userGroupSlug","user_id"],"additionalProperties":false}}}}}},"/api/rpc/createUserGroup":{"post":{"operationId":"createUserGroup","description":"Create a user group","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the user group"},"createUsers":{"default":false,"type":"boolean"},"updateUsers":{"default":false,"type":"boolean"},"deleteUsers":{"default":false,"type":"boolean"},"createSites":{"default":false,"type":"boolean"},"updateSites":{"default":false,"type":"boolean"},"deleteSites":{"default":false,"type":"boolean"},"accessAllSites":{"default":false,"type":"boolean"},"itAdmin":{"default":false,"type":"boolean"},"billing":{"default":false,"type":"boolean"},"createBoards":{"default":false,"type":"boolean"}},"required":["tenant","name","slug","createUsers","updateUsers","deleteUsers","createSites","updateSites","deleteSites","accessAllSites","itAdmin","billing","createBoards"],"additionalProperties":false}}}}}},"/api/rpc/deleteUserGroup":{"post":{"operationId":"deleteUserGroup","description":"Delete a user group","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userGroupSlug":{"type":"string"}},"required":["tenant","userGroupSlug"],"additionalProperties":false}}}}}},"/api/rpc/removeUserFromGroup":{"post":{"operationId":"removeUserFromGroup","description":"Remove a user from a user group","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userGroupSlug":{"type":"string"},"user_id":{"type":"string"}},"required":["tenant","userGroupSlug","user_id"],"additionalProperties":false}}}}}},"/api/rpc/updateUserGroup":{"post":{"operationId":"updateUserGroup","description":"Update a user group","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userGroupSlug":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The url for the user group"},"createUsers":{"default":false,"type":"boolean"},"updateUsers":{"default":false,"type":"boolean"},"deleteUsers":{"default":false,"type":"boolean"},"createSites":{"default":false,"type":"boolean"},"updateSites":{"default":false,"type":"boolean"},"deleteSites":{"default":false,"type":"boolean"},"accessAllSites":{"default":false,"type":"boolean"},"itAdmin":{"default":false,"type":"boolean"},"billing":{"default":false,"type":"boolean"},"createBoards":{}},"required":["tenant","userGroupSlug","createUsers","updateUsers","deleteUsers","createSites","updateSites","deleteSites","accessAllSites","itAdmin","billing"],"additionalProperties":false}}}}}},"/api/rpc/answerUserTrainingQuestion":{"post":{"operationId":"answerUserTrainingQuestion","description":"Answer the next question of the signed-in user’s own training (an assignment from queryMyUserTrainingAssignments). Questions are answered one at a time, in order, and an answer cannot be changed: the response says whether it was correct, which options were correct, and the question’s explanation. The answer to the last question finishes the attempt and scores it against the pass mark (`result`): passing completes the training, and the third attempt without passing fails it until someone resets it.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"assignmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"questionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The next unanswered question of the attempt."},"selected":{}},"required":["tenant","assignmentId","questionId","selected"],"additionalProperties":false}}}}}},"/api/rpc/resetUserTrainingAssignment":{"post":{"operationId":"resetUserTrainingAssignment","description":"Give a trainee who failed a training new attempts and a new due date, and email them. Their earlier attempts are kept. The campaign must be active. Needs update access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"assignmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","assignmentId"],"additionalProperties":false}}}}}},"/api/rpc/createUserTrainingCampaign":{"post":{"operationId":"createUserTrainingCampaign","description":"Create a draft training campaign on the User Training board: a video (an uploaded MP4, or a public Vimeo or Mux link), multiple-choice questions (added with createUserTrainingQuestion) and the user groups whose members must pass it. Nobody is assigned it until it is launched with updateUserTrainingCampaign. Needs create access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"title":{},"description":{},"videoFileId":{},"videoUrl":{},"passMarkPercent":{},"dueInDays":{},"userGroupIds":{}},"required":["tenant","title"],"additionalProperties":false},"examples":{"securityAwareness":{"summary":"A yearly security awareness campaign for every employee","value":{"tenant":"acme-corp","title":"Security awareness 2026","description":"Our yearly training on phishing, passwords and reporting incidents.","videoUrl":"https://vimeo.com/76979871","passMarkPercent":80,"dueInDays":30,"userGroupIds":[12]}}}}}}}},"/api/rpc/deleteUserTrainingCampaign":{"post":{"operationId":"deleteUserTrainingCampaign","description":"Delete a training campaign. It leaves the User Training board and its trainees’ lists; its training records are kept. Needs delete access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"campaignId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","campaignId"],"additionalProperties":false}}}}}},"/api/rpc/updateUserTrainingCampaign":{"post":{"operationId":"updateUserTrainingCampaign","description":"Update a training campaign, or launch, close or reopen it with `status`. Launching assigns it to every member of its user groups and emails them a link; people who join the groups later are assigned it within a day. The video, questions and pass mark only change while the campaign is a draft. Needs update access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"campaignId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{},"description":{},"videoFileId":{},"videoUrl":{},"passMarkPercent":{},"dueInDays":{},"userGroupIds":{},"status":{}},"required":["tenant","campaignId"],"additionalProperties":false},"examples":{"launch":{"summary":"Launch a drafted campaign","value":{"tenant":"acme-corp","campaignId":"01920000-0000-7000-8000-000000000000","status":"active"}}}}}}}},"/api/rpc/createUserTrainingQuestion":{"post":{"operationId":"createUserTrainingQuestion","description":"Add a multiple-choice question at the end of a draft training campaign. Questions only change while the campaign is a draft. Needs update access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"campaignId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"prompt":{},"options":{},"explanation":{}},"required":["tenant","campaignId","prompt","options"],"additionalProperties":false},"examples":{"singleAnswer":{"summary":"A question with one correct answer","value":{"tenant":"acme-corp","campaignId":"01920000-0000-7000-8000-000000000000","prompt":"You get an unexpected email asking you to sign in. What do you do?","options":[{"text":"Sign in through the link in the email","correct":false},{"text":"Report the email to IT and delete it","correct":true},{"text":"Forward it to a colleague to check","correct":false}]}}}}}}}},"/api/rpc/deleteUserTrainingQuestion":{"post":{"operationId":"deleteUserTrainingQuestion","description":"Remove a question from a draft training campaign. Needs update access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"questionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","questionId"],"additionalProperties":false}}}}}},"/api/rpc/updateUserTrainingQuestion":{"post":{"operationId":"updateUserTrainingQuestion","description":"Change a question of a draft training campaign; `options` replaces every answer option. Needs update access to the User Training board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"questionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"prompt":{},"options":{},"explanation":{}},"required":["tenant","questionId"],"additionalProperties":false}}}}}},"/api/rpc/createUsersBulkImportJob":{"post":{"operationId":"createUsersBulkImportJob","description":"Create a users bulk import job from an uploaded spreadsheet","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileId":{"maxItems":1,"type":"array","items":{"type":"string","minLength":1}},"skipSecondRow":{"default":false,"type":"boolean"}},"required":["tenant","fileId","skipSecondRow"],"additionalProperties":false}}}}}},"/api/rpc/importUsersBulkImport":{"post":{"operationId":"importUsersBulkImport","description":"Run a prepared users bulk import job","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId"],"additionalProperties":false}}}}}},"/api/rpc/createUser":{"post":{"operationId":"createUser","description":"Create a new user","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userId":{"type":"string"},"name":{"type":"string","maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"welcomeEmail":{"default":true,"type":"boolean"},"sites":{},"userGroups":{},"createUsers":{"default":false,"type":"boolean"},"updateUsers":{"default":false,"type":"boolean"},"deleteUsers":{"default":false,"type":"boolean"},"createSites":{"default":false,"type":"boolean"},"updateSites":{"default":false,"type":"boolean"},"deleteSites":{"default":false,"type":"boolean"},"accessAllSites":{"default":false,"type":"boolean"},"itAdmin":{"default":false,"type":"boolean"},"billing":{"default":false,"type":"boolean"},"createBoards":{},"status":{},"createdDate":{"type":"string"},"lastModified":{"type":"string"}},"required":["tenant","name","welcomeEmail","createUsers","updateUsers","deleteUsers","createSites","updateSites","deleteSites","accessAllSites","itAdmin","billing"],"additionalProperties":false}}}}}},"/api/rpc/deleteUser":{"post":{"operationId":"deleteUser","description":"Delete a user","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"user_id":{"type":"string"}},"required":["tenant","user_id"],"additionalProperties":false}}}}}},"/api/rpc/reactivateUser":{"post":{"operationId":"reactivateUser","description":"Reactivate a user","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"user_id":{"type":"string"}},"required":["tenant","user_id"],"additionalProperties":false}}}}}},"/api/rpc/updateUser":{"post":{"operationId":"updateUser","description":"Update an existing user","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"userId":{"type":"string"},"name":{"type":"string","maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"welcomeEmail":{"default":true,"type":"boolean"},"sites":{},"userGroups":{},"createUsers":{"default":false,"type":"boolean"},"updateUsers":{"default":false,"type":"boolean"},"deleteUsers":{"default":false,"type":"boolean"},"createSites":{"default":false,"type":"boolean"},"updateSites":{"default":false,"type":"boolean"},"deleteSites":{"default":false,"type":"boolean"},"accessAllSites":{"default":false,"type":"boolean"},"itAdmin":{"default":false,"type":"boolean"},"billing":{"default":false,"type":"boolean"},"createBoards":{},"status":{},"createdDate":{"type":"string"},"lastModified":{"type":"string"}},"required":["tenant","name","welcomeEmail","createUsers","updateUsers","deleteUsers","createSites","updateSites","deleteSites","accessAllSites","itAdmin","billing"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardDefaultStatus":{"post":{"operationId":"queryBoardDefaultStatus","description":"Get the default status for a board by slug or ID","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":false},{"type":"object","properties":{"tenant":{},"boardId":{"type":"string"}},"required":["tenant","boardId"],"additionalProperties":false}]}}}}}},"/api/rpc/queryItemAnalyticsCompliance":{"post":{"operationId":"queryItemAnalyticsCompliance","description":"Get item compliance analytics over time for a board","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"granularity":{"default":"month","type":"string","enum":["day","week","month","quarter","year"]},"date":{"description":"Filter by date. Use ISO dates (2024-01-15) or periods (2024, 2024-01), comparisons like '>=2024', ranges like '2024..2025' or '*..2023-05-01', and relative dates like '@today-7d..@today'. A value without a time covers the whole day, month, or year.","$ref":"#/components/schemas/FilterPropDateInput"},"boardId":{"type":"string"},"sites":{"type":"array","items":{"type":"string"}}},"required":["tenant","granularity","date","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryItemAnalyticsCostEstimate":{"post":{"operationId":"queryItemAnalyticsCostEstimate","description":"Get item cost estimate analytics over time for a board","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"granularity":{"default":"month","type":"string","enum":["day","week","month","quarter","year"]},"date":{"description":"Filter by date. Use ISO dates (2024-01-15) or periods (2024, 2024-01), comparisons like '>=2024', ranges like '2024..2025' or '*..2023-05-01', and relative dates like '@today-7d..@today'. A value without a time covers the whole day, month, or year.","$ref":"#/components/schemas/FilterPropDateInput"},"boardId":{"type":"string"},"sites":{"type":"array","items":{"type":"string"}}},"required":["tenant","granularity","date","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryItemAnalyticsCountByCompliance":{"post":{"operationId":"queryItemAnalyticsCountByCompliance","description":"Get item count grouped by compliance status over time","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"granularity":{"default":"month","type":"string","enum":["day","week","month","quarter","year"]},"date":{"description":"Filter by date. Use ISO dates (2024-01-15) or periods (2024, 2024-01), comparisons like '>=2024', ranges like '2024..2025' or '*..2023-05-01', and relative dates like '@today-7d..@today'. A value without a time covers the whole day, month, or year.","$ref":"#/components/schemas/FilterPropDateInput"},"boardId":{"type":"string"},"sites":{"type":"array","items":{"type":"string"}}},"required":["tenant","granularity","date","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryItemAnalyticsCount":{"post":{"operationId":"queryItemAnalyticsCount","description":"Get total item count over time for a board","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"granularity":{"default":"month","type":"string","enum":["day","week","month","quarter","year"]},"date":{"description":"Filter by date. Use ISO dates (2024-01-15) or periods (2024, 2024-01), comparisons like '>=2024', ranges like '2024..2025' or '*..2023-05-01', and relative dates like '@today-7d..@today'. A value without a time covers the whole day, month, or year.","$ref":"#/components/schemas/FilterPropDateInput"},"boardId":{"type":"string"},"sites":{"type":"array","items":{"type":"string"}}},"required":["tenant","granularity","date","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryItemAnalyticsFacetSite":{"post":{"operationId":"queryItemAnalyticsFacetSite","description":"Get item analytics faceted by site for a board","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"granularity":{"default":"month","type":"string","enum":["day","week","month","quarter","year"]},"date":{"description":"Filter by date. Use ISO dates (2024-01-15) or periods (2024, 2024-01), comparisons like '>=2024', ranges like '2024..2025' or '*..2023-05-01', and relative dates like '@today-7d..@today'. A value without a time covers the whole day, month, or year.","$ref":"#/components/schemas/FilterPropDateInput"},"boardId":{"type":"string"},"sites":{"type":"array","items":{"type":"string"}}},"required":["tenant","granularity","date","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryMunichReApiCallById":{"post":{"operationId":"queryMunichReApiCallById","description":"Get a Munich Re API call by ID or site ID","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"tenant":{},"apiCallId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","apiCallId"],"additionalProperties":false},{"type":"object","properties":{"tenant":{},"siteId":{"type":"string"}},"required":["tenant","siteId"],"additionalProperties":false}]}}}}}},"/api/rpc/queryMunichReReportById":{"post":{"operationId":"queryMunichReReportById","description":"Get the parsed Munich Re Location Risk Intelligence / NATHAN NatCat report for a site.\nUse this when you need natural catastrophe, natural hazard, climate, flood, storm, earthquake,\nor overall risk score details stored from a Munich Re API response. Looks up report fact rows by\nMunich Re location RI API call ID, or the latest report for a site ID.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"tenant":{},"apiCallId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","apiCallId"],"additionalProperties":false},{"type":"object","properties":{"tenant":{},"siteId":{"type":"string"}},"required":["tenant","siteId"],"additionalProperties":false}]}}}}}},"/api/rpc/queryActivitySubscriptions":{"post":{"operationId":"queryActivitySubscriptions","description":"Get activity subscriptions for a board or tag set","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":255},"tags":{"type":"array","items":{"type":"string","enum":["global","compliance-1.0","compliance-2.0","insurance","findings","claims","safety-walks","document"]}}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryAutomation":{"post":{"operationId":"queryAutomation","description":"Get a single automation by ID","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tenant","id"],"additionalProperties":false}}}}}},"/api/rpc/queryBillingDivisions":{"post":{"operationId":"queryBillingDivisions","description":"Get the tenant's billing divisions","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBillingReferences":{"post":{"operationId":"queryBillingReferences","description":"Get the tenant's billing references","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBillingUsage":{"post":{"operationId":"queryBillingUsage","description":"Get the tenant's usage: bytes of stored files, and consulting hours (and their DKK amount) not yet on a booked invoice","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryBlogBySlug":{"post":{"operationId":"queryBlogBySlug","description":"Get a single blog post by slug","tags":["marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"}},"required":["slug"],"additionalProperties":false}}}}}},"/api/rpc/queryBlogs":{"post":{"operationId":"queryBlogs","description":"Get published blog posts with pagination support","tags":["marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["page"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardAgentContext":{"post":{"operationId":"queryBoardAgentContext","description":"Read the context an AI agent needs before working on a board: its name, type, item labels and the instructions a board admin wrote for agents, rendered as markdown. Call this first whenever a task is scoped to a board and follow the instructions it returns. The agentInstructionsDocument field carries the same text as the raw TipTap document the editor stores; agents should read agentInstructions.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The slug of the board, as listed by queryTenant"}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"bySlug":{"summary":"Context for a board","value":{"tenant":"acme-corp","boardSlug":"fire-safety"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"withInstructions":{"summary":"Board with instructions","value":{"boardId":"69110de38c6dade83515ece7","name":"Fire safety","slug":"fire-safety","type":"compliance-2","itemSingularLabel":"Action","itemPluralLabel":"Actions","archived":false,"agentInstructions":"## How to work on this board\n\n- Always cite the question number.\n- Never close an item without a photo.","agentInstructionsDocument":{"type":"doc","content":[{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"How to work on this board"}]}]}}},"withoutInstructions":{"summary":"Board without instructions","value":{"boardId":"69110de38c6dade83515ece7","name":"Fire safety","slug":"fire-safety","type":"compliance-2","itemSingularLabel":"Action","itemPluralLabel":"Actions","archived":false,"agentInstructions":null,"agentInstructionsDocument":null}}}}}}}}},"/api/rpc/queryBoardAutomations":{"post":{"operationId":"queryBoardAutomations","description":"Get automations for a board","tags":["automations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":"string"}},"required":["tenant","boardId"],"additionalProperties":false}}}}}},"/api/rpc/queryBoardDocumentHistory":{"post":{"operationId":"queryBoardDocumentHistory","description":"List every saved version of a Document board, newest first: revision number, the TipTap document, when it was saved and by whom. Versions are never changed or removed; restoring one saves its content again as a new revision through saveBoardDocument. Requires view access to the board.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The slug of the Document board, as listed by queryTenant"}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"bySlug":{"summary":"History of a document","value":{"tenant":"acme-corp","boardSlug":"how-we-handle-incidents"}}}}}}}},"/api/rpc/queryBoardDocument":{"post":{"operationId":"queryBoardDocument","description":"Read the text of a Document board (a board of type \"document\": one rich-text page people write, for example how a process works). Returns the text as markdown and as the TipTap document the editor stores, plus its revision number and who saved it when. Before anyone has saved, revision, content, markdown, savedAt and savedBy are null. To change the text, send it to saveBoardDocument with this revision as baseRevision. The markdown may simplify tables and collapsible sections; edit through content when the document has those. Requires view access to the board.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The slug of the Document board, as listed by queryTenant"}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"bySlug":{"summary":"Read a document","value":{"tenant":"acme-corp","boardSlug":"how-we-handle-incidents"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"saved":{"summary":"A saved document","value":{"boardId":"69110de38c6dade83515ece7","name":"How we handle incidents","slug":"how-we-handle-incidents","revision":3,"content":{"type":"doc","content":[{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"First hour"}]}]},"markdown":"## First hour","savedAt":"2026-10-17T09:12:00.000Z","savedBy":{"userId":"auth0|65a1b2c3","name":"Jane Doe"}}},"neverSaved":{"summary":"A document nobody has saved yet","value":{"boardId":"69110de38c6dade83515ece7","name":"How we handle incidents","slug":"how-we-handle-incidents","revision":null,"content":null,"markdown":null,"savedAt":null,"savedBy":null}}}}}}}}},"/api/rpc/queryBoardLandingPage":{"post":{"operationId":"queryBoardLandingPage","description":"Read a board's landing page: the page outside the app where members file items without opening the board. Only the claims board has one, at /<tenant>/claims/create. Returns the title, introduction, confirmation message, accent colour and moving background the organization set (null means the default is shown), whether “Powered by 21RISK” is hidden (hidePoweredBy, honoured only while canHidePoweredBy says the organization is on the Enterprise plan), the organization logo, and whether the user may report there (canReport, the board's create:items permission) and open the board to see what they filed (canOpenBoard: View on every item, or View own claims on the Authors row; being responsible for other claims does not count). Any member of the organization can read it.","tags":["boards","claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$","description":"The slug of the board, as listed by queryTenant. Only the claims board has a landing page."}},"required":["tenant","boardSlug"],"additionalProperties":false},"examples":{"claims":{"summary":"The claims report page","value":{"tenant":"acme-corp","boardSlug":"claims"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"customized":{"summary":"A report page with a custom title and colour","value":{"boardId":"69110de38c6dade83515ece7","organizationName":"Acme Corp","organizationLogo":"7c1d3a52-0f1e-4c39-9b1a-2f8b9d6e4a11","title":"Report damage or a loss","introduction":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"Report every loss within 24 hours, however small."}]}]},"confirmation":null,"accentColor":"#0f766e","background":"aurora","hidePoweredBy":true,"canHidePoweredBy":true,"canReport":true,"canOpenBoard":false}}}}}}}}},"/api/rpc/queryBoardNotificationPreferences":{"post":{"operationId":"queryBoardNotificationPreferences","description":"Get the current user notification preferences for a board","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1,"maxLength":255}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/queryBoard":{"post":{"operationId":"queryBoard","description":"Get a single board by id, including permissions and compliance info","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":false},{"type":"object","properties":{"tenant":{},"boardId":{"type":"string"}},"required":["tenant","boardId"],"additionalProperties":false}]},"examples":{"bySlug":{"summary":"Get board by slug","value":{"tenant":"acme-corp","boardSlug":"insurance"}},"byId":{"summary":"Get board by ID","value":{"tenant":"acme-corp","boardId":"69110de38c6dade83515ece7"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Insurance board","value":{"_id":"69110de38c6dade83515ece7","type":"insurance","name":"Insurance","slug":"insurance","parent":null,"createdByUserId":"21risk|64bf8aabf9f51289c3880a3f","createdByName":"Jane Smith","permissions":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:read:natcat","manage:settings"],"requireApproval":false,"compliance":null,"frameworkIds":[],"owners":[]}}}}}}}}},"/api/rpc/queryBoards":{"post":{"operationId":"queryBoards","description":"Get all boards the authenticated user can view, including board type, permissions, and pinned status.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"List of boards with permissions","value":[{"_id":"65609db61989edb7123ec9e8","type":"compliance","name":"IT Security Checklist","parent":null,"position":800,"slug":"it-security-checklist","compliance":{"riskTypeId":"64a1b2c3d4e5f6a7b8c9d0e1"},"permissions":["create:items","update:items","delete:items","view:items"],"pinned":true},{"_id":"63092299f195895df0412799","type":"standard","name":"Fire Safety","parent":null,"position":400,"slug":"fire-safety","compliance":null,"permissions":["create:items","update:items","view:items"],"pinned":false}]}}}}}}}},"/api/rpc/queryClaimDamageTypes":{"post":{"operationId":"queryClaimDamageTypes","description":"List the active damage types of a claims line","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"claimsLine":{"type":"string","enum":["liability","property"]}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryClaimForm":{"post":{"operationId":"queryClaimForm","description":"Get a single claim by item id","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryClaimsAnalyticsOverview":{"post":{"operationId":"queryClaimsAnalyticsOverview","description":"Claim counts and derived finance totals (gross incurred, paid, outstanding), broken down by line, damage type, status, loss year, and timeline period. Accepts the claims collection filters, including site hierarchy, claimsLine, dateOfLoss, financial fields, and c_items_<slug> custom fields. The date filter means updated date; dateOfLoss means date of loss. Use the claims collection facet query for filter options. The server returns timeline.granularity and ordered timeline.buckets with inclusive start and exclusive endExclusive UTC calendar dates. timeline.range contains the resolved timestamp bounds: supplied positive dateOfLoss bounds extend the range; omitted bounds use the first/last matching dated claim. Date exclusions do not extend it. Timeline buckets and loss-year rows include an inclusive date-only dateOfLoss filterPropDate range for list drill-through, intersecting their calendar period with the UTC dates of the resolved reporting range. Explicit timestamp cutoffs are expanded to whole days in drill-through links, so their list counts can differ from the chart. Carry the other collection filters into the list as well. Empty periods have count and money totals of zero; populated periods sum known estimates, or return null when all estimates are unknown, with withoutEstimate indicating incomplete coverage. Claims without a date of loss are excluded from time buckets and counted in totals.withoutDateOfLoss.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"default":"claims","type":"string","const":"claims"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"claimsLine":{"description":"Valid operands: liability, property. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"damageType":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"rootCauseStatus":{"description":"Valid operands: unknown, suspected, confirmed, undetermined. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCauseCategory":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCause":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"rootCauseDescription":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"dateOfLoss":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"worstCaseEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"deductible":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossOutstanding":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netIncurred":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"granularity":{"description":"Reporting period for the loss timeline. When omitted, selects months for up to 24 months, quarters for up to 96 months, otherwise years.","type":"string","enum":["month","quarter","year"]}},"required":["tenant","boardSlug"],"additionalProperties":{}},"examples":{"lossesIn2024AtSelectedSites":{"summary":"Filter claims by sites and loss year","value":{"tenant":"acme-corp","site":"6a90780663e6e5ec7bb41839,6a90780663e6e5ec7bb4183a","dateOfLoss":"2024-01-01..2024-12-31"}},"propertyClaimsOnly":{"summary":"Only property claims","value":{"tenant":"acme-corp","claimsLine":"property"}},"quarterlyLosses":{"summary":"A complete quarterly loss timeline, including empty quarters","value":{"tenant":"acme-corp","dateOfLoss":"2024-01-01..2025-12-31","granularity":"quarter"}}}}}}}},"/api/rpc/queryClaimsRootCauseAnalytics":{"post":{"operationId":"queryClaimsRootCauseAnalytics","description":"Root cause analysis of claims: how many claims and how much gross incurred have a suspected or confirmed root cause, counts per root cause status, gross incurred per root cause category (sub-categories roll up to their category) and per individual root cause, and claims and gross incurred per site and category (bySiteCategory; two or more claims in a cell means the cause recurred at that site). Accepts the claims collection filters, like queryClaimsAnalyticsOverview; granularity is ignored. Category and root cause ids filter the claims list through rootCauseCategory and rootCause.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"default":"claims","type":"string","const":"claims"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"claimsLine":{"description":"Valid operands: liability, property. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"damageType":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"rootCauseStatus":{"description":"Valid operands: unknown, suspected, confirmed, undetermined. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCauseCategory":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"rootCause":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"rootCauseDescription":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"dateOfLoss":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"worstCaseEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"deductible":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossPaid":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"grossOutstanding":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"netIncurred":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"granularity":{"description":"Reporting period for the loss timeline. When omitted, selects months for up to 24 months, quarters for up to 96 months, otherwise years.","type":"string","enum":["month","quarter","year"]}},"required":["tenant","boardSlug"],"additionalProperties":{}},"examples":{"propertyRootCauses":{"summary":"Root causes of property claims","value":{"tenant":"acme-corp","claimsLine":"property"}},"confirmedCausesSince2023":{"summary":"Confirmed causes of losses since 2023","value":{"tenant":"acme-corp","rootCauseStatus":"confirmed","dateOfLoss":">=2023"}}}}}}}},"/api/rpc/queryCommentHistory":{"post":{"operationId":"queryCommentHistory","description":"Get the edit history for an item comment","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"commentId":{}},"required":["tenant","commentId"],"additionalProperties":false}}}}}},"/api/rpc/queryCommentSafe":{"post":{"operationId":"queryCommentSafe","description":"Get a single comment by ID (safe version with limited fields)","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"commentId":{"type":"string"}},"required":["tenant","commentId"],"additionalProperties":false}}}}}},"/api/rpc/queryComment":{"post":{"operationId":"queryComment","description":"Get a single comment by ID","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"commentId":{"type":"string"}},"required":["tenant","commentId"],"additionalProperties":false}}}}}},"/api/rpc/queryCompliance2AnalyticsOverview":{"post":{"operationId":"queryCompliance2AnalyticsOverview","description":"Compliance 2.0 board analytics: current compliance (closed questions of open plus closed; ignored statuses are left out), open, overdue, unassigned and estimated cost totals, the status distribution in board order, compliance per top-level section with how many sites are fully compliant or below half in it, how many sites fall in each 10% compliance band, the ten least compliant sites, the questions still open at the most sites, and open questions by responsible person and by tag. Also returns daily end-of-day open/closed totals for the reporting window, with closures and reopenings (status moves between open and closed on the same question version while the question applies, by people or automations) and the changes that move the totals without anyone answering: questions added to sites, major question changes and the answers they reset, and applicability changes. Accepts the compliance question items collection filters, including status, statusGroup, site hierarchy, responsible, tags, costEstimate, dates, name search, and c_items_<slug> custom fields. Use queryFields and the compliance question items facet query to discover fields and filter options. date filters questions by their last update, as in the list. reportingDate filters UTC reporting days with the standard date filter syntax; omission returns all available history through today. period is null for no selected days; otherwise days counts selected days, which may have gaps. opening holds the open/closed totals before the first selected day and is null for empty or non-contiguous selections. Current totals are independent of reportingDate, with asOf identifying today. History uses current status classifications, board membership and access, counts a question only while it was applicable, and excludes subtasks, deleted questions, non-applicable questions and inaccessible/inactive sites.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"reportingDate":{"description":"Filter UTC reporting days, for example @today-89d..@today, <@today, or 2026-01. Omit for all available history through today. Current compliance totals are independent of this reporting window.","type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":{}},"examples":{"overview":{"summary":"Last 90 days of compliance analytics","value":{"tenant":"21-risk","boardSlug":"compliance-2-analytics-demo","reportingDate":"@today-89d..@today"}},"allHistory":{"summary":"All available history through today, with current compliance","value":{"tenant":"21-risk","boardSlug":"compliance-2-analytics-demo"}},"openAtSite":{"summary":"Current compliance for one site","value":{"tenant":"21-risk","boardSlug":"compliance-2-analytics-demo","site":"^5b7cfc951f4f9a00051cbbce"}}}}}}}},"/api/rpc/queryComplianceItemForm":{"post":{"operationId":"queryComplianceItemForm","description":"Get compliance item form data for a specific item","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string"},"subtaskId":{"type":"string"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryComplianceMatrix":{"post":{"operationId":"queryComplianceMatrix","description":"Get the compliance matrix for a board","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/queryComplianceQuestionHistory":{"post":{"operationId":"queryComplianceQuestionHistory","description":"Get revision history for a compliance question","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"questionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","questionId"],"additionalProperties":false}}}}}},"/api/rpc/queryComplianceQuestionItemForm":{"post":{"operationId":"queryComplianceQuestionItemForm","description":"Get compliance question item form data for a specific item","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"},"asOf":{}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryComplianceQuestionItemsBySite":{"post":{"operationId":"queryComplianceQuestionItemsBySite","description":"Get compliance question items by site or snapshot","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"siteId":{"type":"string"}},"required":["tenant","boardSlug","siteId"],"additionalProperties":false},{"type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"},"snapshotId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","boardSlug","snapshotId"],"additionalProperties":false}]}}}}}},"/api/rpc/queryComplianceQuestions":{"post":{"operationId":"queryComplianceQuestions","description":"Get compliance questions for a board","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/queryCopeExcelImportTemplate":{"post":{"operationId":"queryCopeExcelImportTemplate","description":"Generate a COPE Excel import template","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryCountryRiskActivity":{"post":{"operationId":"queryCountryRiskActivity","description":"Read unrest in countries day by day, the way the pulse of Insurance Analytics → Country risk shows it: GDELT news-coded protests, riots, strikes, property destruction and terrorism per day next to the country's usual day over the past year. Use it to see whether a country is flaring up now: a week at three times its usual level or more, with at least 10 events, is high, the same rule the 21RISK score uses. GDELT codes events from the news, so compare a country with itself, not with other countries. The answer says which days GDELT was read: days outside them have no data rather than no events. For deaths in armed conflict use queryCountryRiskEvents with the conflict layer. Get the countries where the organization has sites from queryCountryRisk.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"countryCodes":{"minItems":1,"maxItems":250,"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$"},"description":"The countries, as ISO 3166 alpha-2 codes such as CO. queryCountryRisk lists the countries where the organization has sites."},"weeks":{"description":"How many weeks back from yesterday to read: 13 by default, up to 53.","type":"integer","minimum":1,"maximum":53}},"required":["tenant","countryCodes"],"additionalProperties":false},"examples":{"quarter":{"summary":"The last 13 weeks in three countries","value":{"tenant":"acme-corp","countryCodes":["CO","DE","DK"]}},"year":{"summary":"A year of unrest in Colombia","value":{"tenant":"acme-corp","countryCodes":["CO"],"weeks":53}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","description":"First day read, YYYY-MM-DD."},"to":{"type":"string","description":"Last day read: yesterday."},"unrest":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string","enum":["protest","strike","riot","propertyDestruction","repression","terrorism","confiscation","mobilisation","armedConflict","massViolence","oneSidedViolence"]},"description":"The categories counted."},"from":{"description":"The first day GDELT was read; earlier days have no unrest data.","type":["string","null"]},"to":{"description":"The last day GDELT was read.","type":["string","null"]},"usualFromDays":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many days each usual day is drawn from: the days GDELT was read in the year before the last 28 days, as the score draws its normal."},"usualKnown":{"type":"boolean","description":"Whether GDELT has the 56 days before the last 28 that a usual day needs, as the score does; until then every `usual` is null."}},"required":["categories","from","to","usualFromDays","usualKnown"]},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"string"},"usual":{"description":"Unrest events on the country's usual day over the year before the last 28 days, or null while there is too little history to know it. Compare a day with it: news coverage differs between countries, so compare a country with itself.","type":["number","null"]},"days":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string"},"unrest":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"GDELT unrest events that day."}},"required":["day","unrest"]},"description":"The days with unrest, oldest first."}},"required":["countryCode","usual","days"]}}},"required":["from","to","unrest","countries"]}}}}}}},"/api/rpc/queryCountryRiskEvents":{"post":{"operationId":"queryCountryRiskEvents","description":"Read the events behind the 21RISK country risk score, the way the map layers of Insurance Analytics → Country risk show them, counted per 0.5° cell (about 55 km) with its most common place. conflict is UCDP armed conflict and violence against civilians with deaths over the 12 months the score counts; unrest is GDELT news-coded protests, riots, strikes, property destruction and terrorism over the last 28 days. GDELT codes events from the news, so places with more coverage show more events: compare a place with itself over time rather than with other countries. Use countryCode for where in a country the events are, for example near which of its sites, and cell for what happened in one place: its events with their dates, types and, for unrest, the news articles.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"layer":{"type":"string","enum":["conflict","unrest"],"description":"conflict: UCDP's armed conflict and violence against civilians, with deaths, over the 12 months up to its latest data, the window the score counts. unrest: GDELT's news-coded protests, riots, strikes, property destruction and terrorism over the last 28 full days."},"countryCode":{"description":"Only this country, as an ISO 3166 alpha-2 code such as CO.","type":"string","pattern":"^[A-Z]{2}$"},"cell":{"description":"One cell, by the cell id an answer gives, such as \"9:-149\": adds its events, newest first, with what each was and, for unrest, the news article it was coded from.","type":"string","pattern":"^-?\\d+:-?\\d+$"}},"required":["tenant","layer"],"additionalProperties":false},"examples":{"conflict":{"summary":"Conflict deaths worldwide, per cell","value":{"tenant":"acme-corp","layer":"conflict"}},"country":{"summary":"Where in Colombia unrest was reported in the last 28 days","value":{"tenant":"acme-corp","layer":"unrest","countryCode":"CO"}},"cell":{"summary":"What happened in one cell, with the news articles","value":{"tenant":"acme-corp","layer":"unrest","cell":"9:-149"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"layer":{"type":"string","enum":["conflict","unrest"]},"from":{"description":"First day counted, YYYY-MM-DD; null when no data of the layer is loaded.","type":["string","null"]},"to":{"description":"Last day counted, YYYY-MM-DD.","type":["string","null"]},"categories":{"type":"array","items":{"type":"string","enum":["protest","strike","riot","propertyDestruction","repression","terrorism","confiscation","mobilisation","armedConflict","massViolence","oneSidedViolence"]},"description":"The categories counted."},"cells":{"type":"array","items":{"type":"object","properties":{"cell":{"type":"string","description":"The cell id, to ask for its events with cell."},"latitude":{"type":"number","description":"The average position of the cell's events."},"longitude":{"type":"number"},"countryCode":{"description":"The country most of them are in.","type":["string","null"]},"place":{"description":"The place most of them are reported at.","type":["string","null"]},"events":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deaths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"UCDP's best estimate of the deaths; null for unrest."},"latest":{"type":"string","description":"The day of the newest event, YYYY-MM-DD."},"types":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"events":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deaths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["type","events","deaths"]},"description":"What the events were, from the publisher's own code, such as Protest or Fighting between armed groups."}},"required":["cell","latitude","longitude","countryCode","place","events","deaths","latest","types"]},"description":"Events per 0.5° cell, about 55 km, most deaths or events first."},"totals":{"type":"object","properties":{"events":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deaths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["events","deaths"]},"events":{"description":"Only with cell: its events, newest first, at most 50, each article once.","type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"YYYY-MM-DD."},"types":{"type":"array","items":{"type":"string"},"description":"What it was; GDELT may code one article as several."},"place":{"type":["string","null"]},"deaths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"url":{"description":"The news article GDELT coded it from; null for UCDP.","type":["string","null"]},"headline":{"description":"The article's headline as its web address spells it, when it does.","type":["string","null"]}},"required":["date","types","place","deaths","url","headline"]}},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"attribution":{"type":"string"}},"required":["name","url","attribution"]},"description":"Show their attribution wherever the events are shown."}},"required":["layer","from","to","categories","cells","totals","sources"]}}}}}}},"/api/rpc/queryCountryRisk":{"post":{"operationId":"queryCountryRisk","description":"Read the 21RISK country risk score for every country, with the organization's sites and total insured value in each for an Insurance period, the way Insurance Analytics → Country risk shows it. The score is 0–100, higher is riskier, and is the highest of four parts: political violence, war, expropriation and biological hazards. An AI model gives it from public data by a fixed rubric: governments' travel advice and health notices (US, UK, German, CDC), World Bank governance scores, UCDP conflict deaths and GDELT news-coded unrest. A country is scored again when those facts change. By default it returns each country's score, parts, band, the score before it last changed, and its sites and insured value; add sites for every site's position and value, and, with countryCode, justifications, advice and history for why a country scores what it does. The scores are an indication from public sources, not underwriting advice; show the sources' attribution with them.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string","description":"Name of the Insurance period whose sites and insured values to show, for example \"2027\". The scores are always the latest."},"countryCode":{"description":"Only this country, as an ISO 3166 alpha-2 code such as CO.","type":"string","pattern":"^[A-Z]{2}$"},"include":{"description":"What to add to each country's score, insured value and site count, which are always returned: sites lists the sites with their insured value and position; justifications each part's reasoning and the facts it cites; advice each government's advice in force, in our words with a link; history every score the country has had. justifications, advice and history need countryCode. Leave it out for the smallest answer.","type":"array","items":{"type":"string","enum":["sites","justifications","advice","history"]}}},"required":["tenant","period"],"additionalProperties":false},"examples":{"portfolio":{"summary":"Every country’s score with the sites and insured value in it","value":{"tenant":"acme-corp","period":"2027"}},"country":{"summary":"Why Colombia scores what it does, with the advice in force and its sites","value":{"tenant":"acme-corp","period":"2027","countryCode":"CO","include":["justifications","advice","history","sites"]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"period":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"baseCurrency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BND","BOB","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KRW","KWD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"],"description":"The currency of every tiv."},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"string"},"countryName":{"type":"string"},"countryEmoji":{"type":"string"},"sites":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The organization’s sites in the country."},"tiv":{"type":"number","description":"Their total insured value this period, in base currency."},"score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The 21RISK country risk score, 0–100; null when not scored yet."},"band":{"anyOf":[{"type":"string","enum":["veryLow","low","moderate","high","veryHigh"]},{"type":"null"}],"description":"The score's band; a country takes the band of its riskiest part. veryLow, from 0: No part shows more than normal risk: governments advise normal precautions, governance is strong, and there are no conflict deaths or outbreaks. low, from 15: Some risk on at least one part, such as a government advising increased caution over unrest or terrorism, a few conflict deaths, somewhat weaker governance, or a health notice listing many countries. moderate, from 35: Raised risk, such as advice against travel to some areas, 25 to 999 conflict deaths in a year, middling governance, or an outbreak in the country. high, from 55: Serious risk, such as a government advising to reconsider travel to the country, 1,000 or more conflict deaths in a year, or weak governance. veryHigh, from 75: Severe risk, such as a government advising against all travel to the country, or very weak governance."},"parts":{"anyOf":[{"type":"object","properties":{"politicalViolence":{"type":"integer","minimum":0,"maximum":100,"description":"Riots, strikes, civil commotion, terrorism and sabotage."},"war":{"type":"integer","minimum":0,"maximum":100,"description":"War, civil war, insurrection and armed conflict."},"expropriation":{"type":"integer","minimum":0,"maximum":100,"description":"Confiscation, nationalisation and other government action against property."},"biological":{"type":"integer","minimum":0,"maximum":100,"description":"Epidemics and other biological hazards."}},"required":["politicalViolence","war","expropriation","biological"],"description":"The four parts of the score, each 0–100; the score is the highest of them."},{"type":"null"}]},"scoredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"When the latest score was given."},"previous":{"anyOf":[{"type":"object","properties":{"score":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"changedAt":{"description":"When the score changed from it.","type":"string","format":"date-time"}},"required":["score","changedAt"]},{"type":"null"}],"description":"The score before it last changed; null when it never has. A country is scored again only when its facts change."},"history":{"description":"Every score, oldest first; only when include has history.","type":"array","items":{"type":"object","properties":{"score":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"parts":{"type":"object","properties":{"politicalViolence":{"type":"integer","minimum":0,"maximum":100,"description":"Riots, strikes, civil commotion, terrorism and sabotage."},"war":{"type":"integer","minimum":0,"maximum":100,"description":"War, civil war, insurrection and armed conflict."},"expropriation":{"type":"integer","minimum":0,"maximum":100,"description":"Confiscation, nationalisation and other government action against property."},"biological":{"type":"integer","minimum":0,"maximum":100,"description":"Epidemics and other biological hazards."}},"required":["politicalViolence","war","expropriation","biological"],"description":"The four parts of the score, each 0–100; the score is the highest of them."},"scoredAt":{"type":"string","format":"date-time"}},"required":["score","parts","scoredAt"]}},"justifications":{"description":"Why each part scores what it does; only when include has justifications.","type":"object","properties":{"politicalViolence":{"type":"object","properties":{"justification":{"type":"string","description":"Why the part scores what it does, in the model’s words, citing facts by ref."},"facts":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string"},"text":{"type":"string"}},"required":["ref","text"]},"description":"The facts the justification cites, each with its ref. Advice is named by publisher and level; its summary is under advice, with the same ref."}},"required":["justification","facts"]},"war":{"type":"object","properties":{"justification":{"type":"string","description":"Why the part scores what it does, in the model’s words, citing facts by ref."},"facts":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string"},"text":{"type":"string"}},"required":["ref","text"]},"description":"The facts the justification cites, each with its ref. Advice is named by publisher and level; its summary is under advice, with the same ref."}},"required":["justification","facts"]},"expropriation":{"type":"object","properties":{"justification":{"type":"string","description":"Why the part scores what it does, in the model’s words, citing facts by ref."},"facts":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string"},"text":{"type":"string"}},"required":["ref","text"]},"description":"The facts the justification cites, each with its ref. Advice is named by publisher and level; its summary is under advice, with the same ref."}},"required":["justification","facts"]},"biological":{"type":"object","properties":{"justification":{"type":"string","description":"Why the part scores what it does, in the model’s words, citing facts by ref."},"facts":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string"},"text":{"type":"string"}},"required":["ref","text"]},"description":"The facts the justification cites, each with its ref. Advice is named by publisher and level; its summary is under advice, with the same ref."}},"required":["justification","facts"]}},"required":["politicalViolence","war","expropriation","biological"]},"advice":{"description":"The travel advice and health notices in force that the score was given from; only when include has advice.","type":"array","items":{"type":"object","properties":{"ref":{"type":"string","description":"How the justifications cite it, such as A1."},"publisher":{"type":"string"},"updatedOn":{"description":"When the publisher last changed it, YYYY-MM-DD.","type":["string","null"]},"level":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"For the whole country, on one scale for every government: 1 normal precautions, 2 increased caution, 3 reconsider or avoid non-essential travel, 4 avoid all travel."},"partsLevel":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The higher level for some areas, when there is one."},"parts":{"type":"array","items":{"type":"string"},"description":"The areas at partsLevel."},"reasons":{"type":"array","items":{"type":"string","enum":["armedConflict","terrorism","civilUnrest","crime","kidnapping","wrongfulDetention","confiscation","health","naturalDisaster","other"]}},"topic":{"description":"The disease, for a health notice.","type":["string","null"]},"summary":{"type":"string","description":"What it advises and why, in our words, never the publisher’s."},"url":{"description":"The publisher’s page.","type":["string","null"]}},"required":["ref","publisher","updatedOn","level","partsLevel","parts","reasons","topic","summary","url"]}}},"required":["countryCode","countryName","countryEmoji","sites","tiv","score","band","parts","scoredAt","previous"]},"description":"Every scored country and every country with sites, highest score first. With countryCode, only that country."},"sites":{"description":"The sites with their insured value and position; only when include has sites.","type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"countryCode":{"type":["string","null"]},"tiv":{"type":"number"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]}},"required":["_id","name","countryCode","tiv","latitude","longitude"]}},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"attribution":{"type":"string"}},"required":["name","url","attribution"]},"description":"The public sources the scores are given from. Show their attribution wherever the scores are shown."}},"required":["period","baseCurrency","countries","sources"]}}}}}}},"/api/rpc/queryField":{"post":{"operationId":"queryField","description":"Get field data for a specific custom column","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"endpoint":{"type":"string","enum":["sites","siteChanges","items","reports","insuranceOverviewSites","insurancePolicies","compliance2BoardSites","compliance2Snapshots","findingsBoardSites","findingsReports","users"]},"boardSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},{"type":"null"}]},"tenant":{},"fieldKey":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z_][a-zA-Z0-9_]*$","description":"The key returned by queryFields. Examples: \"country\" (built-in), \"c_sites_risk_level\" (configurable), and \"c_resp_42_user_id\" (responsibility)."}},"required":["endpoint","boardSlug","tenant","fieldKey"],"additionalProperties":{}},{"type":"object","properties":{"endpoint":{"type":"string","const":"insurance"},"endpointMode":{"type":"string","enum":["values","cope"]},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},"tenant":{},"fieldKey":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z_][a-zA-Z0-9_]*$","description":"The key returned by queryFields. Examples: \"country\" (built-in), \"c_sites_risk_level\" (configurable), and \"c_resp_42_user_id\" (responsibility)."}},"required":["endpoint","endpointMode","boardSlug","tenant","fieldKey"],"additionalProperties":{}}]}}}}}},"/api/rpc/queryFields":{"post":{"operationId":"queryFields","description":"List the built-in, system-managed, custom, and responsibility fields available to a table context. Fields with displayable=false can participate in filtering and sorting according to their capabilities, but cannot have saved column layout settings.","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"endpoint":{"type":"string","enum":["sites","siteChanges","items","reports","insuranceOverviewSites","insurancePolicies","compliance2BoardSites","compliance2Snapshots","findingsBoardSites","findingsReports","users"]},"boardSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},{"type":"null"}]},"tenant":{}},"required":["endpoint","boardSlug","tenant"],"additionalProperties":{}},{"type":"object","properties":{"endpoint":{"type":"string","const":"insurance"},"endpointMode":{"type":"string","enum":["values","cope"]},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},"tenant":{}},"required":["endpoint","endpointMode","boardSlug","tenant"],"additionalProperties":{}}]},"examples":{"sites":{"summary":"List site fields","value":{"tenant":"acme-corp","endpoint":"sites","boardSlug":null}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"sites":{"summary":"Built-in and tenant-specific site fields","value":[{"origin":"builtIn","key":"country","name":"Country","description":"The country of the site address.","type":"Categorical","displayable":true,"defaultVisible":true,"hideable":true,"sortable":true,"filterable":true,"filter":{"type":"filterPropId","targetTable":null,"operand":{"type":"string"}}},{"origin":"custom","id":42,"slug":"certifications","key":"c_sites_certifications","name":"Certifications","description":"Certifications held by the site.","type":"MultiSelect","options":[{"value":"ISO 9001"},{"value":"ISO 14001","color":"#008000"}],"displayable":true,"defaultVisible":true,"hideable":true,"sortable":true,"filterable":true,"filter":{"type":"filterPropId","targetTable":"customColumnConfigSelectOptions","operand":{"type":"string"}},"source":{"tableConfigId":7,"endpoint":"sites","relationship":"owned"}}]}}}}}}}},"/api/rpc/queryFindingForm":{"post":{"operationId":"queryFindingForm","description":"Get finding form data for a specific finding","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryFindingsAnalyticsOverview":{"post":{"operationId":"queryFindingsAnalyticsOverview","description":"Findings board analytics: current backlog, estimated costs, ageing, category/owner breakdowns, daily end-of-day open/closed totals and creation/closure events, and average/median creation-to-latest-closure days for currently closed findings. Accepts the findings collection filters, including status, statusGroup, site/category hierarchy, responsible, tags, costEstimate, dates, name search, and c_items_<slug> custom fields. Use queryFields and the findings collection facet query to discover fields and filter options. date filters findings by their last update, as in the list. The former reporting-window date parameter is now reportingDate: a standard filterPropDate predicate on UTC reporting days. reportingDate=<@today returns all history before today; omission returns all available history through today. Supports equality, comparisons, exclusions, inclusive and open-ended ranges, and null checks. Timestamp expressions compare literally against UTC midnight day keys; events include the whole selected day. Future-only selections return empty history. period is null for no selected days; otherwise days counts selected days, which may have gaps. previousClosure is null without a meaningful contiguous comparison; openingBacklog is null for empty or non-contiguous selections. Current totals are independent of reportingDate, with asOf identifying today. History uses current status classifications, assignments, board membership and access; excludes subtasks, deleted findings and inaccessible/inactive sites. Reopenings affect state and reclosures count again. Available filter options remain unfiltered within accessible findings.","tags":["findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"controls":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"reports":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"verifiedAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"expiresAt":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"reportingDate":{"description":"Filter UTC reporting days, for example @today-89d..@today, <@today, or 2026-01. Omit for all available history through today. Current finding totals are independent of this reporting window.","type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":{}},"examples":{"overview":{"summary":"Last 90 days of findings analytics","value":{"tenant":"21-risk","boardSlug":"findings-analytics-demo","reportingDate":"@today-89d..@today"}},"beforeToday":{"summary":"All available history before today","value":{"tenant":"21-risk","boardSlug":"findings-analytics-demo","reportingDate":"<@today"}},"allHistory":{"summary":"All available history through today, with current backlog","value":{"tenant":"21-risk","boardSlug":"findings-analytics-demo"}},"oneDay":{"summary":"One UTC reporting day","value":{"tenant":"21-risk","boardSlug":"findings-analytics-demo","reportingDate":"2026-01-15"}}}}}}}},"/api/rpc/queryFrameworkTemplates":{"post":{"operationId":"queryFrameworkTemplates","description":"List the 21RISK framework templates (e.g. SOC 2, ISO/IEC 27001) with their requirement and suggested-control counts, how many of those suggested controls the organization does not have yet, and the id of the framework each was adopted as, if any. Adopt one with adoptFrameworkTemplate; list adopted frameworks with queryFrameworks. Needs view access to the Frameworks and Controls board.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryGrcSyncLogsByItem":{"post":{"operationId":"queryGrcSyncLogsByItem","description":"Get GRC sync logs for a specific item","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryGrcSyncStatus":{"post":{"operationId":"queryGrcSyncStatus","description":"Get the tenant's GRC sync status","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryGroupInvoices":{"post":{"operationId":"queryGroupInvoices","description":"Get the tenant's invoices","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryGroupTier":{"post":{"operationId":"queryGroupTier","description":"Get the tenant's tier and compliance documentation","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryInsuranceCurrencyEffect":{"post":{"operationId":"queryInsuranceCurrencyEffect","description":"Measure how much exchange rates moved a period's TIV since the previous period. Returns the values per currency they were entered in (sites, amount in that currency, base-currency value, rate change and currency effect) and the currency effect per site and value key. Amounts are what each value counts toward TIV: as entered, except Business Interruption in a period that takes it as a base value, which is scaled by the site's BI period. The currency effect is the period's values at its own rates minus the same amounts at the previous period's rates.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string","description":"Name of the Insurance period, for example \"2025\"."}},"required":["tenant","period"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"period":{"type":"string"},"previousPeriod":{"description":"The period compared with, or null for the first period.","type":["string","null"]},"currencies":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BND","BOB","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KRW","KWD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"],"description":"The currency the values were entered in."},"sites":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Sites with a value entered in this currency. A site entering two currencies counts in both."},"amountInCurrency":{"type":"number","description":"The values in the currency itself, as they count toward TIV: as entered, except Business Interruption in a period that takes it as a base value, scaled by the site's BI period."},"value":{"type":"number","description":"The same values in base currency: this currency’s share of TIV."},"rateChange":{"description":"How much one unit of the currency is worth in base currency compared with the previous period, as a fraction (0.05 = +5%). Null for the first period.","type":["number","null"]},"currencyEffect":{"type":"number","description":"The part of the TIV change since the previous period caused by exchange rates, in base currency."}},"required":["currency","sites","amountInCurrency","value","rateChange","currencyEffect"]},"description":"One entry per currency values are entered in, largest value first."},"effects":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"key":{"type":"string","description":"The value: a built-in key such as buildings, or the id of one of the period's own value columns (see queryInsurancePeriod's valueColumns)."},"currencyEffect":{"type":"number"}},"required":["siteId","key","currencyEffect"]},"description":"The currency effect per site and value key, in base currency. Values without an effect are left out. Includes the period's other values, which are not part of TIV or of the currency breakdown."}},"required":["period","previousPeriod","currencies","effects"]}}}}}}},"/api/rpc/queryInsuranceFormValues":{"post":{"operationId":"queryInsuranceFormValues","description":"Get insurance COPE form values for a specific site and period","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"periodName":{"type":"string"},"siteId":{"type":"string"}},"required":["tenant","periodName","siteId"],"additionalProperties":false}}}}}},"/api/rpc/queryInsurancePeriod":{"post":{"operationId":"queryInsurancePeriod","description":"Get a single insurance period by name","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"name":{"type":"string"}},"required":["tenant","name"],"additionalProperties":false}}}}}},"/api/rpc/queryInsurancePeriods":{"post":{"operationId":"queryInsurancePeriods","description":"List all insurance periods for the tenant, newest first. Each period starts on its inception date and ends when the next one starts.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false},"examples":{"basic":{"summary":"List all periods","value":{"tenant":"acme-corp"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Insurance periods","value":[{"id":1,"name":"2024","inceptionDate":"2024-01-01T00:00:00.000Z"}]}}}}}}}},"/api/rpc/queryInsuranceValueExcelImportTemplate":{"post":{"operationId":"queryInsuranceValueExcelImportTemplate","description":"Generate an insurance value Excel import template","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryItemChanges":{"post":{"operationId":"queryItemChanges","description":"Get change history for an item","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string"},"childId":{"type":["string","null"]}},"required":["tenant","itemId","childId"],"additionalProperties":false}}}}}},"/api/rpc/queryItemExpiryPeriods":{"post":{"operationId":"queryItemExpiryPeriods","description":"Get an item's history cut into its fixed expiration periods, newest first: a Compliance 2.0 answer's periods come from its question, a finding's from its own expiration interval. For each period: its first and last day, the item's last status in it, and how many comments and files were added in it. The changes inside a period are listed by queryItemChangeHistory with its date filter set to the period, such as 2026-10-01..2026-12-31.","tags":["compliance","findings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$","description":"ID of the item: a Compliance 2.0 answer or a finding."},"asOf":{"description":"Show the periods as they were at this moment: periods end with the one containing it, and later changes are left out. A moment in the future shows the periods as they are now."}},"required":["tenant","itemId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"First day of the period (UTC)."},"end":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"Last day of the period (UTC), inclusive."},"status":{"anyOf":[{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"color":{"type":"string"},"openOrClosed":{"type":"string","enum":["open","closed","ignore"]}},"required":["id","name","color","openOrClosed"]},{"type":"null"}],"description":"The item's last status in the period. A period without status changes keeps the status from before it."},"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Comments written in the period, on the item and its sub-tasks."},"files":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Files added in the period, to the item and its sub-tasks."}},"required":["start","end","status","comments","files"]}},{"type":"null"}],"description":"The item's fixed expiration periods, newest first, from the period it was created in to the current one. Null when the item does not use fixed periods (for an answer, its question decides), or the item is a sub-task."},"examples":{"quarterly":{"summary":"An answer to a question verified every quarter","value":[{"start":"2026-10-01","end":"2026-12-31","status":{"id":12,"name":"To do","color":"#e11d48","openOrClosed":"open"},"comments":0,"files":0},{"start":"2026-07-01","end":"2026-09-30","status":{"id":14,"name":"Completed","color":"#16a34a","openOrClosed":"closed"},"comments":2,"files":3}]}}}}}}}},"/api/rpc/queryLatestUpdates":{"post":{"operationId":"queryLatestUpdates","description":"Get the four newest published product announcements (title, description, cover, product area, authors)","tags":["marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}}}},"/api/rpc/queryMunichReExcelTable":{"post":{"operationId":"queryMunichReExcelTable","description":"Generate a Munich Re pivot table Excel export","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryMyUserTrainingAssignments":{"post":{"operationId":"queryMyUserTrainingAssignments","description":"List the signed-in user’s own trainings in the organization, soonest due first: the campaign, where they stand (not started, in progress, overdue, passed, failed, not completed), the due date and latest score. Open one with queryUserTrainingAssignmentDetails.","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryNatcatRiskScores":{"post":{"operationId":"queryNatcatRiskScores","description":"Portfolio-level Munich Re risk score distribution across insurance sites, in the\nstyle of the Munich Re portfolio risk report. For each risk score (Overall, Earthquake, Storm,\nFlood — preferring defended scores) it returns the Low/Medium/High/Extreme breakdown weighted by\nthe insured values of the given insurance period: percent share, summed TIV, site counts, and the\nlargest sites per class. Use this when a user asks how their portfolio is distributed across\nNatCat risk classes.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string","minLength":1,"description":"The insurance period name, e.g. \"2024\""}},"required":["tenant","period"],"additionalProperties":false}}}}}},"/api/rpc/queryNewsletterSubscription":{"post":{"operationId":"queryNewsletterSubscription","description":"Get whether the current user's email is subscribed to newsletter emails (derived from the unsubscribe suppression list)","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}}}},"/api/rpc/queryNotificationByKey":{"post":{"operationId":"queryNotificationByKey","description":"Get notification template configuration by key","tags":["P3"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"templateKey":{"type":"string","minLength":1,"maxLength":100}},"required":["tenant","templateKey"],"additionalProperties":false}}}}}},"/api/rpc/queryNotificationInbox":{"post":{"operationId":"queryNotificationInbox","description":"Unread notification count for the current user","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"unreadOnly":{"type":"boolean"}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryOrganizationDetail":{"post":{"operationId":"queryOrganizationDetail","description":"Get the tenant's detailed organization profile including core identity fields, creation and modification timestamps, tenant and insurance settings, slug history, SCIM and SSO configuration references, signup behavior, branding settings, billing and subscription-related metadata, notification recipient lists, and verified domains associated with the organization. `lastModified` and `modifiedByUserId` describe the most recent change to the organization's settings: both are null when the settings haven't changed since the organization's change history began, and `modifiedByUserId` is null when 21RISK made the change automatically, such as freezing an inactive organization.","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Detailed organization settings response","value":{"_id":"64f0a1b2c3d4e5f678901234","name":"Example Organization","lastModified":"2026-01-15T10:30:45.000Z","modifiedByUserId":"auth0|example-user-id","createdDate":"2025-11-01T08:00:00.000Z","baseCurrency":"EUR","grcId":null,"grcSync":false,"insuranceEnabled":true,"claimsEnabled":false,"slug":"example-organization","historicSlugs":["example-organization","example-org"],"scimEmailStrategy":"default","economicCustomerNumber":null,"tier":"enterprise","customerId":"cus_exampleCustomer123","subscriptionId":null,"subscriptionItemId":null,"logo":null,"ssoOrganizationId":null,"ssoConnectionId":null,"ssoMappingEmail":null,"respectApprovalStep":false,"signupStrategy":"inviteOnly","sendEmailOnRiskReportPublishEnabled":true,"brandingColor":null,"billingFrequency":null,"billingSubscriptionType":null,"billingSubscriptionUsers":null,"billingSubscriptionFixedAmount":null,"billingAnchorMonth":null,"billingCurrency":"DKK","billingPaymentTermsNumber":null,"billingEmailRecipients":[],"itNotificationEmailRecipients":[],"domains":[{"domain":"example.com"}]}}}}}}}}},"/api/rpc/queryOrganization":{"post":{"operationId":"queryOrganization","description":"Get the tenant's basic organization info including name and domains","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryPolicyForm":{"post":{"operationId":"queryPolicyForm","description":"Get one policy by item id: its name, site, status, owner, linked controls, review interval, when it was last approved and by whom, and when its next review is due. Its documents are read with queryItemFiles.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryResponsibilitiesExcelImportTemplate":{"post":{"operationId":"queryResponsibilitiesExcelImportTemplate","description":"Generate an Excel import template for bulk responsibility assignments","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/queryRiskImprovementCreateContext":{"post":{"operationId":"queryRiskImprovementCreateContext","description":"Get context data for creating a new risk improvement (statuses, permissions, defaults)","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryRiskImprovementForm":{"post":{"operationId":"queryRiskImprovementForm","description":"Get risk improvement form data by ID","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"itemId":{"type":"string","pattern":"^[a-f\\d]{24}$"}},"required":["tenant","itemId"],"additionalProperties":false}}}}}},"/api/rpc/queryRiskImprovementsAnalyticsOverview":{"post":{"operationId":"queryRiskImprovementsAnalyticsOverview","description":"Risk improvement analytics: current totals, open estimated cost, overdue and unassigned backlog, status distribution, open site/category/owner breakdowns, ageing, daily open/closed history and creation/closure activity. Replaces the separate insurance risk-improvement count queries and queryItemAnalyticsCountByStatus. Uses the risk-improvements collection filters, including name search, hierarchical site/category, statusGroup, dates, includes/excludes, and configured c_items_<slug> fields. Discover filters with queryFields and the risk-improvements facet query. date means last updated; reportingDate selects UTC reporting days independently of current totals. Omission includes all available history through today; future-only windows have no history. History follows the currently selected improvements and current status classifications, not historical filter membership. Excludes subtasks, deleted improvements and inaccessible/inactive sites. Reopenings change the backlog; each closure event counts again. Closure duration is creation to latest closure for currently closed improvements whose latest closure falls on a selected day. openingBacklog is null for empty or non-contiguous reporting windows. History is actual revision history, not a forecast. Requires insurance:read:risk-improvements on the insurance board.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardSlug":{"type":"string"},"status":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"statusGroup":{"description":"Valid operands: open, closed, ignore. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"site":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"isSubtask":{"description":"Operands must be true or false, such as \"true\" or \"!false\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"sync":{"description":"Valid operands: not-applicable, no-integration, grc-synced, other-integration. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"source":{"description":"Valid operands: self-inspection, GRC, other, IF, Codan, Paragon, Swiss Re, Chubb, Zürich, Tryg, Allianz, AIG, Marsh, Willis Towers Watson, Aon, Howden. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"category":{"description":"Operands must represent integer IDs, such as \"1,2\" or \"!3\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty.","type":"string"},"responsible":{"description":"Operands must be user IDs, or @me for the signed-in user, such as \"@me\" or \"!@me\". Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"tags":{"description":"Operands must be strings. Comma-separated values for OR, semicolon for AND. Use ! to exclude, ^ for exact match, * for any value, !* for empty. Use the facet query to discover valid values.","type":"string"},"number":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"name":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"date":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"createdDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"completedDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"externalId":{"description":"Plain text means contains. Use operators: contains, equal, startswith, endswith. Prefix with ! to negate.","type":"string"},"costEstimate":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"dueDate":{"description":"ISO dates (2024-01-15), periods (2024, 2024-01), comparisons (>=2024, <2024-06), ranges (2024-01-01..2024-12-31), or relative dates (@today, @today-7d). Units: d, w, m, y. Use * for any date, !* for empty.","type":"string"},"leBefore":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"leAfter":{"description":"Exact match (=42), comparisons (>42, <=42), or ranges (10..20). Use * for any value, !* for empty.","type":"string"},"includes":{"description":"Only include records whose IDs are in this list.","type":"array","items":{"type":"string"}},"excludes":{"description":"Exclude records whose IDs are in this list.","type":"array","items":{"type":"string"}},"reportingDate":{"description":"UTC reporting-day filter, e.g. @today-89d..@today or 2026-01. Omit for all history through today. Independent of current totals and the collection date filter.","type":"string"}},"required":["tenant","boardSlug"],"additionalProperties":{}},"examples":{"overview":{"summary":"Risk improvement overview for the last 90 days","value":{"tenant":"21-risk","boardSlug":"insurance","reportingDate":"@today-89d..@today"}},"backlog":{"summary":"History of currently open improvements","value":{"tenant":"21-risk","boardSlug":"insurance","statusGroup":"open","reportingDate":"2026"}}}}}}}},"/api/rpc/queryRiskModel":{"post":{"operationId":"queryRiskModel","description":"Get a single risk model by ID","tags":["risk-models"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/queryRiskModelsByType":{"post":{"operationId":"queryRiskModelsByType","description":"Get risk models by type ID","tags":["risk-models"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/queryRiskType":{"post":{"operationId":"queryRiskType","description":"Get a single risk type by ID","tags":["risk-models"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"_id":{"type":"string"}},"required":["tenant","_id"],"additionalProperties":false}}}}}},"/api/rpc/querySiteFacet":{"post":{"operationId":"querySiteFacet","description":"Get unique facet values for a site field, optionally constrained by the same filters as querySites.","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"query":{"type":"string"},"boardId":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"name":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"country":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"city":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"region":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"district":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"postcode":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"locality":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"neighborhood":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"tags":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"insurance":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"]},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"groups":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"parent":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"hasAccess":{"anyOf":[{"type":["string","boolean"]},{"type":"object","properties":{"type":{"type":"string","const":"id"},"hasAnyValue":{"type":"boolean"},"include":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false},"exclude":{"type":"object","properties":{"operator":{"type":"string","enum":["OR","AND"]},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"boolean"},"directOnly":{"default":false,"type":"boolean"}},"required":["id","directOnly"],"additionalProperties":false}}},"required":["operator","values"],"additionalProperties":false}},"required":["type"],"additionalProperties":false}]},"createdDate":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"value":{},"precision":{"type":"string","enum":["year","month","day"]}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":["=","!="]},"value":{"type":"null"},"precision":{"not":{}}},"required":["type","opr","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"null"},"relativeAmount":{"type":"number","const":0},"relativeUnit":{"type":"null"}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","enum":[">",">=","=","!=","<","<="]},"relativeSign":{"type":"string","enum":["+","-"]},"relativeAmount":{"type":"integer","minimum":0,"maximum":9007199254740991},"relativeUnit":{"type":"string","enum":["d","w","m","y"]}},"required":["type","opr","relativeSign","relativeAmount","relativeUnit"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"date"},"opr":{"type":"string","const":".."},"startValue":{"anyOf":[{},{"type":"null"}]},"startPrecision":{"type":"string","enum":["year","month","day"]},"startRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"startRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"startRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]},"endValue":{"anyOf":[{},{"type":"null"}]},"endPrecision":{"type":"string","enum":["year","month","day"]},"endRelativeSign":{"anyOf":[{"type":"string","enum":["+","-"]},{"type":"null"}]},"endRelativeAmount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"endRelativeUnit":{"anyOf":[{"type":"string","enum":["d","w","m","y"]},{"type":"null"}]}},"required":["type","opr","startValue","startRelativeSign","startRelativeAmount","startRelativeUnit","endValue","endRelativeSign","endRelativeAmount","endRelativeUnit"],"additionalProperties":false}]}]},"includes":{"minItems":1,"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"after":{"type":"string"},"before":{"type":"string"},"first":{"anyOf":[{},{"type":"string","const":"all"}]},"last":{},"sort":{"anyOf":[{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["name","country","address","city","region","district","postcode","locality","neighborhood","street","latitude","longitude","createdDate","status","parent"]},{"type":"string"}]}}]},"direction":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"array","items":{"type":"string","enum":["asc","desc"]}}]},"facet":{"anyOf":[{"type":"string","enum":["name","country","city","region","district","postcode","locality","neighborhood","tags","insurance","status","groups","parent","hasAccess"]},{"type":"string"}]}},"required":["tenant","facet"],"additionalProperties":{}},"examples":{"customSelect":{"summary":"Get unique values for a custom site select field","value":{"tenant":"acme-corp","facet":"c_sites_test_select"}},"country":{"summary":"Get unique site countries","value":{"tenant":"acme-corp","facet":"country"}}}}}}}},"/api/rpc/querySiteGeoPoints":{"post":{"operationId":"querySiteGeoPoints","description":"Get geographic coordinates for all of the tenant's sites","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/querySiteProximity":{"post":{"operationId":"querySiteProximity","description":"Get proximity analysis between the tenant's sites","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/querySiteResponsibilityAssignments":{"post":{"operationId":"querySiteResponsibilityAssignments","description":"Get responsibility assignments for a site on a specific board","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string","minLength":1},"boardSlug":{"type":"string","minLength":1}},"required":["tenant","siteId","boardSlug"],"additionalProperties":false}}}}}},"/api/rpc/querySite":{"post":{"operationId":"querySite","description":"Get a single site by ID, including address fields and parent hierarchy","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"siteId":{"type":"string"}},"required":["tenant","siteId"],"additionalProperties":false},"examples":{"basic":{"summary":"Get site by ID","value":{"tenant":"acme-corp","siteId":"63092299f195895df0412798"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Site with address and custom fields","value":{"_id":"63092299f195895df0412798","name":"Esbjerg","address":"Frihedsvej 25b, 6700 Esbjerg, Denmark","address_countryCode":"DK","address_country":"Denmark","address_region":"Southern Denmark","address_district":null,"address_cityPlace":"Esbjerg","address_postcode":"6700","address_locality":null,"address_neighborhood":null,"address_street":"Frihedsvej","address_streetNumber":"25b","address_latitude":55.476355,"address_markerLatitude":55.476355,"address_longitude":8.45901,"address_markerlongitude":8.45901,"address_zoom":15,"address_pitch":null,"address_bearing":null,"address_mapstyle":"mapbox://styles/mapbox/satellite-streets-v12","parents":[],"sortKey":["Esbjerg"],"insuranceActive":true,"createdDate":"2022-08-26T19:44:25.000Z","status":"active","hasChildren":false,"parent":null,"tags":[],"c_sites_test_select":"Option 2","c_sites_test_text":"some-text","c_sites_test_number":342,"c_sites_test_date":null,"c_sites_test_id":"asd3234"}}}}}}}}},"/api/rpc/querySitesAllowedColumns":{"post":{"operationId":"querySitesAllowedColumns","description":"Get allowed columns for site bulk import","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/querySitesExcelImportTemplate":{"post":{"operationId":"querySitesExcelImportTemplate","description":"Generate an Excel import template for bulk site creation","tags":["sites"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryTableConfig":{"post":{"operationId":"queryTableConfig","description":"Get table config (custom columns) for a collection endpoint without view settings","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"boardId":{"type":["string","null"]},"collectionEndpointName":{"type":"string","enum":["sites","users","reports","items","insurance","insuranceOverviewSites","insurancePolicies","compliance2BoardSites","compliance2Snapshots","findingsBoardSites","findingsReports","siteChanges"]},"endpointMode":{"type":"string","enum":["values","cope","all","actions","riskImprovements","questions","findings","claims","policies"]}},"required":["tenant","boardId","collectionEndpointName"],"additionalProperties":false},"examples":{"sitesCollection":{"summary":"Get table config for sites","value":{"tenant":"acme-corp","boardId":null,"collectionEndpointName":"sites"}},"itemsOnBoard":{"summary":"Get table config for items on a board","value":{"tenant":"acme-corp","boardId":"69110dc95698f59ccbb48308","collectionEndpointName":"items"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"basic":{"summary":"Table config with custom columns","value":{"id":1,"customColumns":[]}}}}}}}}},"/api/rpc/queryTableView":{"post":{"operationId":"queryTableView","description":"Get table view columns, sorting, and saved filter overrides","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"endpoint":{"type":"string","enum":["sites","siteChanges","items","reports","insuranceOverviewSites","insurancePolicies","compliance2BoardSites","compliance2Snapshots","findingsBoardSites","findingsReports","users"]},"boardSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},{"type":"null"}]},"tenant":{},"viewSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9_-]+$"},{"type":"string","const":"~"}]}},"required":["endpoint","boardSlug","tenant","viewSlug"],"additionalProperties":{}},{"type":"object","properties":{"endpoint":{"type":"string","const":"insurance"},"endpointMode":{"type":"string","enum":["values","cope"]},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},"tenant":{},"viewSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9_-]+$"},{"type":"string","const":"~"}]}},"required":["endpoint","endpointMode","boardSlug","tenant","viewSlug"],"additionalProperties":{}}]},"examples":{"sitesCollection":{"summary":"Get table view for sites","value":{"tenant":"acme-corp","endpoint":"sites","boardSlug":null,"viewSlug":"sites"}},"itemsOnBoard":{"summary":"Get table view for items on a board","value":{"tenant":"acme-corp","endpoint":"items","boardSlug":"risk-board","viewSlug":"actions"}},"insuranceValues":{"summary":"Get the Insurance board Values view","value":{"tenant":"acme-corp","endpoint":"insurance","endpointMode":"values","boardSlug":"insurance","viewSlug":"values"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"itemsOnBoard":{"summary":"Items table view with its server-resolved endpoint mode and a reusable locator that omits endpointMode.","value":{"id":1,"locator":{"endpoint":"items","boardSlug":"risk-board"},"boardSlug":"risk-board","endpoint":"items","endpointMode":"actions","tableView":{"id":1,"name":"actions","slug":"actions","type":"system","columns":[{"name":"status","position":0,"width":null,"visible":true},{"name":"name","position":1,"width":null,"visible":null}],"sorting":[{"name":"status","direction":"asc"}],"filters":[{"name":"status","type":"filterPropId","value":"active"}]},"fields":[],"customColumns":[]}}}}}}}}},"/api/rpc/queryTableViews":{"post":{"operationId":"queryTableViews","description":"List the built-in, shared, and owned private views in an authorized table context","tags":["boards"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"endpoint":{"type":"string","enum":["sites","siteChanges","items","reports","insuranceOverviewSites","insurancePolicies","compliance2BoardSites","compliance2Snapshots","findingsBoardSites","findingsReports","users"]},"boardSlug":{"anyOf":[{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},{"type":"null"}]},"tenant":{}},"required":["endpoint","boardSlug","tenant"],"additionalProperties":{}},{"type":"object","properties":{"endpoint":{"type":"string","const":"insurance"},"endpointMode":{"type":"string","enum":["values","cope"]},"boardSlug":{"type":"string","minLength":1,"maxLength":65,"pattern":"^[a-z0-9_-]+$"},"tenant":{}},"required":["endpoint","endpointMode","boardSlug","tenant"],"additionalProperties":{}}]}}}}}},"/api/rpc/queryTasks":{"post":{"operationId":"queryTasks","description":"Get task counts per board for the current user. Counts include open, top-level board-status items on accessible active sites: assigned to you, assigned to you and due today through seven days ahead, and unassigned.","tags":["items"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryTenant":{"post":{"operationId":"queryTenant","description":"Get the currently authenticated user scoped to a single tenant, including the tenant's boards the user can view and their permissions. Call whoAmI first to list the tenants the user can access and get each slug for the tenantSlug input.","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantSlug":{"type":"string","minLength":1}},"required":["tenantSlug"],"additionalProperties":false},"examples":{"basic":{"summary":"Scope \"me\" to a tenant by its slug","value":{"tenantSlug":"acme-corp"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":"string"},"effective_picture_id":{"type":["string","null"]},"boards":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["folder","compliance","compliance-2","findings","insurance","claims","safety-walks","frameworks","hot-work","user-training","document"]},"slug":{"type":"string"},"parent":{"type":["string","null"]},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pinned":{"type":"boolean"},"permissions":{"type":"array","items":{"type":"string","enum":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:approve:risk-improvements","insurance:read:natcat","manage:settings","transfer:responsibilities","view:items","view:items:authored","update:items:authored","delete:items:authored","view:items:responsible","update:items:responsible","delete:items:responsible"]},"description":"What the user may do on this board."},"compliance":{"anyOf":[{"type":"object","properties":{"riskTypeId":{"type":"string"}},"required":["riskTypeId"]},{"type":"null"}]}},"required":["_id","name","type","slug","parent","position","pinned","permissions","compliance"]}},"tenant":{"type":"object","properties":{"groupOwner":{"type":["boolean","null"]},"groupId":{"type":"string"},"lastLogin":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"status":{"type":"string","enum":["activeMember","deleted","neverSeen","passiveMember"]},"default":{"type":["boolean","null"]},"group":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"historicSlugs":{"type":"array","items":{"type":"string"}},"tier":{"type":"string","enum":["enterprise","premium","free"]},"logo":{"type":["string","null"]},"baseCurrency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BND","BOB","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KRW","KWD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"respectApprovalStep":{"type":"boolean"},"insuranceEnabled":{"type":"boolean"}},"required":["_id","name","slug","historicSlugs","tier","logo","baseCurrency","respectApprovalStep","insuranceEnabled"]},"effectivePermissions":{"type":"object","properties":{"createUsers":{"type":["boolean","null"]},"updateUsers":{"type":["boolean","null"]},"deleteUsers":{"type":["boolean","null"]},"createSites":{"type":["boolean","null"]},"updateSites":{"type":["boolean","null"]},"deleteSites":{"type":["boolean","null"]},"accessAllSites":{"type":"boolean"},"itAdmin":{"type":"boolean"},"billing":{"type":"boolean"},"createBoards":{"type":"boolean"}},"required":["createUsers","updateUsers","deleteUsers","createSites","updateSites","deleteSites","accessAllSites","itAdmin","billing","createBoards"],"description":"The user’s organization-level permissions."}},"required":["groupOwner","groupId","lastLogin","status","default","group","effectivePermissions"]},"insurancePer":{"type":"object","propertyNames":{"type":"string","enum":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:approve:risk-improvements","insurance:read:natcat","manage:settings","transfer:responsibilities","view:items","view:items:authored","update:items:authored","delete:items:authored","view:items:responsible","update:items:responsible","delete:items:responsible"]},"additionalProperties":{"type":"boolean"},"required":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:approve:risk-improvements","insurance:read:natcat","manage:settings","transfer:responsibilities","view:items","view:items:authored","update:items:authored","delete:items:authored","view:items:responsible","update:items:responsible","delete:items:responsible"],"description":"The user’s permissions on the Insurance board."},"videoIntroductions":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","enum":["access-introduction","user-groups-introduction","sites-table","sites-tree","sites-map","sites-groups","sites-activity","sites-more","c2-sites-view","c2-questions","c2-questions-by-site","c2-reports","c2-settings","risk-improvements"]},"title":{"type":"string"},"description":{"type":["string","null"]},"durationSeconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"videoId":{"type":"string"},"thumbnailUrl":{"type":["string","null"]}},"required":["slug","title","description","durationSeconds","videoId","thumbnailUrl"]}},"hasInsuranceAccess":{"type":"boolean"},"hasClaimsAccess":{"type":"boolean"},"groupOwner":{"type":["boolean","null"]},"insuranceBoardId":{"type":"string","description":"Empty when the user has no Insurance board."},"claimsBoardId":{"type":"string","description":"Empty when the user has no Claims board."}},"required":["name","email","effective_picture_id","boards","tenant","insurancePer","videoIntroductions","hasInsuranceAccess","hasClaimsAccess","groupOwner","insuranceBoardId","claimsBoardId"]},"examples":{"basic":{"summary":"Authenticated user with boards and permissions","value":{"name":"Jane Smith","email":"jane@acme.com","effective_picture_id":null,"boards":[{"_id":"65609db61989edb7123ec9e8","name":"IT security checklist","type":"compliance","slug":"it-security-checklist","parent":null,"position":800,"pinned":false,"permissions":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:read:natcat","manage:settings","view:items"],"compliance":{"riskTypeId":"65608f74d8263bf81708bf24"}},{"_id":"69110de38c6dade83515ece7","name":"Insurance","type":"insurance","slug":"insurance","parent":null,"position":-1,"pinned":false,"permissions":["create:items","update:items","delete:items","manage:access","approve:items","insurance:read:cope-values","insurance:update:cope-values","insurance:create:risk-improvements","insurance:read:risk-improvements","insurance:update:risk-improvements","insurance:delete:risk-improvements","insurance:read:natcat","manage:settings"],"compliance":null}],"tenant":{"groupOwner":true,"groupId":"630916ffcfc51a1d8c081510","lastLogin":"2026-04-10T00:00:00.000Z","status":"activeMember","default":null,"group":{"_id":"630916ffcfc51a1d8c081510","name":"ACME Corp","slug":"acme-corp","historicSlugs":["acme-corp"],"tier":"enterprise","logo":null,"baseCurrency":"EUR","respectApprovalStep":false,"insuranceEnabled":true},"effectivePermissions":{"createUsers":true,"updateUsers":true,"deleteUsers":true,"createSites":true,"updateSites":true,"deleteSites":true,"accessAllSites":true,"itAdmin":true,"billing":true,"createBoards":true}},"insurancePer":{"approve:items":true,"create:items":true,"delete:items":true,"update:items":true,"manage:access":true,"insurance:approve:risk-improvements":true,"insurance:delete:risk-improvements":true,"insurance:read:cope-values":true,"insurance:read:risk-improvements":true,"insurance:read:natcat":true,"insurance:update:cope-values":true,"insurance:update:risk-improvements":true,"insurance:create:risk-improvements":true,"manage:settings":true,"transfer:responsibilities":true,"view:items":true},"videoIntroductions":[{"slug":"access-introduction","title":"Manage users","description":"Invite new users and filter the table of users","durationSeconds":252,"videoId":"R6idJGPCiwz3kNwsF9XSCCLt9yRu1fKfQSoZ5AHjidM","thumbnailUrl":"https://image.mux.com/R6idJGPCiwz3kNwsF9XSCCLt9yRu1fKfQSoZ5AHjidM/thumbnail.webp?width=640"}],"hasInsuranceAccess":true,"hasClaimsAccess":true,"groupOwner":true,"insuranceBoardId":"69110de38c6dade83515ece7","claimsBoardId":""}}}}}}}}},"/api/rpc/queryThreadSubscription":{"post":{"operationId":"queryThreadSubscription","description":"Get the current user notification subscription state for an item","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"subjectType":{"type":"string","enum":["riskImprovement","complianceItem","findingItem"]},"subjectId":{"type":"string","minLength":1,"maxLength":255}},"required":["tenant","subjectType","subjectId"],"additionalProperties":false}}}}}},"/api/rpc/queryUpdateBySlug":{"post":{"operationId":"queryUpdateBySlug","description":"Get a single update by slug","tags":["marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"}},"required":["slug"],"additionalProperties":false}}}}}},"/api/rpc/queryUpdatesList":{"post":{"operationId":"queryUpdatesList","description":"List published product announcements, newest first, with only what a list shows: title, summary, cover image, product area, shipping date and authors. Use queryUpdateBySlug for the full text of one announcement.","tags":["marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Zero-based page of 100 announcements, newest first. -1 returns all of them."}},"required":["page"],"additionalProperties":false},"examples":{"firstPage":{"summary":"Newest announcements","value":{"tenant":"acme-corp","page":0}},"all":{"summary":"Every announcement","value":{"tenant":"acme-corp","page":-1}}}}}}}},"/api/rpc/queryUpdates":{"post":{"operationId":"queryUpdates","description":"Get published updates with pagination support","tags":["marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["page"],"additionalProperties":false}}}}}},"/api/rpc/queryUserProfile":{"post":{"operationId":"queryUserProfile","description":"Get the current user profile summary","tags":["users"]}},"/api/rpc/queryUserSafe":{"post":{"operationId":"queryUserSafe","description":"Get a user by ID (safe version with limited fields)","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"user_id":{"type":"string"}},"required":["tenant","user_id"],"additionalProperties":false}}}}}},"/api/rpc/queryUserTrainingAssignmentDetails":{"post":{"operationId":"queryUserTrainingAssignmentDetails","description":"Get one of the signed-in user’s own trainings: the campaign’s video (`videoFileId`, an uploaded MP4 served at /asset/<id>/, or `videoUrl`, a public Vimeo or Mux link), its questions with their options (without the correct answers; `multipleAnswers` asks for every correct option), the pass mark, where the user stands, the attempts left, how many questions of the current attempt are answered (`answeredCount`), finished attempts, and the organization’s name and logo. Answer it one question at a time with answerUserTrainingQuestion, starting at the question after the answered ones.","tags":["compliance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"assignmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The ID of the training: the `id` of an assignment that queryMyUserTrainingAssignments returns."}},"required":["tenant","assignmentId"],"additionalProperties":false}}}}}},"/api/rpc/queryUser":{"post":{"operationId":"queryUser","description":"Get a single user by ID with full details","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"user_id":{"type":"string","description":"The ID of the user: the `user_id` of a user that queryUsers returns."}},"required":["tenant","user_id"],"additionalProperties":false}}}}}},"/api/rpc/queryUsersExcelImportTemplate":{"post":{"operationId":"queryUsersExcelImportTemplate","description":"Generate an Excel import template for bulk user creation","tags":["users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryValuesAgainstInflation":{"post":{"operationId":"queryValuesAgainstInflation","description":"Check whether a period's insured values kept up with inflation since the previous period, the way Insurance Analytics → Inflation shows it. Each site's value is held to prices in its own country from public statistics: buildings and lease improvements to construction prices (consumer prices where a country has none), every other value to consumer prices. Inflation is measured over as many months as the period is long, up to its inception date (the newest published months for a period that starts later), within one price series; figures more than a year old are still used and marked outOfDate. Changes leave exchange rates out, and a site reporting in another currency than its country's is held to local inflation converted to that currency. Returns the inflation per country with its sources, per-value summaries for the portfolio and per country (never summed across values), and every site's values against inflation. By default it returns the inflation per country and the summaries; add sites, history or sources to include for more, and use value and countryCode to narrow the answer. The figures are an indication from public statistics, not a valuation.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"period":{"type":"string","description":"Name of the Insurance period, for example \"2027\"."},"value":{"description":"Compare only this value: a built-in key such as buildings, machineryAndEquipment, stockAndSupplies or businessInterruption, or the id of one of the period's own value columns (see queryInsurancePeriod's valueColumns). Leave it out for every value the period collects.","type":"string"},"countryCode":{"description":"Only the sites in this country, as an ISO 3166 alpha-2 code such as DE.","type":"string","pattern":"^[A-Z]{2}$"},"include":{"description":"What to add to the inflation per country and the per-value summaries, which are always returned: sites lists every site and its values against inflation; history each country's annual change in prices per quarter for the last eight years; sources every price index held for each country. Leave it out for the smallest answer.","type":"array","items":{"type":"string","enum":["sites","history","sources"]}}},"required":["tenant","period"],"additionalProperties":false},"examples":{"summaries":{"summary":"Buildings per country, without site rows","value":{"tenant":"acme-corp","period":"2027","value":"buildings"}},"country":{"summary":"Every value of the sites in Germany, site by site, with the sources","value":{"tenant":"acme-corp","period":"2027","countryCode":"DE","include":["sites","sources"]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"period":{"type":"object","properties":{"name":{"type":"string"},"inceptionDate":{"type":"string","format":"date-time"}},"required":["name","inceptionDate"]},"previousPeriod":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"inceptionDate":{"type":"string","format":"date-time"}},"required":["name","inceptionDate"]},{"type":"null"}],"description":"The period compared with, or null for the first period."},"baseCurrency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BND","BOB","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KRW","KWD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"comparison":{"anyOf":[{"type":"object","properties":{"months":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many months inflation is measured over."},"values":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"title":{"type":"string"},"inTiv":{"type":"boolean"},"kind":{"type":"string","enum":["consumer","construction"],"description":"The index the value is compared with where a country has it."}},"required":["key","title","inTiv","kind"]},"description":"The values sites report in either period, in the Values table’s order."},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"string"},"countryName":{"type":"string"},"countryEmoji":{"type":"string"},"localCurrency":{"anyOf":[{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BND","BOB","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KRW","KWD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"]},{"type":"null"}]},"change":{"type":"object","properties":{"consumer":{"anyOf":[{"type":"object","properties":{"seriesId":{"type":"string"},"precision":{"type":"string","enum":["month","quarter","year"]},"from":{"type":"string","description":"First day of the period the change is measured from."},"to":{"type":"string","description":"First day of the period the change is measured to."},"toEnd":{"type":"string","description":"Last day of that period."},"change":{"type":"number","description":"The price change over the window, as a fraction (0.031 = +3.1%)."},"label":{"type":"string","description":"The series, for example \"DST CPI\"."},"sourceName":{"type":"string","description":"The publisher."},"outOfDate":{"type":"boolean","description":"True when the newest figures are more than a year old: still used, but should be read with care."}},"required":["seriesId","precision","from","to","toEnd","change","label","sourceName","outOfDate"]},{"type":"null"}],"description":"Null when the country has no index of this kind."},"construction":{"anyOf":[{"type":"object","properties":{"seriesId":{"type":"string"},"precision":{"type":"string","enum":["month","quarter","year"]},"from":{"type":"string","description":"First day of the period the change is measured from."},"to":{"type":"string","description":"First day of the period the change is measured to."},"toEnd":{"type":"string","description":"Last day of that period."},"change":{"type":"number","description":"The price change over the window, as a fraction (0.031 = +3.1%)."},"label":{"type":"string","description":"The series, for example \"DST CPI\"."},"sourceName":{"type":"string","description":"The publisher."},"outOfDate":{"type":"boolean","description":"True when the newest figures are more than a year old: still used, but should be read with care."}},"required":["seriesId","precision","from","to","toEnd","change","label","sourceName","outOfDate"]},{"type":"null"}],"description":"Null when the country has no index of this kind."}},"required":["consumer","construction"]},"history":{"type":"object","properties":{"consumer":{"type":"array","items":{"type":"object","properties":{"periodStart":{"type":"string"},"precision":{"type":"string","enum":["month","quarter","year"]},"annualChange":{"type":"number"}},"required":["periodStart","precision","annualChange"]}},"construction":{"type":"array","items":{"type":"object","properties":{"periodStart":{"type":"string"},"precision":{"type":"string","enum":["month","quarter","year"]},"annualChange":{"type":"number"}},"required":["periodStart","precision","annualChange"]}}},"required":["consumer","construction"],"description":"Annual change per period; empty unless include has history."},"sources":{"type":"array","items":{"type":"object","properties":{"seriesId":{"type":"string"},"kind":{"type":"string","enum":["consumer","construction"],"description":"consumer: consumer prices; construction: construction prices."},"label":{"type":"string"},"title":{"type":"string"},"sourceName":{"type":"string"},"datasetUrl":{"type":"string"},"frequency":{"type":"string","enum":["month","quarter","year"]},"basePeriod":{"type":["string","null"]},"latest":{"anyOf":[{"type":"object","properties":{"periodStart":{"type":"string"},"precision":{"type":"string","enum":["month","quarter","year"]}},"required":["periodStart","precision"]},{"type":"null"}]},"retrievedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["seriesId","kind","label","title","sourceName","datasetUrl","frequency","basePeriod","latest","retrievedAt"]},"description":"Every price index held for the country; empty unless include has sources."}},"required":["countryCode","countryName","countryEmoji","localCurrency","change","history","sources"]},"description":"The countries of the sites with values, with the inflation measured there."},"summaries":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"portfolio":{"type":"object","properties":{"previous":{"type":"number","description":"Last period's values, in base currency at last period's rates."},"current":{"type":"number","description":"This period's values, in base currency at last period's rates, so exchange rates add nothing."},"expected":{"type":"number","description":"What the values would be had each risen with its own country’s inflation."},"gap":{"type":"number","description":"current − expected: negative when the values fall short of inflation."},"change":{"description":"The change in the values, as a fraction.","type":["number","null"]},"inflation":{"description":"The inflation the values are held to, weighted by last period’s values, as a fraction.","type":["number","null"]},"status":{"anyOf":[{"type":"string","enum":["below","inLine","above"]},{"type":"null"}]},"counts":{"type":"object","properties":{"below":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inLine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"above":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"new":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"removed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"noInflation":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["below","inLine","above","new","removed","noInflation"],"description":"Sites per status. New and removed values and sites without a price index are not compared."}},"required":["previous","current","expected","gap","change","inflation","status","counts"]},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"string","description":"Empty for sites without a country."},"countryName":{"type":"string"},"countryEmoji":{"type":"string"},"reported":{"type":"number","description":"The value this period, at its own rates, as the Values table shows it."},"tiv":{"type":"number","description":"The country's total insured value this period."},"summary":{"type":"object","properties":{"previous":{"type":"number","description":"Last period's values, in base currency at last period's rates."},"current":{"type":"number","description":"This period's values, in base currency at last period's rates, so exchange rates add nothing."},"expected":{"type":"number","description":"What the values would be had each risen with its own country’s inflation."},"gap":{"type":"number","description":"current − expected: negative when the values fall short of inflation."},"change":{"description":"The change in the values, as a fraction.","type":["number","null"]},"inflation":{"description":"The inflation the values are held to, weighted by last period’s values, as a fraction.","type":["number","null"]},"status":{"anyOf":[{"type":"string","enum":["below","inLine","above"]},{"type":"null"}]},"counts":{"type":"object","properties":{"below":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inLine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"above":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"new":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"removed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"noInflation":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["below","inLine","above","new","removed","noInflation"],"description":"Sites per status. New and removed values and sites without a price index are not compared."}},"required":["previous","current","expected","gap","change","inflation","status","counts"]}},"required":["countryCode","countryName","countryEmoji","reported","tiv","summary"]}}},"required":["key","portfolio","countries"]},"description":"Per value, never summed across values: the portfolio and every country."},"sites":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"},"parents":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"name":{"type":"string"}},"required":["_id","name"]}},"countryCode":{"type":["string","null"]},"tiv":{"type":"number"},"valueStatus":{"type":"string"},"valuesReviewedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"valuesTotalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["_id","name","parents","countryCode","tiv","valueStatus","valuesReviewedCount","valuesTotalCount"]},"description":"The sites with values; empty unless include has sites."},"comparisons":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"key":{"type":"string"},"currency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BND","BOB","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KRW","KWD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"],"description":"The currency the site reports the value in."},"previous":{"type":"number"},"current":{"type":"number"},"reported":{"type":"number"},"change":{"type":["number","null"]},"kind":{"type":"string","enum":["consumer","construction"],"description":"consumer: consumer prices; construction: construction prices."},"inflation":{"description":"The price change the value is held to, in the currency it is reported in.","type":["number","null"]},"converted":{"type":"boolean","description":"True when the site reports in another currency than its country's, so local inflation is converted at the two periods' rates."},"status":{"type":"string","enum":["below","inLine","above","new","removed","noInflation"]}},"required":["siteId","key","currency","previous","current","reported","change","kind","inflation","converted","status"]},"description":"Every site’s value against inflation; empty unless include has sites."}},"required":["months","values","countries","summaries","sites","comparisons"]},{"type":"null"}],"description":"Null for the first period, which has nothing to compare with."}},"required":["period","previousPeriod","baseCurrency","comparison"]}}}}}}},"/api/rpc/queryWatchingBoards":{"post":{"operationId":"queryWatchingBoards","description":"List the boards the current user can watch, with their watch level","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryWeatherWarnings":{"post":{"operationId":"queryWeatherWarnings","description":"Read the official severe weather warnings in force, the way the Insurance map shows them: from MeteoAlarm (Europe's national weather services), the US National Weather Service, Environment and Climate Change Canada and GDACS (tropical cyclones), refreshed every two minutes. Each warning has its level (yellow, orange or red), hazard, the text as published, when it starts and ends, a link to the publisher, and the user's sites on the Insurance board inside its areas. Use scope sites for which sites are under a warning now, and all for everything in force. Credit the publisher wherever a warning is shown, as each one's credit says.","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scope":{"type":"string","enum":["sites","all"],"description":"sites: the warnings in force at the user's active sites on the Insurance board. all: every warning in force from every source, worldwide; often thousands."},"outlines":{"description":"Also return the outlines of the warnings' areas as GeoJSON, simplified to about a kilometre, to draw them on a map. Large: up to a megabyte for all.","type":"boolean"}},"required":["tenant","scope"],"additionalProperties":false},"examples":{"sites":{"summary":"The warnings in force at our sites","value":{"tenant":"acme-corp","scope":"sites"}},"map":{"summary":"Every warning in force, with outlines to draw","value":{"tenant":"acme-corp","scope":"all","outlines":true}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scope":{"type":"string","enum":["sites","all"]},"warnings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"level":{"type":"string","enum":["yellow","orange","red"],"description":"MeteoAlarm's colours, which the other publishers' levels are mapped to."},"hazard":{"type":"string","enum":["wind","snowIce","thunderstorm","fog","highTemperature","lowTemperature","coastalEvent","forestFire","avalanche","rain","flooding","rainFlood","tropicalCyclone","tornado","other"]},"event":{"type":"string","description":"The publisher's name for it, in English where given."},"text":{"type":"object","properties":{"language":{"type":"string","description":"The publisher's language tag, e.g. en-GB."},"event":{"type":"string"},"headline":{"type":["string","null"]},"description":{"type":["string","null"]},"instruction":{"description":"What to do.","type":["string","null"]}},"required":["language","event","headline","description","instruction"],"description":"The warning exactly as published, in English where the publisher gives it. Show it unmodified alongside any summary of yours."},"onset":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"expires":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"credit":{"type":"object","properties":{"credit":{"type":"string","description":"e.g. \"Met Éireann, via EUMETNET – MeteoAlarm\"."},"issuedAt":{"type":"string","format":"date-time"},"url":{"description":"The publisher's page closest to the warning.","type":["string","null"]},"sourceUrl":{"type":"string"},"licenceUrl":{"type":"string"},"disclaimer":{"description":"Shown word for word.","type":["string","null"]}},"required":["credit","issuedAt","url","sourceUrl","licenceUrl","disclaimer"],"description":"Show the credit, the time of issue and the disclaimer wherever the warning is shown."},"areaNames":{"type":"array","items":{"type":"string"},"description":"The publisher's names for its areas."},"siteIds":{"type":"array","items":{"type":"string"},"description":"The user's active sites on the Insurance board inside its areas."}},"required":["id","level","hazard","event","text","onset","expires","credit","areaNames","siteIds"]},"description":"Most severe first, then by the number of sites."},"areas":{"description":"Only with outlines: each outline once, however many warnings cover it.","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"level":{"type":"string","enum":["yellow","orange","red"],"description":"The highest level of its warnings."},"warningIds":{"type":"array","items":{"type":"string"}},"geometry":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"minItems":2,"type":"array","items":{"type":"number"}}}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"minItems":2,"type":"array","items":{"type":"number"}}}}}},"required":["type","coordinates"]}]}},"required":["name","level","warningIds","geometry"]}},"outlinesCredit":{"description":"Only with outlines: show it wherever the outlines are drawn.","type":"string"},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Every warning in force, worldwide."},"outOfDate":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"lastCheckedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["name","lastCheckedAt"]},"description":"Sources not checked recently enough: their warnings are left out rather than shown stale."},"awarenessNote":{"type":"string","description":"Show it with the warnings."}},"required":["scope","warnings","total","outOfDate","awarenessNote"]}}}}}}},"/api/rpc/queryWeeklyDigestBoards":{"post":{"operationId":"queryWeeklyDigestBoards","description":"List the current user's boards with their weekly-digest inclusion level","tags":["me"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/resolveFile":{"post":{"operationId":"resolveFile","description":"Resolve a 21RISK file UUID to a temporary signed download URL after verifying tenant access.","tags":["public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"fileUuid":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["tenant","fileUuid"],"additionalProperties":false},"examples":{"basic":{"summary":"Resolve a file UUID","value":{"tenant":"acme-corp","fileUuid":"814d6ca1-df22-4749-8258-bf22280ee3d7"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"examples":{"success":{"summary":"Resolved file download URL","value":{"fileUuid":"814d6ca1-df22-4749-8258-bf22280ee3d7","assetLink":"/asset/814d6ca1-df22-4749-8258-bf22280ee3d7/","downloadUrl":"https://assets.21risk.com/814d6ca1-df22-4749-8258-bf22280ee3d7/?token=...","expiresInSeconds":86400,"expiresAt":"2026-07-08T10:00:00.000Z","file":{"_id":"814d6ca1-df22-4749-8258-bf22280ee3d7","name":"risk-model-v0.2.xlsx","size":25484,"mimeType":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}}}}}}}}}},"/api/rpc/querySCIMConnection":{"post":{"operationId":"querySCIMConnection","description":"Get a SCIM connection by ID","tags":["scim"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"scimConnectionId":{"type":"string"}},"required":["tenant","scimConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/querySSOConnection":{"post":{"operationId":"querySSOConnection","description":"Get an SSO connection by ID","tags":["sso"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"ssoConnectionId":{"type":"string"}},"required":["tenant","ssoConnectionId"],"additionalProperties":false}}}}}},"/api/rpc/whoAmI":{"post":{"operationId":"whoAmI","description":"Get the authenticated user (name, email, photo) and the tenants they have access to. Call this first to discover the user and their tenants; then use queryTenant with a tenant's slug to load that tenant's boards, permissions, and other scoped details. When called through an OAuth application (e.g. the MCP server), the response includes an `oAuth` object at the root (the acting application, when it was registered, and when the user granted it access) and, on each tenant, an `oAuth` object with that application's read/write access. These application permissions cap what the user can do here: if a tenant's `oAuth.access` is \"read\" (not \"full\"), writes to that tenant are rejected even if the user themselves has write permission (they would still be able to write via the 21RISK web app). For a regular web-app session the `oAuth` fields are `null`.","tags":["me"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":"string"},"photo":{"type":["string","null"]},"admin21RISK":{"type":"boolean","description":"Whether the user is 21RISK staff."},"oAuth":{"anyOf":[{"type":"object","properties":{"application":{"type":"object","properties":{"name":{"type":"string"},"createdAt":{"description":"When the application was registered.","type":"string","format":"date-time"}},"required":["name","createdAt"]},"consentIssuedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"When the user granted the application access."}},"required":["application","consentIssuedAt"]},{"type":"null"}],"description":"The OAuth application acting on the user’s behalf; null for a 21RISK web-app session."},"tenants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","description":"Pass as tenantSlug to queryTenant, or as tenant to RPCs."},"logo":{"type":["string","null"]},"tier":{"type":"string","enum":["enterprise","premium","free"]},"frozen":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"When the organization was frozen; null unless frozen. A frozen organization accepts no edits."},"groupOwner":{"type":"boolean"},"status":{"type":"string","enum":["activeMember","deleted","neverSeen","passiveMember"]},"default":{"type":"boolean"},"oAuth":{"anyOf":[{"type":"object","properties":{"access":{"type":"string","enum":["read","full"],"description":"The application’s access to this tenant; writes need \"full\"."}},"required":["access"]},{"type":"null"}]}},"required":["id","name","slug","logo","tier","frozen","groupOwner","status","default","oAuth"]}}},"required":["name","email","photo","admin21RISK","oAuth","tenants"]},"examples":{"basic":{"summary":"Authenticated user accessing via an OAuth application","value":{"name":"Jane Smith","email":"jane@acme.com","photo":null,"admin21RISK":false,"oAuth":{"application":{"name":"Claude","createdAt":"2026-01-15T10:00:00.000Z"},"consentIssuedAt":"2026-06-20T09:00:00.000Z"},"tenants":[{"id":"630916ffcfc51a1d8c081510","name":"ACME Corp","slug":"acme-corp","logo":null,"tier":"enterprise","frozen":null,"groupOwner":true,"status":"activeMember","default":true,"oAuth":{"access":"read"}}]}}}}}}}}},"/api/rpc/queryCopeValuesWhatIf":{"post":{"operationId":"queryCopeValuesWhatIf","description":"Query COPE what-if values for a bulk import job","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","minLength":1},"periodSlug":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId","periodSlug"],"additionalProperties":false}}}}}},"/api/rpc/queryGrcReconciliation":{"post":{"operationId":"queryGrcReconciliation","description":"Query GRC reconciliation differences","tags":["grc"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{}},"required":["tenant"],"additionalProperties":false}}}}}},"/api/rpc/queryInsuranceValuesWhatIf":{"post":{"operationId":"queryInsuranceValuesWhatIf","description":"Query insurance what-if values for a bulk import job","tags":["insurance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenant":{},"bulkImportJobId":{"type":"string","pattern":"^insurance_bulk_[0-9a-f]{28}$"},"periodSlug":{"type":"string","minLength":1}},"required":["tenant","bulkImportJobId","periodSlug"],"additionalProperties":false}}}}}}},"components":{"schemas":{"updateReportItems__schema0":{"anyOf":[{"type":["string","number","boolean","null"]},{"type":"array","items":{"$ref":"#/components/schemas/updateReportItems__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateReportItems__schema0"}}]},"updateRiskModel__schema0":{"anyOf":[{"type":["string","number","boolean","null"]},{"type":"array","items":{"$ref":"#/components/schemas/updateRiskModel__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/updateRiskModel__schema0"}}]},"FilterPropDateInput":{}},"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/api/v1/oauth/token","scopes":{}}}}}},"security":[{"oauth2":[]}]}