Elementum Elements API
Manage elements imported from connected cloud sources
Manage elements imported from connected cloud sources
openapi: 3.0.1
info:
title: Elementum Access Token Elements API
description: Manage access tokens using OAuth 2.0 standards
contact:
email: apiteam@elementum.io
version: 0.0.1
servers:
- url: /v1
tags:
- name: Elements
description: Manage elements imported from connected cloud sources
paths:
/elements:
post:
tags:
- Elements
summary: Import an existing connected-source table as an element
operationId: createElement
parameters: []
requestBody:
description: Element creation request (Snowflake import)
content:
application/json:
schema:
$ref: '#/components/schemas/ElementCreateRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Aspect'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- ClientCredentials: []
x-codegen-request-body-name: body
/elements/{alias}:
get:
tags:
- Elements
summary: Get an element by alias
operationId: getElement
parameters:
- $ref: '#/components/parameters/alias'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Aspect'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- ClientCredentials: []
x-codegen-request-body-name: body
put:
tags:
- Elements
summary: Update an element by alias
operationId: updateElement
parameters:
- $ref: '#/components/parameters/alias'
requestBody:
description: Element fields to update
content:
application/json:
schema:
$ref: '#/components/schemas/ElementUpdateRequest'
required: true
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Aspect'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- ClientCredentials: []
x-codegen-request-body-name: body
components:
schemas:
AspectFieldInput:
required:
- name
- type
type: object
properties:
lockOnCreate:
type: boolean
type:
$ref: '#/components/schemas/AspectFieldType'
description:
type: string
showOnCreate:
type: boolean
name:
type: string
description: Field display name
requiredOnClose:
type: boolean
columnName:
type: string
description: Underlying source-column name (import mode); leave blank for native modes
required:
type: boolean
tags:
type: array
items:
type: string
semanticTags:
type: array
items:
type: string
AspectCategoryRef:
type: object
properties:
name:
type: string
description: The category name
id:
type: string
description: The category ID
format: uuid
AspectSourceType:
type: string
description: Where an aspect's data lives. ELEMENTUM = native; SNOWFLAKE = imported from a connected Snowflake table.
enum:
- ELEMENTUM
- SNOWFLAKE
ElementCreateRequest:
required:
- categoryId
- name
type: object
properties:
recordCreateTypes:
$ref: '#/components/schemas/RecordCreateTypesInput'
namespace:
type: string
description: URL namespace. Derived from name (lowercase letters only) when omitted.
table:
type: string
description: Source table name — import mode only; omit in native and native-at-link modes
categoryId:
type: string
description: Aspect category to file the element under
format: uuid
description:
type: string
description: Element description
allowForwardedEmailIngestion:
type: boolean
workflowValuePerAutomation:
type: number
color:
type: string
titleColumn:
type: string
description: Source column to tag with the TITLE semantic tag. Must be TEXT. Import mode only.
cloudOptions:
$ref: '#/components/schemas/CloudOptionsInput'
cloudLinkId:
type: string
description: Cloud link to import from (import mode) or to host a newly-created table on (native-at-link mode)
format: uuid
schema:
type: string
description: Source schema — import mode only; omit in native and native-at-link modes
handle:
type: string
description: Record-handle prefix. Derived from name (uppercase letters only) when omitted.
allowAnonymousEmailCreation:
type: boolean
name:
type: string
description: Element display name
icon:
type: string
allowInlineImageIngestion:
type: boolean
database:
type: string
description: Source database — import mode only; omit in native and native-at-link modes
readOnly:
type: boolean
snowflakeWarehouse:
type: string
description: Warehouse override for this element
fields:
type: array
description: Field definitions for native and native-at-link modes. Must be omitted in import mode.
items:
$ref: '#/components/schemas/AspectFieldInput'
idColumn:
type: string
description: Source column to tag with the HANDLE semantic tag. Must be TEXT, NUMBER, or HANDLE. Import mode only.
description: 'Body for POST /v1/elements. Three modes: (1) import — `cloudLinkId` + `database`/`schema`/`table`/`idColumn`/`titleColumn`; columns are discovered from the source table and `fields` must be omitted. (2) native-at-link — `cloudLinkId` only (no source-table group); a new physical table is created at the cloud link''s configured database/schema; supply `fields` for the schema or omit for system defaults. (3) native — omit both `cloudLinkId` and the source-table group; the element lives on the organization''s system cloud link.'
ElementUpdateRequest:
type: object
properties:
recordCreateTypes:
$ref: '#/components/schemas/RecordCreateTypesInput'
workflowValuePerAutomation:
type: number
allowForwardedEmailIngestion:
type: boolean
categoryId:
type: string
description: Aspect category to file the element under
format: uuid
description:
type: string
description: Element description
name:
type: string
description: Element display name
allowInlineImageIngestion:
type: boolean
icon:
type: string
allowAnonymousEmailCreation:
type: boolean
color:
type: string
description: 'Body for PUT /v1/elements/{alias}. Partial update: only the fields present are changed. Source binding (cloud link, source table, field schema) is fixed at create time and cannot be edited here.'
AspectFieldType:
type: string
description: The Elementum field data type
enum:
- ATTACHMENT_ID
- BOOLEAN
- DATE
- DATETIME
- DECIMAL
- GROUP_ID
- HANDLE
- HTML
- JSON
- MULTI_PICKLIST
- NUMBER
- PICKLIST
- TEXT
- USER_ID
CloudOptionsInput:
type: object
properties:
snowflake:
$ref: '#/components/schemas/SnowflakeOptionsInput'
Aspect:
type: object
properties:
configured:
type: boolean
description: Whether the aspect has been fully configured
status:
type: string
description: Lifecycle status (DRAFT, ACTIVE, ARCHIVED, …)
description:
type: string
description: The aspect description
__typename:
type: string
description: The aspect variant (AspectApp, AspectElement, AspectTask, AspectTransaction)
icon:
type: string
description: The aspect icon
namespace:
type: string
description: The aspect namespace (lowercase identifier used in URLs)
handle:
type: string
description: The aspect handle (uppercase identifier used in record handles)
readOnly:
type: boolean
sourceType:
$ref: '#/components/schemas/AspectSourceType'
color:
type: string
description: The aspect color
id:
type: string
description: The aspect ID
format: uuid
name:
type: string
description: The aspect display name
category:
$ref: '#/components/schemas/AspectCategoryRef'
SnowflakeOptionsInput:
type: object
properties:
hybridTable:
type: boolean
description: Use a Snowflake hybrid table
RecordCreateTypesInput:
type: object
properties:
agents:
type: boolean
description: Whether records can be created by agents
email:
type: boolean
description: Whether records can be created via inbound email
services:
type: boolean
description: Whether records can be created by services
api:
type: boolean
description: Whether records can be created via the API
automations:
type: boolean
description: Whether records can be created by automations
manual:
type: boolean
description: Whether records can be created manually in the UI
responses:
'422':
description: Unprocessable Entity
'404':
description: Not Found
'401':
description: Unauthorized
'403':
description: Forbidden
'400':
description: Bad Request
'500':
description: Internal Server Error
'429':
description: Too Many Requests
parameters:
alias:
name: alias
in: path
description: The app's namespace or its UUID
required: true
schema:
type: string
format: string
securitySchemes:
ClientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: /oauth/token
externalDocs:
description: Find out more about Elementum
url: https://www.elementum.com/