planning_analytics service has 10 resource kinds, each listed below with its endpoints, fields, and dependencies. Values resolve late, so you reference another resource with ${kind.ref_name}. For defaults, validation rules, and examples, run wxctl explain <kind>.
YAML envelope & reference syntax
YAML envelope & reference syntax
- Envelope: A config is one or more YAML documents separated by
---. Each has top-levelkindandref_name, then the fields below at the top level (not nested underspec). ref_name: Unique handle for this resource within the config. Used to reference it from other resources, then stripped before the API call (not a schema field).- References: Reference another resource by its ref_name:
${<kind>.<ref_name>}resolves to its id,${<kind>.<ref_name>.<field>}to a specific field. Values resolve late, at plan/apply time.
pa_chore
A Planning Analytics (TM1 Database 12) chore, a schedule that runs an ordered list of tasks (each executing a process) at a start time and frequency.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Chores |
| Read | GET | /Chores('{name}') |
| List | GET | /Chores |
| Update | PATCH | /Chores('{name}') |
| Delete | DELETE | /Chores('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Chore name, the OData entity key. Immutable identity. |
start_time | string | Optional | First-run timestamp, ISO 8601 date-time (e.g. 2026-01-01T00:00:00Z). |
dst_sensitive | boolean | Optional | Whether the schedule shifts with daylight-saving transitions. |
active | boolean | Optional | Whether the chore is scheduled to run. Reconciled by the ChoreHandler via the tm1.Activate/tm1.Deactivate actions (not a writable body property), and compared against the server’s Active on discovery. |
execution_mode | string | Optional | Whether tasks commit together (SingleCommit) or independently (MultipleCommit). |
frequency | string | Optional | Run interval as an ISO 8601 duration (e.g. P1DT0H0M0S for daily). |
tasks | array<object> | Required | Ordered list of tasks, each running one process with optional parameters. |
tasks.process→pa_process(required)
pa_cube
A Planning Analytics (TM1 Database 12) cube, an N-dimensional data store defined over an ordered list of dimensions, with optional TM1 rules.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Cubes |
| Read | GET | /Cubes('{name}') |
| List | GET | /Cubes |
| Update | PATCH | /Cubes('{name}') |
| Delete | DELETE | /Cubes('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Cube name, the OData entity key. Immutable identity. |
dimensions | array<string> | Required | Ordered list of dimension names composing the cube. Immutable (recreate on change). |
rules | string | Optional | TM1 rules text (calculations/feeders). PATCHable. |
drillthrough_rules | string | Optional | Drillthrough rules text. PATCHable. |
dimensions→pa_dimension(required)
pa_view→.cube(required)
pa_dimension
A Planning Analytics (TM1 Database 12) dimension, a named set of members organized into one or more hierarchies.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Dimensions |
| Read | GET | /Dimensions('{name}') |
| List | GET | /Dimensions |
| Update | PATCH | /Dimensions('{name}') |
| Delete | DELETE | /Dimensions('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Dimension name, the OData entity key. Immutable identity. |
hierarchies | array<object> | Optional | Inline hierarchies, each carrying its own members (elements) and parent/child relationships (edges). TM1 auto-creates a hierarchy named after the dimension when none is supplied. |
pa_cube→.dimensions(required)pa_hierarchy→.dimension(required)pa_subset→.dimension(required)
pa_group
A Planning Analytics (TM1 Database 12) security group, a named role that users belong to and that cube/dimension security is granted against.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Groups |
| Read | GET | /Groups('{name}') |
| List | GET | /Groups |
| Update | PATCH | /Groups('{name}') |
| Delete | DELETE | /Groups('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Group name, the OData entity key. Immutable identity. |
pa_user→.groups(optional)
pa_hierarchy
A hierarchy within a Planning Analytics (TM1 Database 12) dimension, a named tree of members (elements) and parent/child consolidations (edges).
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Dimensions('{dimension}')/Hierarchies |
| Read | GET | /Dimensions('{dimension}')/Hierarchies('{name}') |
| List | GET | /Dimensions('{dimension}')/Hierarchies |
| Update | PATCH | /Dimensions('{dimension}')/Hierarchies('{name}') |
| Delete | DELETE | /Dimensions('{dimension}')/Hierarchies('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Hierarchy name, the OData entity key within the dimension. Immutable identity. |
dimension | string | Required | Parent dimension name. Interpolated into every endpoint’s {dimension} segment (location: Path, never rides the body). Its references block yields the DAG edge pa_dimension -> pa_hierarchy. |
elements | array<object> | Optional | Members of the hierarchy. |
edges | array<object> | Optional | Parent/child consolidation relationships. |
dimension→pa_dimension(required)
pa_process
A Planning Analytics (TM1 Database 12) TurboIntegrator process, the scripting unit (four procedure stages, a data source, typed parameters and source variables) created via the TM1 REST OData API (/Processes) and identified by its name (the OData entity key).
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Processes |
| Read | GET | /Processes('{name}') |
| List | GET | /Processes |
| Update | PATCH | /Processes('{name}') |
| Delete | DELETE | /Processes('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Process name, the OData entity key. Immutable identity. |
has_security_access | boolean | Optional | Whether the process runs with elevated security access. |
prolog_procedure | string | Optional | TurboIntegrator Prolog-stage script. |
metadata_procedure | string | Optional | TurboIntegrator Metadata-stage script. |
data_procedure | string | Optional | TurboIntegrator Data-stage script. |
epilog_procedure | string | Optional | TurboIntegrator Epilog-stage script. |
parameters | array<object> | Optional | Declared process parameters (prompted at execution). |
variables | array<object> | Optional | Source-record variables bound by the Data stage. |
data_source | object | Optional | Process data source. The TM1 REST OpenAPI models this loosely (only Type is enumerated), so this schema declares the common fields only; Phase 4 live testing may widen it (e.g. ODBC credential fields, which would need sensitive_paths). |
pa_chore→.tasks.process(required)
pa_sql_data_source
A Planning Analytics (TM1 Database 12) named SQL data source, a reusable ODBC/SQL connection definition that TurboIntegrator processes read from.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /SQLDataSources |
| Read | GET | /SQLDataSources('{name}') |
| List | GET | /SQLDataSources |
| Update | PATCH | /SQLDataSources('{name}') |
| Delete | DELETE | /SQLDataSources('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | SQL data source name, the OData entity key. Immutable identity. |
description | string | Optional | Human-readable description of the data source. PATCHable. |
pa_subset
A named subset of a Planning Analytics (TM1 Database 12) hierarchy, either a static list of members (elements) or a dynamic MDX expression.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Dimensions('{dimension}')/Hierarchies('{hierarchy}')/Subsets |
| Read | GET | /Dimensions('{dimension}')/Hierarchies('{hierarchy}')/Subsets('{name}') |
| List | GET | /Dimensions('{dimension}')/Hierarchies('{hierarchy}')/Subsets |
| Update | PATCH | /Dimensions('{dimension}')/Hierarchies('{hierarchy}')/Subsets('{name}') |
| Delete | DELETE | /Dimensions('{dimension}')/Hierarchies('{hierarchy}')/Subsets('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | Subset name, the OData entity key within the hierarchy. Immutable identity. |
dimension | string | Required | Parent dimension name. Interpolated into every endpoint’s {dimension} segment (location: Path, never rides the body). Its references block yields the DAG edge pa_dimension -> pa_subset. |
hierarchy | string | Required | Parent hierarchy name, interpolated into every endpoint’s {hierarchy} segment (location: Path). No references block: a subset commonly targets the auto-created same-named hierarchy TM1 makes for every dimension, which is NOT a pa_hierarchy resource, so hierarchy is a plain path string that may point at an auto-created (unmanaged) hierarchy. Apply-ordering when it does name a pa_hierarchy is a Phase-4 live concern; no build-time edge is asserted here. |
elements | array<string> | Optional | Static member list. When present (non-empty), the subset is static and SubsetHandler binds each name as Dimensions(‘{dimension}’)/Hierarchies(‘{hierarchy}’)/Elements(‘{e}’). |
expression | string | Optional | MDX set expression defining a dynamic subset. When present (and elements absent), the SubsetHandler falls through (HookOutcome::Continue) and the default materializer POSTs Name + Expression. Mutually exclusive with elements. |
dimension→pa_dimension(required)
pa_user
A Planning Analytics (TM1 Database 12) user, a security principal with a password and a set of group memberships.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Users |
| Read | GET | /Users('{name}') |
| List | GET | /Users |
| Update | PATCH | /Users('{name}') |
| Delete | DELETE | /Users('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | User name, the OData entity key. Immutable identity. |
password | string | Optional | Write-only password set at create time. Never returned by the server. |
friendly_name | string | Optional | Display name for the user. PATCHable. |
type | string | Optional | TM1 user type (UserType enum). Sent at create; excluded from state comparison (server defaulting). |
enabled | boolean | Optional | Whether the user is enabled. PATCHable. |
groups | array<string> | Optional | Group names this user belongs to. Bound as Groups@odata.bind at create. |
groups→pa_group(optional)
pa_view
A Planning Analytics (TM1 Database 12) cube view, a saved query over a cube, either a native axis layout (columns/rows/titles) or an MDX view.
Runs on SaaS + Software · ID field name
Endpoints
| Operation | Method | Path |
|---|---|---|
| Create | POST | /Cubes('{cube}')/Views |
| Read | GET | /Cubes('{cube}')/Views('{name}') |
| List | GET | /Cubes('{cube}')/Views |
| Update | PATCH | /Cubes('{cube}')/Views('{name}') |
| Delete | DELETE | /Cubes('{cube}')/Views('{name}') |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Required | View name, the OData entity key within the cube. Immutable identity. |
cube | string | Required | Parent cube name. Interpolated into every endpoint’s {cube} segment (location: Path, never rides the body). Its references block yields the DAG edge pa_cube -> pa_view. |
view_type | string | Required | Discriminator selecting a native axis view or an MDX view. |
mdx | string | Optional | MDX query text (mdx views only). Passed through by the handler as MDX. |
columns | array<object> | Optional | Column-axis dimension selections (native views only). Passed through verbatim. |
rows | array<object> | Optional | Row-axis dimension selections (native views only). Passed through verbatim as Rows. |
titles | array<object> | Optional | Title (context) dimension selections (native views only). Passed through verbatim as Titles. |
cube→pa_cube(required)

