Defines which companies have access to view and map this attribute. The all and
exclusion permission types are broad grants that only Narrative may use, and map
permissions cannot be broader than view permissions.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Narrative I/O Knowledge Base","colors":{"primary":"#1438F5","light":"#F4F7FB","dark":"#010A28"},"logo":{"light":"https://mintcdn.com/narrative-07c7a1f7/ia6SQX79O4nc7uYf/logo/banner.png?fit=max\u0026auto=format\u0026n=ia6SQX79O4nc7uYf\u0026q=85\u0026s=99860b25011c79366624a87d1f648861","dark":"https://mintcdn.com/narrative-07c7a1f7/ia6SQX79O4nc7uYf/logo/banner-dark.png?fit=max\u0026auto=format\u0026n=ia6SQX79O4nc7uYf\u0026q=85\u0026s=604f9688855cf1123b9eddfc8a5bf0e5"},"favicon":"https://mintcdn.com/narrative-07c7a1f7/DaYE2y2_p0IkASZU/favicon.svg?fit=max\u0026auto=format\u0026n=DaYE2y2_p0IkASZU\u0026q=85\u0026s=9961047bdb2aaf9298577e1c3e624c24","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Open Narrative","href":"https://app.narrative.io"}},"footer":{"socials":{"github":"https://github.com/narrative-io","linkedin":"https://linkedin.com/company/narrative-io"}},"seo":{"indexing":"navigable"},"integrations":{"fathom":{"siteId":"WELVPSSZ"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Release Notes","icon":"clock-rotate-left","href":"/release-notes"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"narrative-07c7a1f7","hasAudioNarration":false,"actualSubdomain":"narrative-07c7a1f7","customDomains":["docs.narrative.io"],"gitSource":{"type":"github","owner":"narrative-io","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adfbc2a0ebb9369b64e1802","collectionId":"53051c3e-1a35-408e-ae59-3afa2f8501b5","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfbc2a0ebb9369b64e1802"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfbc2a0ebb9369b64e1802","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API Documentation","count":234},{"language":"default","tag":"Reference","count":111},{"language":"default","tag":"Connectors","count":102},{"language":"default","tag":"All connectors","count":100},{"language":"default","tag":"Architecture Reference","count":76},{"language":"default","tag":"Agent Conversations","count":63},{"language":"default","tag":"Concepts","count":62},{"language":"default","tag":"Guides","count":58},{"language":"default","tag":"Errors","count":54},{"language":"default","tag":"NQL","count":36}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/attributes/create-an-attribute","slug":"/api-reference/attributes/create-an-attribute","pageMetadata":{"title":"Create an attribute","description":"Create a new attribute.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /attributes","href":"/api-reference/attributes/create-an-attribute","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a new attribute.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create an attribute","description":"Create a new attribute.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /attributes","href":"/api-reference/attributes/create-an-attribute","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create an attribute","description":"Create a new attribute.","tags":["Attributes"],"security":["41e76819-6ed3-4181-8de2-1681018f7bf0"],"requestBody":"fd338f2e-3aaa-40c6-af18-5b661f4f9567","responses":{"201":"dab419f3-c9c0-48b5-8a8a-b05be57c2d4e","400":"36922a0b-2c48-4192-9d23-e22cef565b38","401":"8933803a-8567-42dc-ae9b-fc14c08429a9","403":"6ce1a27d-1028-4131-bd66-1c0d7c9217d0"},"method":"post","type":"path","servers":["190e6995-21fb-418b-bbfe-8c27e30d5b55","1dc6c444-4c87-47b0-b19f-59c81fc72525"],"path":"/attributes","baseUrlOptions":["https://api-dev.narrative.io","https://api.narrative.io"],"title":"Create an attribute","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["type","items","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.0.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.0.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.0.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.0.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.0.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.0.collaborators","typeLabel":"object"},"type":{"type":"string","description":"An array with elements of any data type.","enum":["array"],"isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"enum\u003cstring>"},"items":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Raw binary values, e.g. geospatial geometries.","enum":["binary"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.0.type","typeLabel":"enum\u003cstring>"},"format":{"type":"string","description":"What the binary values encode. `geometry` values are native geospatial geometries and `wkb` values are\ngeometries encoded as [well-known binary](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary).\nWhen `format` is absent the values are opaque bytes.","enum":["geometry","wkb"],"uniqueKey":"oneOf.0.\\items.oneOf.0.format","typeLabel":"enum\u003cstring>"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.0.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.0.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.0.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.0","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.1.type","typeLabel":"enum\u003cstring>"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.1.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.1","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.2.type","typeLabel":"enum\u003cstring>"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"oneOf.0.\\items.oneOf.2.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"oneOf.0.\\items.oneOf.2.enum","typeLabel":"number\u003cdouble>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.2.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.2.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.3.type","typeLabel":"enum\u003cstring>"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"oneOf.0.\\items.oneOf.3.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"oneOf.0.\\items.oneOf.3.enum","typeLabel":"integer\u003cint64>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.3.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.3.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.3","typeLabel":"object"},{"type":"object","required":["type","properties"],"properties":{"type":{"description":"A record consisting of named fields of any type.","enum":["object"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.type","typeLabel":"enum\u003cstring>"},"properties":{"type":"object","description":"A map from field names to field types.\n\nField names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","additionalProperties":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.0.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.0.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.0.order","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Raw binary values, e.g. geospatial geometries.","enum":["binary"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.order","typeLabel":"integer"},"format":{"type":"string","description":"What the binary values encode. `geometry` values are native geospatial geometries and `wkb` values are\ngeometries encoded as [well-known binary](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary).\nWhen `format` is absent the values are opaque bytes.","enum":["geometry","wkb"],"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.format","typeLabel":"enum\u003cstring>"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2.order","typeLabel":"integer"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.order","typeLabel":"integer"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.enum","typeLabel":"number\u003cdouble>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.order","typeLabel":"integer"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.enum","typeLabel":"integer\u003cint64>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","properties":{"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.5.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.5.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.5.order","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.order","typeLabel":"integer"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.enum","typeLabel":"string[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7.order","typeLabel":"integer"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Semi-structured values that can hold any JSON value.","enum":["variant"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8.order","typeLabel":"integer"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties","typeLabel":"object"},"required":{"description":"An optional array of properties whose values are never missing or null.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.required","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4","typeLabel":"object"},{"type":"object","required":["$ref"],"properties":{"description":{"type":"any","uniqueKey":"oneOf.0.\\items.oneOf.5.description","typeLabel":"any"},"oneOf":{"oneOf":[{"0":{"type":"integer","format":"int64","description":"The ID of the referenced attribute."},"1":{"type":"string","enum":["$this"],"description":"A self-reference to the schema of the attribute in which it appears."}}],"uniqueKey":"oneOf.0.\\items.oneOf.5.\\oneOf","typeLabel":"any"},"type":{"oneOf":[{}],"uniqueKey":"oneOf.0.\\items.oneOf.5.type","typeLabel":"any"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.6.type","typeLabel":"enum\u003cstring>"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.6.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.6.enum","typeLabel":"string[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.6.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.6.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.6","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.7.type","typeLabel":"enum\u003cstring>"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.7.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.7.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.7","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Semi-structured values that can hold any JSON value.","enum":["variant"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.8.type","typeLabel":"enum\u003cstring>"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.8.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.8.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.8","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.0.\\items","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.0.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["type","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.1.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.1.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.1.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.1.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.1.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.1.collaborators","typeLabel":"object"},"type":{"type":"string","description":"Raw binary values, e.g. geospatial geometries.","enum":["binary"],"isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.1.description","typeLabel":"string"},"format":{"type":"string","description":"What the binary values encode. `geometry` values are native geospatial geometries and `wkb` values are\ngeometries encoded as [well-known binary](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary).\nWhen `format` is absent the values are opaque bytes.","enum":["geometry","wkb"],"uniqueKey":"oneOf.1.format","typeLabel":"enum\u003cstring>"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.1.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["type","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.2.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.2.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.2.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.2.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.2.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.2.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.2.collaborators","typeLabel":"object"},"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.2.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","required":["type","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.3.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.3.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.3.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.3.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.3.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.3.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.3.collaborators","typeLabel":"object"},"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.3.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"oneOf.3.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"oneOf.3.enum","typeLabel":"number\u003cdouble>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.3.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.3.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.3","typeLabel":"object"},{"type":"object","required":["type","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.4.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.4.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.4.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.4.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.4.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.4.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.4.collaborators","typeLabel":"object"},"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.4.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"oneOf.4.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"oneOf.4.enum","typeLabel":"integer\u003cint64>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.4.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.4.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.4.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.4","typeLabel":"object"},{"type":"object","required":["type","properties","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","properties":{"value":{"type":"double","validations":["$this.value >= 0.0"]},"iso_4217_currency":{"type":"string","enum":["USD","GBP","JPY"]},"tags":{"type":"array","items":{"type":"string"}}},"required":["value","iso_4217_currency"],"tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.5.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.5.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.5.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.5.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.5.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.5.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.5.collaborators","typeLabel":"object"},"type":{"description":"A record consisting of named fields of any type.","enum":["object"],"type":"string","isRequired":true,"uniqueKey":"oneOf.5.type","typeLabel":"enum\u003cstring>"},"properties":{"type":"object","description":"A map from field names to field types.\n\nField names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","additionalProperties":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.0.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.0.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.0.order","typeLabel":"integer"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Raw binary values, e.g. geospatial geometries.","enum":["binary"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.order","typeLabel":"integer"},"format":{"type":"string","description":"What the binary values encode. `geometry` values are native geospatial geometries and `wkb` values are\ngeometries encoded as [well-known binary](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary).\nWhen `format` is absent the values are opaque bytes.","enum":["geometry","wkb"],"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.format","typeLabel":"enum\u003cstring>"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2.order","typeLabel":"integer"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.order","typeLabel":"integer"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.enum","typeLabel":"number\u003cdouble>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.order","typeLabel":"integer"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.enum","typeLabel":"integer\u003cint64>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","properties":{"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.5.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.5.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.5.order","typeLabel":"integer"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.order","typeLabel":"integer"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.enum","typeLabel":"string[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.6","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7.order","typeLabel":"integer"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.7","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Semi-structured values that can hold any JSON value.","enum":["variant"],"isRequired":true,"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8.order","typeLabel":"integer"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.5.properties.additionalProperties.oneOf.8","typeLabel":"object"}],"uniqueKey":"oneOf.5.properties.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.5.properties","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.5.description","typeLabel":"string"},"required":{"description":"An optional array of properties whose values are never missing or null.","type":"array","items":{"type":"string","uniqueKey":"oneOf.5.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.required","typeLabel":"string[]"}},"uniqueKey":"oneOf.5","typeLabel":"object"},{"type":"object","required":["type","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.6.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.6.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.6.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.6.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.6.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.6.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.6.collaborators","typeLabel":"object"},"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"oneOf.6.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.6.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"oneOf.6.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.6.enum","typeLabel":"string[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.6.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.6.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.6","typeLabel":"object"},{"type":"object","required":["type","name","display_name","collaborators","tags"],"example":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}},"properties":{"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.7.name","typeLabel":"string"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.7.display_name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags to associate with the attribute","items":{"type":"string","uniqueKey":"oneOf.7.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.7.tags","typeLabel":"string[]"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute. The `all` and\n`exclusion` permission types are broad grants that only Narrative may use, and `map`\npermissions cannot be broader than `view` permissions.","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.7.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.7.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.7.collaborators","typeLabel":"object"},"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"oneOf.7.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.7.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.7.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.7.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.7","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","tags":["ecommerce","pricing"],"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"dab419f3-c9c0-48b5-8a8a-b05be57c2d4e":{"description":"Created","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","items","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.0.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.0.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.0.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.0.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.tags","typeLabel":"string[]"},"type":{"type":"string","description":"An array with elements of any data type.","enum":["array"],"isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"enum\u003cstring>"},"items":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Raw binary values, e.g. geospatial geometries.","enum":["binary"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.0.type","typeLabel":"enum\u003cstring>"},"format":{"type":"string","description":"What the binary values encode. `geometry` values are native geospatial geometries and `wkb` values are\ngeometries encoded as [well-known binary](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary).\nWhen `format` is absent the values are opaque bytes.","enum":["geometry","wkb"],"uniqueKey":"oneOf.0.\\items.oneOf.0.format","typeLabel":"enum\u003cstring>"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.0.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.0.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.0.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.0","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.1.type","typeLabel":"enum\u003cstring>"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.1.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.1","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.2.type","typeLabel":"enum\u003cstring>"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"oneOf.0.\\items.oneOf.2.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"oneOf.0.\\items.oneOf.2.enum","typeLabel":"number\u003cdouble>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.2.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.2.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.3.type","typeLabel":"enum\u003cstring>"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"oneOf.0.\\items.oneOf.3.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"oneOf.0.\\items.oneOf.3.enum","typeLabel":"integer\u003cint64>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.3.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.3.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.3","typeLabel":"object"},{"type":"object","required":["type","properties"],"properties":{"type":{"description":"A record consisting of named fields of any type.","enum":["object"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.type","typeLabel":"enum\u003cstring>"},"properties":{"type":"object","description":"A map from field names to field types.\n\nField names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","additionalProperties":{"type":"object","properties":{"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties.order","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.oneOf.4.properties.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4.properties","typeLabel":"object"},"required":{"description":"An optional array of properties whose values are never missing or null.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.4.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.4.required","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.4","typeLabel":"object"},{"type":"object","required":["$ref"],"properties":{"description":{"type":"any","uniqueKey":"oneOf.0.\\items.oneOf.5.description","typeLabel":"any"},"oneOf":{"oneOf":[{"0":{"type":"integer","format":"int64","description":"The ID of the referenced attribute."},"1":{"type":"string","enum":["$this"],"description":"A self-reference to the schema of the attribute in which it appears."}}],"uniqueKey":"oneOf.0.\\items.oneOf.5.\\oneOf","typeLabel":"any"},"type":{"oneOf":[{}],"uniqueKey":"oneOf.0.\\items.oneOf.5.type","typeLabel":"any"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.6.type","typeLabel":"enum\u003cstring>"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.6.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.6.enum","typeLabel":"string[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.0.\\items.oneOf.6.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.6.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.6","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.7.type","typeLabel":"enum\u003cstring>"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.7.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.7.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.7","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Semi-structured values that can hold any JSON value.","enum":["variant"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.8.type","typeLabel":"enum\u003cstring>"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.\\items.oneOf.8.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.\\items.oneOf.8.validations","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.oneOf.8","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.0.\\items","typeLabel":"object"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.0.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.0.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.0.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.0.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.0.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.0.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.0.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.0.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.1.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.1.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.1.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.1.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.tags","typeLabel":"string[]"},"type":{"type":"string","description":"Raw binary values, e.g. geospatial geometries.","enum":["binary"],"isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.1.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.1.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.1.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.1.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.1.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.1.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.1.description","typeLabel":"string"},"format":{"type":"string","description":"What the binary values encode. `geometry` values are native geospatial geometries and `wkb` values are\ngeometries encoded as [well-known binary](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary).\nWhen `format` is absent the values are opaque bytes.","enum":["geometry","wkb"],"uniqueKey":"oneOf.1.format","typeLabel":"enum\u003cstring>"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.1.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.2.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.2.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.2.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.2.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.2.tags","typeLabel":"string[]"},"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.2.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.2.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.2.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.2.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.2.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.2.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.2.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.2.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.3.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.3.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.3.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.3.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.3.tags","typeLabel":"string[]"},"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"oneOf.3.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.3.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.3.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.3.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.3.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.3.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.3.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.3.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.3.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"oneOf.3.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"oneOf.3.enum","typeLabel":"number\u003cdouble>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.3.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.3.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.3","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.4.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.4.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.4.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.4.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.4.tags","typeLabel":"string[]"},"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"oneOf.4.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.4.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.4.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.4.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.4.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.4.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.4.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.4.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.4.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"oneOf.4.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"oneOf.4.enum","typeLabel":"integer\u003cint64>[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.4.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.4.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.4.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.4","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","properties","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","properties":{"value":{"order":0,"display_name":"Value","type":"double","validations":["$this.value >= 0.0"]},"iso_4217_currency":{"order":1,"display_name":"Currency","type":"string","enum":["USD","GBP","JPY"]}},"required":["value","iso_4217_currency"],"company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.5.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.5.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.5.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.5.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.5.tags","typeLabel":"string[]"},"type":{"description":"A record consisting of named fields of any type.","enum":["object"],"type":"string","isRequired":true,"uniqueKey":"oneOf.5.type","typeLabel":"enum\u003cstring>"},"properties":{"type":"object","description":"A map from field names to field types.\n\nField names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","additionalProperties":{"type":"object","properties":{"description":{"type":"string","description":"A description of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.description","typeLabel":"string"},"display_name":{"type":"string","description":"A display name of the named field.","uniqueKey":"oneOf.5.properties.additionalProperties.display_name","typeLabel":"string"},"order":{"type":"integer","description":"The position of the field within the object, starting at 0.","uniqueKey":"oneOf.5.properties.additionalProperties.order","typeLabel":"integer"}},"uniqueKey":"oneOf.5.properties.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.5.properties","typeLabel":"object"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.5.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.5.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.5.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.5.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.5.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.5.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.5.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.5.description","typeLabel":"string"},"required":{"description":"An optional array of properties whose values are never missing or null.","type":"array","items":{"type":"string","uniqueKey":"oneOf.5.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.5.required","typeLabel":"string[]"}},"uniqueKey":"oneOf.5","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.6.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.6.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.6.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.6.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.6.tags","typeLabel":"string[]"},"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"oneOf.6.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.6.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.6.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.6.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.6.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.6.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.6.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.6.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.6.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"oneOf.6.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.6.enum","typeLabel":"string[]"},"is_join_key":{"type":"boolean","description":"Whether the field is a join key. Join key values identify an entity, so they can be used to join or\nsample against other datasets. Omitted when `false`.","uniqueKey":"oneOf.6.is_join_key","typeLabel":"boolean"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.6.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.6","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.7.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.7.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.7.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.7.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.7.tags","typeLabel":"string[]"},"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"oneOf.7.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.7.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.7.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.7.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.7.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.7.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.7.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.7.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.7.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.7.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.7.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.7","typeLabel":"object"},{"type":"object","description":"An owned attribute response includes additional fields for attributes owned by the requesting company.","required":["company_id","collaborators","type","id","display_name","name","tags"],"example":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]},"properties":{"id":{"type":"integer","description":"Unique identifier for the attribute.","isRequired":true,"uniqueKey":"oneOf.8.id","typeLabel":"integer"},"display_name":{"type":"string","description":"A public-facing descriptive name for the attribute.","isRequired":true,"uniqueKey":"oneOf.8.display_name","typeLabel":"string"},"name":{"type":"string","description":"An short identifier for the attribute to be used when it is referenced in validations.\n\nAttribute names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","isRequired":true,"uniqueKey":"oneOf.8.name","typeLabel":"string"},"tags":{"type":"array","description":"List of tags associated with the attribute","items":{"type":"string","uniqueKey":"oneOf.8.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.8.tags","typeLabel":"string[]"},"type":{"type":"string","description":"Semi-structured values that can hold any JSON value.","enum":["variant"],"isRequired":true,"uniqueKey":"oneOf.8.type","typeLabel":"enum\u003cstring>"},"company_id":{"type":"integer","description":"The ID of the company that owns this attribute","isRequired":true,"uniqueKey":"oneOf.8.company_id","typeLabel":"integer"},"collaborators":{"type":"object","description":"Defines which companies have access to view and map this attribute","properties":{"view":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.view.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.8.collaborators.view.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.view.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.8.collaborators.view.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.8.collaborators.view.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.8.collaborators.view.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.view.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.8.collaborators.view.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.8.collaborators.view.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.8.collaborators.view.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.view.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.8.collaborators.view.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.8.collaborators.view","typeLabel":"object"},"map":{"oneOf":[{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.map.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.8.collaborators.map.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.map.oneOf.1.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.8.collaborators.map.oneOf.1.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.8.collaborators.map.oneOf.1.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.8.collaborators.map.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.map.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","description":"Company ID","uniqueKey":"oneOf.8.collaborators.map.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"oneOf.8.collaborators.map.oneOf.2.company_ids","typeLabel":"integer[]"}},"uniqueKey":"oneOf.8.collaborators.map.oneOf.2","typeLabel":"object"},{"type":"object","description":"Defines which companies can participate in viewing or mapping attributes.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"oneOf.8.collaborators.map.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.8.collaborators.map.oneOf.3","typeLabel":"object"}],"uniqueKey":"oneOf.8.collaborators.map","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.8.collaborators","typeLabel":"object"},"description":{"type":"string","description":"A description of the type of data the attribute represents, including collection methodology, assumptions, etc.","uniqueKey":"oneOf.8.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for an attribute with the following definition:\n\n```\n{\n \"name\": \"unique_id\",\n \"type\": \"object\",\n \"properties\": {\n \"identifier_value\": {\n \"type\": \"string\"\n },\n \"identifier_type\": {\n \"type\": \"string\"\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"value\"\n ]\n}\n```\n\nValid validations include:\n\n- Is the ID type lowercased?\n\n```sql\n\"identifier_type\": {\n \"type\": \"string\",\n \"validations\": [\n \"lower($this.identifier_type) = $this.identifier_type\"\n ]\n}\n```\n- Was the row collected within the last 90 days?\n\n```sql\n\"timestamp\": {\n \"type\": \"timestamptz\",\n \"validations\": [\n \"$this.timestamp > date_sub(current_date(), 90)\"\n ]\n}\n```","items":{"type":"string","uniqueKey":"oneOf.8.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.8.validations","typeLabel":"string[]"}},"uniqueKey":"oneOf.8","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":123456789,"name":"price","description":"The price of an order, product, or a price component. Currency field accepts ISO 4217 currency codes","display_name":"Price","type":"object","company_id":12345,"collaborators":{"view":{"type":"inclusion","company_ids":[12345,67890]},"map":{"type":"inclusion","company_ids":[12345]}},"tags":["ecommerce","transaction"]}}},"exampleType":"generated"}},"exampleType":"generated"},"36922a0b-2c48-4192-9d23-e22cef565b38":{"description":"The request body is malformed or the attribute definition fails validation.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"8933803a-8567-42dc-ae9b-fc14c08429a9":{"description":"The bearer token is expired or does not grant write access to attributes.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"6ce1a27d-1028-4131-bd66-1c0d7c9217d0":{"description":"The request is not allowed with the token sent, or no valid token was sent.","content":{"application/json":{"schema":{"type":"object","required":["error","error_description"],"properties":{"error":{"type":"string","example":"Unauthorized","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_description":{"type":"string","example":"You are not authorized to use this endpoint.","isRequired":true,"uniqueKey":"error_description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized","error_description":"You are not authorized to use this endpoint."}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"41e76819-6ed3-4181-8de2-1681018f7bf0":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"190e6995-21fb-418b-bbfe-8c27e30d5b55":{"url":"https://api-dev.narrative.io"},"1dc6c444-4c87-47b0-b19f-59c81fc72525":{"url":"https://api.narrative.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"https://docs-cdn.narrative.io/api-reference/main/openapi.json"},"subdomain":"narrative-07c7a1f7","siteName":"Narrative I/O Knowledge Base","title":"Create an attribute - Narrative I/O Knowledge Base","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T20:47:06.386Z","originalFileLocation":"api-reference/attributes/create-an-attribute.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a new attribute.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create an attribute - Narrative I/O Knowledge Base\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a new attribute.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Narrative I/O Knowledge Base\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.narrative.io/api-reference/attributes/create-an-attribute\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://narrative-07c7a1f7.mintlify.app/_mintlify/api/og/v2?division=Attributes\u0026amp;title=Create+an+attribute\u0026amp;description=Create+a+new+attribute.\u0026amp;theme=ee973f81a9436b7406ccdb45\u0026amp;signature=5071b798aa715cb484ae6730398c65d7fb4b6ebe3f1dae67dd6cf2e453f94fe2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create an attribute - Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a new attribute.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://narrative-07c7a1f7.mintlify.app/_mintlify/api/og/v2?division=Attributes\u0026amp;title=Create+an+attribute\u0026amp;description=Create+a+new+attribute.\u0026amp;theme=ee973f81a9436b7406ccdb45\u0026amp;signature=5071b798aa715cb484ae6730398c65d7fb4b6ebe3f1dae67dd6cf2e453f94fe2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1438F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.narrative.io/api-reference/attributes/create-an-attribute\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/attributes/create-an-attribute.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.narrative.io/#organization\",\"name\":\"Narrative I/O Knowledge Base\",\"url\":\"https://docs.narrative.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/narrative-07c7a1f7/ia6SQX79O4nc7uYf/logo/banner.png?fit=max\u0026auto=format\u0026n=ia6SQX79O4nc7uYf\u0026q=85\u0026s=99860b25011c79366624a87d1f648861\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.narrative.io#website\",\"name\":\"Narrative I/O Knowledge Base\",\"url\":\"https://docs.narrative.io\",\"publisher\":{\"@id\":\"https://docs.narrative.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute#webpage\",\"url\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute\",\"name\":\"Create an attribute\",\"description\":\"Create a new attribute.\",\"dateModified\":\"2026-10-26T20:47:06.386Z\",\"isPartOf\":{\"@id\":\"https://docs.narrative.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Attributes\",\"item\":\"https://docs.narrative.io/api-reference/attributes/get-attributes\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create an attribute\",\"item\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute#apireference\",\"headline\":\"Create an attribute\",\"name\":\"Create an attribute\",\"description\":\"Create a new attribute.\",\"url\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute\",\"mainEntityOfPage\":{\"@id\":\"https://docs.narrative.io/api-reference/attributes/create-an-attribute#webpage\"},\"dateModified\":\"2026-10-26T20:47:06.386Z\",\"publisher\":{\"@id\":\"https://docs.narrative.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.narrative.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Narrative I/O Knowledge Base\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Narrative I/O Knowledge Base","nav":{"global":{"anchors":[{"anchor":"Release Notes","icon":"clock-rotate-left","href":"/release-notes"}]},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/getting-started/create-account"}]},{"tab":"Concepts","pages":[{"title":"Concepts","href":"/concepts"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"Cookbooks","pages":[{"title":"Cookbooks","href":"/cookbooks"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference"}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/reference/connectors"}]},{"tab":"NQL","pages":[{"title":"NQL","href":"/nql"}]},{"tab":"API Documentation","groups":[{"group":"Access Rules","pages":[{"title":"Get an Access Rule by id (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules/{access_rule_id}","href":"/api-reference/access-rules/get-an-access-rule-by-id-v2"},{"title":"Update an Access Rule by id (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/access-rules/{access_rule_id}","href":"/api-reference/access-rules/update-an-access-rule-by-id-v2"},{"title":"Delete an access rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/access-rules/{access_rule_id}","href":"/api-reference/access-rules/delete-an-access-rule"},{"title":"Get the query policy of an Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules/{access_rule_id}/query-policy","href":"/api-reference/access-rules/get-the-query-policy-of-an-access-rule"},{"title":"Set the query policy of an Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/access-rules/{access_rule_id}/query-policy","href":"/api-reference/access-rules/set-the-query-policy-of-an-access-rule"},{"title":"Remove the query policy of an Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/access-rules/{access_rule_id}/query-policy","href":"/api-reference/access-rules/remove-the-query-policy-of-an-access-rule"},{"title":"Get an Access Rule by name (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules/{company_slug}/{access_rule_name}","href":"/api-reference/access-rules/get-an-access-rule-by-name-v2"},{"title":"Get all accessible Access Rules (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules","href":"/api-reference/access-rules/get-all-accessible-access-rules-v2"},{"title":"Create a new Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/access-rules","href":"/api-reference/access-rules/create-a-new-access-rule"}]},{"group":"Access Tokens","pages":[{"title":"List System Access Tokens","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /access-tokens/tokens","href":"/api-reference/access-tokens/list-system-access-tokens"},{"title":"Create a System Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /access-tokens/tokens","href":"/api-reference/access-tokens/create-a-system-access-token"},{"title":"Get a System Access Token by id","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /access-tokens/tokens/{access_token_id}","href":"/api-reference/access-tokens/get-a-system-access-token-by-id"},{"title":"Update a System Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /access-tokens/tokens/{access_token_id}","href":"/api-reference/access-tokens/update-a-system-access-token"},{"title":"Delete a System Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /access-tokens/tokens/{access_token_id}","href":"/api-reference/access-tokens/delete-a-system-access-token"}]},{"group":"Agent Conversations","pages":[{"title":"List the calling user's agent conversations","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/conversations","href":"/api-reference/agent-conversations/list-the-calling-users-agent-conversations"},{"title":"Create an agent conversation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /agents/conversations","href":"/api-reference/agent-conversations/create-an-agent-conversation"},{"title":"Get an agent conversation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/conversations/{id}","href":"/api-reference/agent-conversations/get-an-agent-conversation"},{"title":"List conversation messages (delta read by version cursor)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/conversations/{id}/messages","href":"/api-reference/agent-conversations/list-conversation-messages-delta-read-by-version-cursor"},{"title":"Start a new run on the conversation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /agents/conversations/{id}/runs","href":"/api-reference/agent-conversations/start-a-new-run-on-the-conversation"},{"title":"Stop waiting on a handle","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /agents/conversations/{id}/waitables/{handle}/cancel","href":"/api-reference/agent-conversations/stop-waiting-on-a-handle"},{"title":"Get a run's current state","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/runs/{id}","href":"/api-reference/agent-conversations/get-a-runs-current-state"}]},{"group":"App API","pages":[{"title":"Delivery Commands","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v1/app/commands/delivery","href":"/api-reference/app-api/delivery-commands"},{"title":"Delivery Files","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v1/app/commands/delivery/{delivery_id}/files","href":"/api-reference/app-api/delivery-files"},{"title":"Download file","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v1/app/commands/delivery/{delivery_id}/download/{filename}","href":"/api-reference/app-api/download-file"}]},{"group":"App Invites","pages":[{"title":"List App Invites","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /app-invites","href":"/api-reference/app-invites/list-app-invites"},{"title":"Create App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /app-invites","href":"/api-reference/app-invites/create-app-invite"},{"title":"Get App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /app-invites/{id}","href":"/api-reference/app-invites/get-app-invite"},{"title":"Archive App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /app-invites/{id}","href":"/api-reference/app-invites/archive-app-invite"},{"title":"Activate App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /app-invites/{id}/activate","href":"/api-reference/app-invites/activate-app-invite"},{"title":"Get App Invite By Code","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /app-invites/codes/{code}","href":"/api-reference/app-invites/get-app-invite-by-code"}]},{"group":"Apps","pages":[{"title":"Lists apps","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps","href":"/api-reference/apps/lists-apps"},{"title":"Publish app event","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /apps/events","href":"/api-reference/apps/publish-app-event"},{"title":"List installed app interfaces","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/installed/interfaces","href":"/api-reference/apps/list-installed-app-interfaces"},{"title":"List app interfaces","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_id}/interfaces","href":"/api-reference/apps/list-app-interfaces"},{"title":"Get an app interface","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_id}/interfaces/{interface_id}","href":"/api-reference/apps/get-an-app-interface"},{"title":"Lists profiles","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_slug}/profiles","href":"/api-reference/apps/lists-profiles"},{"title":"Get an app's v1 manifest","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_slug}/manifest","href":"/api-reference/apps/get-an-apps-v1-manifest"},{"title":"List Apps","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/apps","href":"/api-reference/apps/list-apps"},{"title":"Create App","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/apps","href":"/api-reference/apps/create-app"},{"title":"Get App","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/apps/{slug}","href":"/api-reference/apps/get-app"},{"title":"Archive App","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/apps/{slug}","href":"/api-reference/apps/archive-app"},{"title":"Replace App Manifest","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/apps/{slug}/manifest","href":"/api-reference/apps/replace-app-manifest"},{"title":"Patch App Manifest","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /v2/apps/{slug}/manifest","href":"/api-reference/apps/patch-app-manifest"},{"title":"Generate App Credentials","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/apps/{slug}/credentials/generate","href":"/api-reference/apps/generate-app-credentials"}]},{"group":"Attributes","pages":[{"title":"Get attributes","description":"Return all attributes.\n\nAuthentication is optional. Anonymous callers get the shared view of every attribute. With a valid\nbearer token, attributes owned by the caller's company are returned as `AttributeOwnedResponse` and\neverything else as `AttributeSharedResponse`. A token that is present but invalid is rejected\nrather than falling back to the anonymous view.\n\nWhen neither `page` nor `per_page` is supplied, every record is returned in a single page.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes","href":"/api-reference/attributes/get-attributes"},{"title":"Create an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /attributes","href":"/api-reference/attributes/create-an-attribute"},{"title":"Get an attribute","description":"Authentication is optional. Anonymous callers get the shared view. With a valid bearer token, an\nattribute owned by the caller's company is returned as `AttributeOwnedResponse`. A token that is\npresent but invalid is rejected rather than falling back to the anonymous view.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes/{attribute_name_or_id}","href":"/api-reference/attributes/get-an-attribute"},{"title":"Update an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /attributes/{attribute_name_or_id}","href":"/api-reference/attributes/update-an-attribute"},{"title":"Delete an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /attributes/{attribute_name_or_id}","href":"/api-reference/attributes/delete-an-attribute"},{"title":"Get attribute references.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes/{attribute_name_or_id}/references","href":"/api-reference/attributes/get-attribute-references"},{"title":"Get the derivation graph around an attribute.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes/{attribute_name_or_id}/derivation-graph","href":"/api-reference/attributes/get-the-derivation-graph-around-an-attribute"}]},{"group":"Auth","pages":[{"title":"Request or refresh an OAuth token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /oauth/token","href":"/api-reference/auth/request-or-refresh-an-oauth-token"}]},{"group":"Authentication","pages":[{"title":"Sign in with a Stytch B2B session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/b2b/login","href":"/api-reference/authentication/sign-in-with-a-stytch-b2b-session-token"},{"title":"Register with a Stytch B2B session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/b2b/register","href":"/api-reference/authentication/register-with-a-stytch-b2b-session-token"},{"title":"Check whether a Stytch B2B member is registered on Narrative","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/b2b/registration-status","href":"/api-reference/authentication/check-whether-a-stytch-b2b-member-is-registered-on-narrative"},{"title":"Exchange a user token for one scoped to another company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/exchange-token","href":"/api-reference/authentication/exchange-a-user-token-for-one-scoped-to-another-company"},{"title":"Sign in with a Stytch session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/login","href":"/api-reference/authentication/sign-in-with-a-stytch-session-token"},{"title":"Register with a Stytch session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/register","href":"/api-reference/authentication/register-with-a-stytch-session-token"},{"title":"Check whether a Stytch Magic Links or OAuth user is registered on Narrative","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/registration-status","href":"/api-reference/authentication/check-whether-a-stytch-magic-links-or-oauth-user-is-registered-on-narrative"}]},{"group":"Billings","pages":[{"title":"Get dataset storage billing","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /admin/billings/dataset-storage-billing","href":"/api-reference/billings/get-dataset-storage-billing"},{"title":"Get dataset storage billing for company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /billings/dataset-storage-billing","href":"/api-reference/billings/get-dataset-storage-billing-for-company"}]},{"group":"Companies","pages":[{"title":"Lists Company Domains","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /companies/{company_id}/domains","href":"/api-reference/companies/lists-company-domains"},{"title":"Get a presigned URL to upload company logo","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /admin/companies/logo-upload-url","href":"/api-reference/companies/get-a-presigned-url-to-upload-company-logo"}]},{"group":"Company","pages":[{"title":"Get a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /companies/{company_id}","href":"/api-reference/company/get-a-company"},{"title":"Get a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /company/{company_id}","href":"/api-reference/company/get-a-company-1"},{"title":"Update a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /company/{company_id}","href":"/api-reference/company/update-a-company"},{"title":"Delete (archive) a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /company/{company_id}","href":"/api-reference/company/delete-archive-a-company"},{"title":"Clear the company's default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /company/{company_id}/data-planes/{data_plane_id}/default-compute-pool","href":"/api-reference/company/clear-the-companys-default-compute-pool-for-a-data-plane"},{"title":"Set the company's default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /company/{company_id}/data-planes/{data_plane_id}/default-compute-pool/{compute_pool_id}","href":"/api-reference/company/set-the-companys-default-compute-pool-for-a-data-plane"},{"title":"Update a user","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /users/{user_id}","href":"/api-reference/company/update-a-user"}]},{"group":"Company Marketing Information","pages":[{"title":"Returns the company and user associated with the token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /company-info/whoami","href":"/api-reference/company-marketing-information/returns-the-company-and-user-associated-with-the-token"},{"title":"Get marketing details on a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /company-info/{company_id}","href":"/api-reference/company-marketing-information/get-marketing-details-on-a-company"}]},{"group":"Compute Pools","pages":[{"title":"List compute pools","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes/{data_plane_id}/compute-pools","href":"/api-reference/compute-pools/list-compute-pools"},{"title":"Create a compute pool","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes/{data_plane_id}/compute-pools","href":"/api-reference/compute-pools/create-a-compute-pool"},{"title":"Get a compute pool by ID","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes/{data_plane_id}/compute-pools/{compute_pool_id}","href":"/api-reference/compute-pools/get-a-compute-pool-by-id"},{"title":"Update a compute pool","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/compute-pools/{compute_pool_id}","href":"/api-reference/compute-pools/update-a-compute-pool"},{"title":"Archive a compute pool","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}/compute-pools/{compute_pool_id}","href":"/api-reference/compute-pools/archive-a-compute-pool"}]},{"group":"Connections","pages":[{"title":"List connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/connections","href":"/api-reference/connections/list-connections"},{"title":"Create a connection","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/connections","href":"/api-reference/connections/create-a-connection"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/connections/{connection_id}","href":"/api-reference/connections/get-a-connection"},{"title":"Archive a connection","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/connections/{connection_id}","href":"/api-reference/connections/archive-a-connection"}]},{"group":"Data Planes","pages":[{"title":"List data planes","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes","href":"/api-reference/data-planes/list-data-planes"},{"title":"Create a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes","href":"/api-reference/data-planes/create-a-data-plane"},{"title":"Get a data plane by ID","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes/{data_plane_id}","href":"/api-reference/data-planes/get-a-data-plane-by-id"},{"title":"Archive a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}","href":"/api-reference/data-planes/archive-a-data-plane"},{"title":"Update a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /data-planes/{data_plane_id}","href":"/api-reference/data-planes/update-a-data-plane"},{"title":"Data plane heartbeat","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes/{data_plane_id}/heartbeat","href":"/api-reference/data-planes/data-plane-heartbeat"},{"title":"Trigger a health check","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes/{data_plane_id}/health-check","href":"/api-reference/data-planes/trigger-a-health-check"},{"title":"Replace the collaborators on a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/collaborators","href":"/api-reference/data-planes/replace-the-collaborators-on-a-data-plane"},{"title":"Add a collaborator to a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/collaborators/{collaborator_company_id}","href":"/api-reference/data-planes/add-a-collaborator-to-a-data-plane"},{"title":"Remove a collaborator from a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}/collaborators/{collaborator_company_id}","href":"/api-reference/data-planes/remove-a-collaborator-from-a-data-plane"},{"title":"Set the default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/default-compute-pool/{compute_pool_id}","href":"/api-reference/data-planes/set-the-default-compute-pool-for-a-data-plane"},{"title":"Clear the default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}/default-compute-pool","href":"/api-reference/data-planes/clear-the-default-compute-pool-for-a-data-plane"}]},{"group":"Dataset Configuration","pages":[{"title":"Preview snapshot expirations","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/retention-policy/preview","href":"/api-reference/dataset-configuration/preview-snapshot-expirations"},{"title":"Upsert retention policies for a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/retention-policy","href":"/api-reference/dataset-configuration/upsert-retention-policies-for-a-dataset"}]},{"group":"Dataset Files","pages":[{"title":"Files added","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/snapshots/{snapshot_id}/files-added","href":"/api-reference/dataset-files/files-added"},{"title":"Find snapshots","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/find-snapshots","href":"/api-reference/dataset-files/find-snapshots"},{"title":"Find files","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/find-files","href":"/api-reference/dataset-files/find-files"},{"title":"Issue file download url","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/snapshots/{snapshot_id}/files-added/{file_id}/download","href":"/api-reference/dataset-files/issue-file-download-url"}]},{"group":"Dataset Refresh","pages":[{"title":"Update the materialized view refresh configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/refresh-schedule","href":"/api-reference/dataset-refresh/update-the-materialized-view-refresh-configuration"},{"title":"Create a refresh schedule for an existing materialized view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/refresh-schedule","href":"/api-reference/dataset-refresh/create-a-refresh-schedule-for-an-existing-materialized-view"},{"title":"Archive the materialized view refresh configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/refresh-schedule","href":"/api-reference/dataset-refresh/archive-the-materialized-view-refresh-configuration"},{"title":"Run a materialized view refresh now","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/refresh-materialized-view","href":"/api-reference/dataset-refresh/run-a-materialized-view-refresh-now"}]},{"group":"Dataset Samples","pages":[{"title":"Sample a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/sample","href":"/api-reference/dataset-samples/sample-a-dataset"},{"title":"Upload a sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/sample","href":"/api-reference/dataset-samples/upload-a-sample"},{"title":"Delete a sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/sample","href":"/api-reference/dataset-samples/delete-a-sample"},{"title":"Sample a dataset (Admin)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/admin/sample","href":"/api-reference/dataset-samples/sample-a-dataset-admin"},{"title":"Request Dataset Sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/request-sample","href":"/api-reference/dataset-samples/request-dataset-sample"},{"title":"Sample a dataset and redact the sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/datasets/{dataset_id}/request-sample","href":"/api-reference/dataset-samples/sample-a-dataset-and-redact-the-sample"},{"title":"Get a dataset's sample redaction","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/redaction","href":"/api-reference/dataset-samples/get-a-datasets-sample-redaction"},{"title":"Upload a dataset's sample redaction","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/redaction","href":"/api-reference/dataset-samples/upload-a-datasets-sample-redaction"},{"title":"Delete a dataset's sample redaction","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/redaction","href":"/api-reference/dataset-samples/delete-a-datasets-sample-redaction"},{"title":"Sample a dataset with its redaction applied","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/sample/redacted","href":"/api-reference/dataset-samples/sample-a-dataset-with-its-redaction-applied"},{"title":"Sampled Mappings","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/sample/mappings","href":"/api-reference/dataset-samples/sampled-mappings"}]},{"group":"Dataset Statistics","pages":[{"title":"Get Statistics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/statistics-configuration","href":"/api-reference/dataset-statistics/get-statistics-configuration"},{"title":"Put Statistics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/statistics-configuration","href":"/api-reference/dataset-statistics/put-statistics-configuration"},{"title":"Disable Statistics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/statistics-configuration","href":"/api-reference/dataset-statistics/disable-statistics-configuration"}]},{"group":"Datasets","pages":[{"title":"Get datasets","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets","href":"/api-reference/datasets/get-datasets"},{"title":"Create a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets","href":"/api-reference/datasets/create-a-dataset"},{"title":"Get a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}","href":"/api-reference/datasets/get-a-dataset"},{"title":"Update a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}","href":"/api-reference/datasets/update-a-dataset"},{"title":"Delete a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}","href":"/api-reference/datasets/delete-a-dataset"},{"title":"Activate a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/activate","href":"/api-reference/datasets/activate-a-dataset"},{"title":"Activate a dataset","deprecated":true,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/activate","href":"/api-reference/datasets/activate-a-dataset-1"},{"title":"Truncate a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/truncate","href":"/api-reference/datasets/truncate-a-dataset"},{"title":"Get admin info for a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/admin","href":"/api-reference/datasets/get-admin-info-for-a-dataset"},{"title":"Update a dataset's partition spec","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/admin/partition-spec","href":"/api-reference/datasets/update-a-datasets-partition-spec"},{"title":"Get dataset statistics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/stats","href":"/api-reference/datasets/get-dataset-statistics"},{"title":"Get detailed statistics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/column-stats","href":"/api-reference/datasets/get-detailed-statistics"},{"title":"Create or Update detailed statistics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/column-stats","href":"/api-reference/datasets/create-or-update-detailed-statistics"},{"title":"Submit recalculation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/column-stats/recalculate","href":"/api-reference/datasets/submit-recalculation"},{"title":"Get detailed statistics for a snapshot","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/column-stats/{snapshot_id}","href":"/api-reference/datasets/get-detailed-statistics-for-a-snapshot"},{"title":"Combine snapshot metrics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/combine","href":"/api-reference/datasets/combine-snapshot-metrics"},{"title":"Ingest a file","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/upload","href":"/api-reference/datasets/ingest-a-file"},{"title":"Issue an ingestion token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/upload/token","href":"/api-reference/datasets/issue-an-ingestion-token"},{"title":"Metrics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/metrics","href":"/api-reference/datasets/metrics"},{"title":"Metrics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/snapshots/{snapshot_id}/column-stats","href":"/api-reference/datasets/metrics-1"},{"title":"Get Metrics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/stats-config","href":"/api-reference/datasets/get-metrics-configuration"},{"title":"Put Metrics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/stats-config","href":"/api-reference/datasets/put-metrics-configuration"},{"title":"Disable configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/stats-config","href":"/api-reference/datasets/disable-configuration"},{"title":"Derive the configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/derive-stats-config","href":"/api-reference/datasets/derive-the-configuration"},{"title":"Enable configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/enable-stats-config","href":"/api-reference/datasets/enable-configuration"},{"title":"List connector interfaces compatible with a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/interfaces","href":"/api-reference/datasets/list-connector-interfaces-compatible-with-a-dataset"}]},{"group":"Derivations","pages":[{"title":"Get derivation rules","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /derivations","href":"/api-reference/derivations/get-derivation-rules"},{"title":"Create a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /derivations","href":"/api-reference/derivations/create-a-derivation-rule"},{"title":"Get a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /derivations/{derivation_id}","href":"/api-reference/derivations/get-a-derivation-rule"},{"title":"Delete a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /derivations/{derivation_id}","href":"/api-reference/derivations/delete-a-derivation-rule"},{"title":"Update a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /derivations/{derivation_id}","href":"/api-reference/derivations/update-a-derivation-rule"}]},{"group":"Encryption Materials","pages":[{"title":"List encryption materials","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /encryption-materials","href":"/api-reference/encryption-materials/list-encryption-materials"},{"title":"Create an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /encryption-materials","href":"/api-reference/encryption-materials/create-an-encryption-material"},{"title":"List decrypted encryption materials","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /encryption-materials/decrypted","href":"/api-reference/encryption-materials/list-decrypted-encryption-materials"},{"title":"Get an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /encryption-materials/{encryption_material_id}","href":"/api-reference/encryption-materials/get-an-encryption-material"},{"title":"Update an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /encryption-materials/{encryption_material_id}","href":"/api-reference/encryption-materials/update-an-encryption-material"},{"title":"Archive an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /encryption-materials/{encryption_material_id}","href":"/api-reference/encryption-materials/archive-an-encryption-material"}]},{"group":"Installations","pages":[{"title":"List Installations","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations","href":"/api-reference/installations/list-installations"},{"title":"Create Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations","href":"/api-reference/installations/create-installation"},{"title":"Whoami Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/whoami","href":"/api-reference/installations/whoami-installation"},{"title":"Get Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/{id}","href":"/api-reference/installations/get-installation"},{"title":"Delete Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /installations/{id}","href":"/api-reference/installations/delete-installation"},{"title":"Create Installation Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{id}/token","href":"/api-reference/installations/create-installation-token"}]},{"group":"Jobs","pages":[{"title":"Get jobs","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /jobs","href":"/api-reference/jobs/get-jobs"},{"title":"Get a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /jobs/{job_id}","href":"/api-reference/jobs/get-a-job"},{"title":"Run a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/run","href":"/api-reference/jobs/run-a-job"},{"title":"Schedule a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/schedule","href":"/api-reference/jobs/schedule-a-job"},{"title":"Complete a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/complete","href":"/api-reference/jobs/complete-a-job"},{"title":"Fail a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/fail","href":"/api-reference/jobs/fail-a-job"},{"title":"Request cancellation of a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/request-cancellation","href":"/api-reference/jobs/request-cancellation-of-a-job"},{"title":"Cancel a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/cancel","href":"/api-reference/jobs/cancel-a-job"},{"title":"Reschedule a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/reschedule","href":"/api-reference/jobs/reschedule-a-job"}]},{"group":"Mappings","pages":[{"title":"Get mappings","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings","href":"/api-reference/mappings/get-mappings"},{"title":"Get mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings/{mapping_id}","href":"/api-reference/mappings/get-mapping"},{"title":"Update a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /mappings/{mapping_id}","href":"/api-reference/mappings/update-a-mapping"},{"title":"Delete a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /mappings/{mapping_id}","href":"/api-reference/mappings/delete-a-mapping"},{"title":"Accept a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mappings/{mapping_id}/accept","href":"/api-reference/mappings/accept-a-mapping"},{"title":"Get mappings for a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings/companies/{company_id}","href":"/api-reference/mappings/get-mappings-for-a-company"},{"title":"Create a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mappings/companies/{company_id}","href":"/api-reference/mappings/create-a-mapping"},{"title":"Get mapping preview","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings/{mapping_id}/sample","href":"/api-reference/mappings/get-mapping-preview"},{"title":"Test Mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mappings/test","href":"/api-reference/mappings/test-mapping"}]},{"group":"MCP Connections","pages":[{"title":"List the calling user's external MCP connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mcp-connections","href":"/api-reference/mcp-connections/list-the-calling-users-external-mcp-connections"},{"title":"Begin connecting an external MCP server","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mcp-connections","href":"/api-reference/mcp-connections/begin-connecting-an-external-mcp-server"},{"title":"OAuth redirect target that receives the authorization code","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mcp-connections/callback","href":"/api-reference/mcp-connections/oauth-redirect-target-that-receives-the-authorization-code"},{"title":"Finish connecting an external MCP server","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mcp-connections/complete","href":"/api-reference/mcp-connections/finish-connecting-an-external-mcp-server"},{"title":"Get one of the calling user's MCP connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mcp-connections/{id}","href":"/api-reference/mcp-connections/get-one-of-the-calling-users-mcp-connections"},{"title":"Delete one of the calling user's MCP connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /mcp-connections/{id}","href":"/api-reference/mcp-connections/delete-one-of-the-calling-users-mcp-connections"}]},{"group":"Model Inference","pages":[{"title":"Run model inference","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /model-inference/run","href":"/api-reference/model-inference/run-model-inference"}]},{"group":"Model Training","pages":[{"title":"Fine-tune a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /model-training/run","href":"/api-reference/model-training/fine-tune-a-model"},{"title":"Train a classifier","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v1/model-training/train-classifier","href":"/api-reference/model-training/train-a-classifier"}]},{"group":"Models","pages":[{"title":"Get models","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /models","href":"/api-reference/models/get-models"},{"title":"Get a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /models/{model_id}","href":"/api-reference/models/get-a-model"},{"title":"Update a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /models/{model_id}","href":"/api-reference/models/update-a-model"},{"title":"Archive a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /models/{model_id}","href":"/api-reference/models/archive-a-model"}]},{"group":"NQL","pages":[{"title":"Validate an NQL statement","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /nql/validate","href":"/api-reference/nql/validate-an-nql-statement"},{"title":"Parse an NQL statement","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /nql/parse","href":"/api-reference/nql/parse-an-nql-statement"},{"title":"Execute an NQL statement","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v1/nql/execute","href":"/api-reference/nql/execute-an-nql-statement"},{"title":"Get a forecast job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /nql/{job_id}","href":"/api-reference/nql/get-a-forecast-job"}]},{"group":"Permissions","pages":[{"title":"Create a permission","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /admin/permissions","href":"/api-reference/permissions/create-a-permission"}]},{"group":"Profiles","pages":[{"title":"Returns app profiles","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/{installation_id}/profiles","href":"/api-reference/profiles/returns-app-profiles"},{"title":"Creates an app profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles","href":"/api-reference/profiles/creates-an-app-profile"},{"title":"Returns profile with {profile_id}","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/{installation_id}/profiles/{app_profile_id}","href":"/api-reference/profiles/returns-profile-with-"},{"title":"Updates an existing app profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /installations/{installation_id}/profiles/{app_profile_id}","href":"/api-reference/profiles/updates-an-existing-app-profile"},{"title":"Enables a profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles/{app_profile_id}/enable","href":"/api-reference/profiles/enables-a-profile"},{"title":"Disables a profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles/{app_profile_id}/disable","href":"/api-reference/profiles/disables-a-profile"},{"title":"Archives a profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles/{app_profile_id}/archive","href":"/api-reference/profiles/archives-a-profile"}]},{"group":"Queries","pages":[{"title":"Get a query by id","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/queries/{query_id}","href":"/api-reference/queries/get-a-query-by-id"},{"title":"Deletes a query","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/queries/{query_id}","href":"/api-reference/queries/deletes-a-query"},{"title":"Get accessible queries","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/queries","href":"/api-reference/queries/get-accessible-queries"},{"title":"Create a query","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/queries","href":"/api-reference/queries/create-a-query"}]},{"group":"Resources","pages":[{"title":"Get buckets","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /resources/buckets","href":"/api-reference/resources/get-buckets"},{"title":"Create bucket","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /resources/buckets","href":"/api-reference/resources/create-bucket"},{"title":"Update access type","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /resources/update-access","href":"/api-reference/resources/update-access-type"}]},{"group":"Schema Inference","pages":[{"title":"Infer the dataset schema of a file passed by multipart file.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/inference","href":"/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file"}]},{"group":"Uploads","pages":[{"title":"Upload a file","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /uploads/{upload_path}","href":"/api-reference/uploads/upload-a-file"}]},{"group":"Usage","pages":[{"title":"Create a usage event","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /usage","href":"/api-reference/usage/create-a-usage-event"}]},{"group":"Views","pages":[{"title":"Get a view by id","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/views/{view_id}","href":"/api-reference/views/get-a-view-by-id"},{"title":"Updates a view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/views/{view_id}","href":"/api-reference/views/updates-a-view"},{"title":"Archives a view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/views/{view_id}","href":"/api-reference/views/archives-a-view"},{"title":"Get accessible views","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/views","href":"/api-reference/views/get-accessible-views"},{"title":"Create a view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/views","href":"/api-reference/views/create-a-view"}]},{"group":"Webhooks","pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /webhooks","href":"/api-reference/webhooks/list-webhook-subscriptions"},{"title":"Create a webhook subscription","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /webhooks","href":"/api-reference/webhooks/create-a-webhook-subscription"},{"title":"Get a webhook subscription by ID","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /webhooks/{webhook_subscription_id}","href":"/api-reference/webhooks/get-a-webhook-subscription-by-id"},{"title":"Archive a webhook subscription","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /webhooks/{webhook_subscription_id}","href":"/api-reference/webhooks/archive-a-webhook-subscription"},{"title":"Event delivery","version":null,"deprecated":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json webhook webhookDelivery","href":"/api-reference/webhooks/event-delivery"}]},{"group":"Whoami","pages":[{"title":"Get a current user","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /whoami","href":"/api-reference/whoami/get-a-current-user"}]},{"group":"Workflows","pages":[{"title":"List workflows","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /workflows","href":"/api-reference/workflows/list-workflows"},{"title":"Create a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows","href":"/api-reference/workflows/create-a-workflow"},{"title":"Get a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /workflows/{workflow_id}","href":"/api-reference/workflows/get-a-workflow"},{"title":"Archive a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /workflows/{workflow_id}","href":"/api-reference/workflows/archive-a-workflow"},{"title":"Trigger a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/trigger","href":"/api-reference/workflows/trigger-a-workflow"},{"title":"Schedule a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/schedule","href":"/api-reference/workflows/schedule-a-workflow"},{"title":"Remove a workflow schedule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /workflows/{workflow_id}/schedule","href":"/api-reference/workflows/remove-a-workflow-schedule"},{"title":"Cancel a workflow execution","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/cancel","href":"/api-reference/workflows/cancel-a-workflow-execution"},{"title":"List workflow runs","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /workflows/{workflow_id}/runs","href":"/api-reference/workflows/list-workflow-runs"},{"title":"Cancel a specific workflow run","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/runs/{run_id}/cancel","href":"/api-reference/workflows/cancel-a-specific-workflow-run"}]}]}]},"title":"Create an attribute - Narrative I/O Knowledge Base","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}