Moment · Schema

AllocationTemplateAssignment

An account's assignment to a published asset allocation template

CompanyFixed IncomeBondsTradingMarket DataReference DataInvestment ManagementWealth ManagementBrokerageFinancial ServicesFintech

Properties

Name Type Description
id string The ID of the assignment
template_id string The assigned template
account_id string The assigned account
household_id stringnull Optional household scope
assigned_version_id string The published template version this assignment resolved against
overrides object
materialized_config object Resolved effective tree for this account
flattened_groups array The materialized tree flattened for display, in display order. Served on detail, create, and update responses, and on list responses only when filtered by account_id; absent on unfiltered lists and on
status object
parent_organization_id string The parent organization that owns the assignment
created_at string
created_by object The user who created the assignment
updated_at string
updated_by object The user who last updated the assignment
revision integer Counts applied changes; starts at 1 and moves when a change to the overrides is applied. An update sends back the revision it was edited against as expected_revision.
View JSON Schema on GitHub

JSON Schema

moment-allocation-template-assignment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/moment/main/json-schema/moment-allocation-template-assignment-schema.json",
  "title": "AllocationTemplateAssignment",
  "description": "An account's assignment to a published asset allocation template",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/moment-models-api-openapi.yml#/components/schemas/AllocationTemplateAssignment",
  "type": "object",
  "properties": {
    "id": {
      "description": "The ID of the assignment",
      "type": "string"
    },
    "template_id": {
      "description": "The assigned template",
      "type": "string"
    },
    "account_id": {
      "description": "The assigned account",
      "type": "string"
    },
    "household_id": {
      "description": "Optional household scope",
      "type": [
        "string",
        "null"
      ]
    },
    "assigned_version_id": {
      "description": "The published template version this assignment resolved against",
      "type": "string"
    },
    "overrides": {
      "$ref": "#/$defs/AllocationTemplateOverrides"
    },
    "materialized_config": {
      "description": "Resolved effective tree for this account",
      "$ref": "#/$defs/AllocationTemplateConfig"
    },
    "flattened_groups": {
      "description": "The materialized tree flattened for display, in display order. Served on detail, create, and update responses, and on list responses only when filtered by account_id; absent on unfiltered lists and on legacy rows whose stored config no longer flattens.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/AllocationTemplateAssignmentGroup"
      }
    },
    "status": {
      "$ref": "#/$defs/AllocationTemplateAssignmentStatus"
    },
    "parent_organization_id": {
      "description": "The parent organization that owns the assignment",
      "type": "string"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "description": "The user who created the assignment",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/User"
        }
      ]
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_by": {
      "description": "The user who last updated the assignment",
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/User"
        }
      ]
    },
    "revision": {
      "description": "Counts applied changes; starts at 1 and moves when a change to the overrides is applied. An update sends back the revision it was edited against as expected_revision.",
      "type": "integer",
      "format": "int64",
      "minimum": 1
    }
  },
  "required": [
    "id",
    "template_id",
    "account_id",
    "household_id",
    "assigned_version_id",
    "overrides",
    "materialized_config",
    "status",
    "parent_organization_id",
    "created_at",
    "created_by",
    "updated_at",
    "updated_by",
    "revision"
  ],
  "$defs": {
    "AllocationTemplateAssignmentGroup": {
      "description": "One non-cash node of the materialized tree, flattened for display: relative weights pre-multiplied into an absolute target, in DFS document order (parent before children = display order). Cash nodes are omitted but their weights still shape siblings' absolute targets. A root that directly carries a strategy menu appears as a depth-0 group (empty path, null parent_name and relative_weight).",
      "type": "object",
      "properties": {
        "node_id": {
          "description": "The node's stable id ('aatn_' ULID), never empty",
          "type": "string"
        },
        "name": {
          "description": "Display name",
          "type": "string"
        },
        "path": {
          "description": "Node ids from the root down to and including this node, exclusive of the root, so its length is the node's depth",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "parent_name": {
          "description": "The parent node's name; null when the parent is the root",
          "type": [
            "string",
            "null"
          ]
        },
        "absolute_target": {
          "description": "The node's share of the account's managed value as a percent decimal string (never a number)",
          "type": "string"
        },
        "relative_weight": {
          "description": "The node's share of its parent as a percent decimal string (never a number)",
          "type": [
            "string",
            "null"
          ]
        },
        "slots": {
          "description": "The expected sleeves under this node: one entry per funded strategy. (node_id, strategy_id) pairs are unique across groups.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/AllocationTemplateAssignmentSlot"
          }
        }
      },
      "required": [
        "node_id",
        "name",
        "path",
        "parent_name",
        "absolute_target",
        "relative_weight",
        "slots"
      ],
      "title": "AllocationTemplateAssignmentGroup"
    },
    "AllocationTemplateAssignmentSlot": {
      "description": "One expected sleeve under a group's node, keyed on the account by (node_id, strategy_id)",
      "type": "object",
      "properties": {
        "strategy_id": {
          "description": "The funded strategy",
          "type": "string"
        }
      },
      "required": [
        "strategy_id"
      ],
      "title": "AllocationTemplateAssignmentSlot"
    },
    "AllocationTemplateAssignmentStatus": {
      "description": "Lifecycle status of a template-to-account assignment. assigning, applying and unassigning mean a write to the account is in flight; reading the assignment by id finishes it.",
      "type": "string",
      "enum": [
        "active",
        "needs_resolution",
        "assigning",
        "applying",
        "unassigning"
      ],
      "title": "AllocationTemplateAssignmentStatus"
    },
    "AllocationTemplateConfig": {
      "description": "A fully materialized template tree. The document root is itself a node.",
      "type": "object",
      "properties": {
        "root": {
          "$ref": "#/$defs/AllocationTemplateNode"
        }
      },
      "required": [
        "root"
      ],
      "title": "AllocationTemplateConfig"
    },
    "AllocationTemplateNode": {
      "description": "A node in the template tree. It holds either child nodes or a strategy menu, never both; cash holds neither. A model_category is a section defined by strategy tags — those tags filter which strategies show up in menus under it, and at least one is required. Ordinary sections and cash must not carry tags.",
      "type": "object",
      "properties": {
        "id": {
          "description": "Stable node id ('aatn_' ULID). Minted server-side for new nodes: omit or send empty on creation, keep it verbatim on later publishes - child overrides are keyed by it.",
          "type": "string"
        },
        "name": {
          "description": "Display name; the root node may have an empty name",
          "type": "string"
        },
        "kind": {
          "description": "What this node is. A node is a free-text section; a model_category is a section defined by strategy tags; cash is the funding buffer.",
          "type": "string",
          "enum": [
            "node",
            "model_category",
            "cash"
          ]
        },
        "relative_weight": {
          "description": "The node's share of its parent as a decimal string (never a number). Null means unset; the root carries an implicit 100% and keeps this null.",
          "type": [
            "string",
            "null"
          ]
        },
        "min_weight": {
          "description": "Optional lower range bound in relative-weight terms, as a decimal string",
          "type": [
            "string",
            "null"
          ]
        },
        "max_weight": {
          "description": "Optional upper range bound in relative-weight terms, as a decimal string",
          "type": [
            "string",
            "null"
          ]
        },
        "tag_ids": {
          "description": "Strategy tag ids from the tags service. Required on a model_category (at least one). Must be omitted or empty on ordinary sections and cash. A nested model_category cannot reuse a tag already set by an ancestor.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "children": {
          "description": "Child nodes; mutually exclusive with strategies",
          "type": "array",
          "items": {
            "$ref": "#/$defs/AllocationTemplateNode"
          }
        },
        "strategies": {
          "description": "The leaf node's strategy menu; mutually exclusive with children",
          "type": "array",
          "items": {
            "$ref": "#/$defs/AllocationTemplateStrategyEntry"
          }
        }
      },
      "required": [
        "kind"
      ],
      "title": "AllocationTemplateNode"
    },
    "AllocationTemplateOverrides": {
      "description": "A linked template's delta against its base, keyed by stable node id. Field semantics are tri-state and load-bearing: an absent field inherits from the base, an explicit null is an unset/clear override, a value is an override. Per node: relative_weight/min_weight/max_weight plus a strategies map keyed by strategy id with relative_weight/min_weight/max_weight (value overrides), added (child-added entry), and removed (child-removed base entry). Typed loosely so absent and null survive the wire.",
      "type": "object",
      "additionalProperties": true,
      "x-go-type": "stdjson.RawMessage",
      "x-go-type-import": {
        "path": "encoding/json",
        "name": "stdjson"
      },
      "title": "AllocationTemplateOverrides"
    },
    "AllocationTemplateStrategyEntry": {
      "description": "A reference from a leaf node's menu to an existing strategy, with a relative weight. A 0% weight means the strategy is approved for selection but not allocated by default.",
      "type": "object",
      "properties": {
        "strategy_id": {
          "description": "The ID of the referenced strategy",
          "type": "string"
        },
        "relative_weight": {
          "description": "The entry's share of its menu as a decimal string (never a number). Null means unset.",
          "type": [
            "string",
            "null"
          ]
        },
        "min_weight": {
          "description": "Optional lower range bound in relative-weight terms, as a decimal string",
          "type": [
            "string",
            "null"
          ]
        },
        "max_weight": {
          "description": "Optional upper range bound in relative-weight terms, as a decimal string",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "strategy_id"
      ],
      "title": "AllocationTemplateStrategyEntry"
    },
    "User": {
      "type": "object",
      "properties": {
        "display_name": {
          "description": "The display name of the user",
          "type": "string"
        },
        "id": {
          "description": "The ID of the user",
          "type": "string"
        }
      },
      "required": [
        "id",
        "display_name"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/moment-allocation-template-assignment"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.