OpsMill Schema API

The Schema API from OpsMill — 6 operation(s) for schema.

Operations 6

GET /api/schema Get Schema #
GET /api/schema/summary Get Schema Summary #
GET /api/schema/{schema_kind} Get Schema By Kind #
GET /api/schema/json_schema/{schema_kind} Get Json Schema By Kind #
POST /api/schema/load Load Schema #
POST /api/schema/check Check Schema #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/opsmill-schema-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

opsmill-schema-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Infrahub Artifact Schema API
  version: 1.10.0
servers:
- url: https://sandbox.infrahub.app/api
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Schema
paths:
  /api/schema:
    get:
      summary: Get Schema
      operationId: get_schema_api_schema_get
      security:
      - HTTPBearer: []
      - APIKeyHeader: []
      parameters:
      - name: namespaces
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Namespaces
      - name: branch
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the branch to use for the query
          title: Branch
        description: Name of the branch to use for the query
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaReadAPI'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Schema
  /api/schema/summary:
    get:
      summary: Get Schema Summary
      operationId: get_schema_summary_api_schema_summary_get
      security:
      - HTTPBearer: []
      - APIKeyHeader: []
      parameters:
      - name: branch
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the branch to use for the query
          title: Branch
        description: Name of the branch to use for the query
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaBranchHash'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Schema
  /api/schema/{schema_kind}:
    get:
      summary: Get Schema By Kind
      operationId: get_schema_by_kind_api_schema__schema_kind__get
      security:
      - HTTPBearer: []
      - APIKeyHeader: []
      parameters:
      - name: schema_kind
        in: path
        required: true
        schema:
          type: string
          title: Schema Kind
      - name: branch
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the branch to use for the query
          title: Branch
        description: Name of the branch to use for the query
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/APIProfileSchema'
                - $ref: '#/components/schemas/APINodeSchema'
                - $ref: '#/components/schemas/APIGenericSchema'
                - $ref: '#/components/schemas/APITemplateSchema'
                title: Response Get Schema By Kind Api Schema  Schema Kind  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Schema
  /api/schema/json_schema/{schema_kind}:
    get:
      summary: Get Json Schema By Kind
      operationId: get_json_schema_by_kind_api_schema_json_schema__schema_kind__get
      security:
      - HTTPBearer: []
      - APIKeyHeader: []
      parameters:
      - name: schema_kind
        in: path
        required: true
        schema:
          type: string
          title: Schema Kind
      - name: branch
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the branch to use for the query
          title: Branch
        description: Name of the branch to use for the query
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSONSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Schema
  /api/schema/load:
    post:
      summary: Load Schema
      operationId: load_schema_api_schema_load_post
      security:
      - HTTPBearer: []
      - APIKeyHeader: []
      parameters:
      - name: branch
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the branch to use for the query
          title: Branch
        description: Name of the branch to use for the query
      - name: at
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Time to use for the query, in absolute or relative format
          title: At
        description: Time to use for the query, in absolute or relative format
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemasLoadAPI'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaUpdate'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Schema
  /api/schema/check:
    post:
      summary: Check Schema
      operationId: check_schema_api_schema_check_post
      security:
      - HTTPBearer: []
      - APIKeyHeader: []
      parameters:
      - name: branch
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the branch to use for the query
          title: Branch
        description: Name of the branch to use for the query
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemasLoadAPI'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Schema
components:
  schemas:
    HashableModelDiff:
      properties:
        added:
          additionalProperties:
            anyOf:
            - $ref: '#/components/schemas/HashableModelDiff'
            - type: 'null'
          type: object
          title: Added
        changed:
          additionalProperties:
            anyOf:
            - $ref: '#/components/schemas/HashableModelDiff'
            - type: 'null'
          type: object
          title: Changed
        removed:
          additionalProperties:
            anyOf:
            - $ref: '#/components/schemas/HashableModelDiff'
            - type: 'null'
          type: object
          title: Removed
      additionalProperties: false
      type: object
      title: HashableModelDiff
    SchemaBranchHash:
      properties:
        main:
          type: string
          title: Main
        nodes:
          additionalProperties:
            type: string
          type: object
          title: Nodes
        generics:
          additionalProperties:
            type: string
          type: object
          title: Generics
      type: object
      required:
      - main
      title: SchemaBranchHash
    RelationshipDeleteBehavior:
      type: string
      enum:
      - no-action
      - cascade
      title: RelationshipDeleteBehavior
    DropdownChoice:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        state:
          $ref: '#/components/schemas/HashableModelState'
          default: present
        name:
          type: string
          title: Name
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        color:
          anyOf:
          - type: string
          - type: 'null'
          title: Color
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
      additionalProperties: false
      type: object
      required:
      - name
      title: DropdownChoice
    NodeExtensionSchema:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        state:
          $ref: '#/components/schemas/HashableModelState'
          default: present
        kind:
          type: string
          title: Kind
        attributes:
          items:
            $ref: '#/components/schemas/AttributeSchema-Input'
          type: array
          title: Attributes
        relationships:
          items:
            $ref: '#/components/schemas/RelationshipSchema'
          type: array
          title: Relationships
      additionalProperties: false
      type: object
      required:
      - kind
      title: NodeExtensionSchema
    APIProfileSchema:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: The ID of the node
          update: not_applicable
        state:
          $ref: '#/components/schemas/HashableModelState'
          description: Expected state of the node/generic after loading the schema
          default: present
          update: not_applicable
        name:
          type: string
          maxLength: 32
          minLength: 2
          pattern: ^[A-Z][a-zA-Z0-9]+$
          title: Name
          description: Node name, must be unique within a namespace and must start with an uppercase letter.
          update: migration_required
        namespace:
          type: string
          maxLength: 64
          minLength: 3
          pattern: ^[A-Z][a-z0-9]+$
          title: Namespace
          description: Node Namespace, Namespaces are used to organize models into logical groups and to prevent name collisions.
          update: migration_required
        description:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Description
          description: Short description of the model, will be visible in the frontend.
          update: allowed
        label:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Label
          description: Human friendly representation of the name/kind
          update: allowed
        branch:
          $ref: '#/components/schemas/BranchSupportType'
          description: Type of branch support for the model.
          default: aware
          update: not_supported
        default_filter:
          anyOf:
          - type: string
            pattern: ^[a-z0-9\_]*$
          - type: 'null'
          title: Default Filter
          description: 'Default filter used to search for a node in addition to its ID. (deprecated: please use human_friendly_id instead)'
          update: allowed
        human_friendly_id:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Human Friendly Id
          description: Human friendly and unique identifier for the object.
          update: allowed
        display_label:
          anyOf:
          - type: string
          - type: 'null'
          title: Display Label
          description: Attribute or Jinja2 template to use to generate the display label
          update: allowed
        display_labels:
          anyOf:
          - items:
              type: string
              deprecationMessage: display_labels are deprecated use display_label instead
            type: array
          - type: 'null'
          title: Display Labels
          description: List of attributes to use to generate the display label (deprecated)
          update: allowed
        include_in_menu:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Include In Menu
          description: Defines if objects of this kind should be included in the menu.
          update: allowed
        menu_placement:
          anyOf:
          - type: string
          - type: 'null'
          title: Menu Placement
          description: Defines where in the menu this object should be placed.
          update: allowed
        icon:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon
          description: Defines the icon to use in the menu. Must be a valid value from the MDI library https://icon-sets.iconify.design/mdi/
          update: allowed
        order_by:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Order By
          description: List of entries to order results by. Supports attributes, relationship attributes, and node_metadata with __asc/__desc.
          update: allowed
        uniqueness_constraints:
          anyOf:
          - items:
              items:
                type: string
              type: array
            type: array
          - type: 'null'
          title: Uniqueness Constraints
          description: List of multi-element uniqueness constraints that can combine relationships and attributes
          update: migration_required
        documentation:
          anyOf:
          - type: string
          - type: 'null'
          title: Documentation
          description: Link to a documentation associated with this object, can be internal or external.
          update: allowed
        attributes:
          items:
            $ref: '#/components/schemas/AttributeSchema-Output'
          type: array
          title: Attributes
          description: Node attributes
          update: not_applicable
        relationships:
          items:
            $ref: '#/components/schemas/RelationshipSchema'
          type: array
          title: Relationships
          description: Node Relationships
          update: not_applicable
        inherit_from:
          items:
            type: string
          type: array
          title: Inherit From
          description: List of Generic Kind that this profile is inheriting from
        kind:
          anyOf:
          - type: string
          - type: 'null'
          title: Kind
        hash:
          type: string
          title: Hash
      additionalProperties: false
      type: object
      required:
      - name
      - namespace
      - hash
      title: APIProfileSchema
    AttributeSchema-Input:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: The ID of the attribute
          update: not_applicable
        state:
          $ref: '#/components/schemas/HashableModelState'
          description: Expected state of the attribute after loading the schema
          default: present
          update: not_applicable
        name:
          type: string
          maxLength: 64
          minLength: 3
          pattern: ^[a-z0-9\_]+$
          title: Name
          description: Attribute name, must be unique within a model and must be all lowercase.
          update: migration_required
        kind:
          type: string
          title: Kind
          description: Defines the type of the attribute.
          update: migration_required
        enum:
          anyOf:
          - items: {}
            type: array
          - type: 'null'
          title: Enum
          description: Define a list of valid values for the attribute.
          update: validate_constraint
        computed_attribute:
          anyOf:
          - $ref: '#/components/schemas/ComputedAttribute-Input'
          - type: 'null'
          description: Defines how the value of this attribute will be populated.
          update: allowed
        choices:
          anyOf:
          - items:
              $ref: '#/components/schemas/DropdownChoice'
            type: array
          - type: 'null'
          title: Choices
          description: Define a list of valid choices for a dropdown attribute.
          update: validate_constraint
        regex:
          anyOf:
          - type: string
          - type: 'null'
          title: Regex
          description: 'Regex uses to limit the characters allowed in for the attributes. (deprecated: please use parameters.regex instead)'
          update: validate_constraint
        max_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Length
          description: 'Set a maximum number of characters allowed for a given attribute. (deprecated: please use parameters.max_length instead)'
          update: validate_constraint
        min_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Min Length
          description: 'Set a minimum number of characters allowed for a given attribute. (deprecated: please use parameters.min_length instead)'
          update: validate_constraint
        label:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Label
          description: Human friendly representation of the name. Will be autogenerated if not provided
          update: allowed
        description:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Description
          description: Short description of the attribute.
          update: allowed
        read_only:
          type: boolean
          title: Read Only
          description: Set the attribute as Read-Only, users won't be able to change its value. Mainly relevant for internal object.
          default: false
          update: migration_required
        unique:
          type: boolean
          title: Unique
          description: Indicate if the value of this attribute must be unique in the database for a given model.
          default: false
          update: migration_required
        optional:
          type: boolean
          title: Optional
          description: Indicate if this attribute is mandatory or optional.
          default: false
          update: migration_required
        branch:
          anyOf:
          - $ref: '#/components/schemas/BranchSupportType'
          - type: 'null'
          description: Type of branch support for the attribute, if not defined it will be inherited from the node.
          update: not_supported
        order_weight:
          anyOf:
          - type: integer
          - type: 'null'
          title: Order Weight
          description: Number used to order the attribute in the frontend (table and view). Lowest value will be ordered first.
          update: allowed
        default_value:
          anyOf:
          - {}
          - type: 'null'
          title: Default Value
          description: Default value of the attribute.
          update: allowed
        inherited:
          type: boolean
          title: Inherited
          description: Internal value to indicate if the attribute was inherited from a Generic node.
          default: false
          update: not_applicable
        allow_override:
          $ref: '#/components/schemas/AllowOverrideType'
          description: Type of allowed override for the attribute.
          default: any
          update: allowed
        parameters:
          anyOf:
          - $ref: '#/components/schemas/AttributeParameters'
          - $ref: '#/components/schemas/ListAttributeParameters'
          - $ref: '#/components/schemas/TextAttributeParameters'
          - $ref: '#/components/schemas/NumberAttributeParameters'
          - $ref: '#/components/schemas/NumberPoolParameters'
          title: Parameters
          description: Extra parameters specific to this kind of attribute
          update: validate_constraint
        deprecation:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Deprecation
          description: Mark attribute as deprecated and provide a user-friendly message to display
          update: allowed
        display:
          $ref: '#/components/schemas/SchemaAttributeDisplay'
          description: Controls where the attribute is displayed. 'default' shows in the main view, 'extra' shows in an expanded/secondary section.
          default: default
          update: allowed
      additionalProperties: false
      type: object
      required:
      - name
      - kind
      title: AttributeSchema
    AttributeSchema-Output:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: The ID of the attribute
          update: not_applicable
        state:
          $ref: '#/components/schemas/HashableModelState'
          description: Expected state of the attribute after loading the schema
          default: present
          update: not_applicable
        name:
          type: string
          maxLength: 64
          minLength: 3
          pattern: ^[a-z0-9\_]+$
          title: Name
          description: Attribute name, must be unique within a model and must be all lowercase.
          update: migration_required
        kind:
          type: string
          title: Kind
          description: Defines the type of the attribute.
          update: migration_required
        enum:
          anyOf:
          - items: {}
            type: array
          - type: 'null'
          title: Enum
          description: Define a list of valid values for the attribute.
          update: validate_constraint
        computed_attribute:
          anyOf:
          - $ref: '#/components/schemas/ComputedAttribute-Output'
          - type: 'null'
          description: Defines how the value of this attribute will be populated.
          update: allowed
        choices:
          anyOf:
          - items:
              $ref: '#/components/schemas/DropdownChoice'
            type: array
          - type: 'null'
          title: Choices
          description: Define a list of valid choices for a dropdown attribute.
          update: validate_constraint
        regex:
          anyOf:
          - type: string
          - type: 'null'
          title: Regex
          description: 'Regex uses to limit the characters allowed in for the attributes. (deprecated: please use parameters.regex instead)'
          update: validate_constraint
        max_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Length
          description: 'Set a maximum number of characters allowed for a given attribute. (deprecated: please use parameters.max_length instead)'
          update: validate_constraint
        min_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Min Length
          description: 'Set a minimum number of characters allowed for a given attribute. (deprecated: please use parameters.min_length instead)'
          update: validate_constraint
        label:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Label
          description: Human friendly representation of the name. Will be autogenerated if not provided
          update: allowed
        description:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Description
          description: Short description of the attribute.
          update: allowed
        read_only:
          type: boolean
          title: Read Only
          description: Set the attribute as Read-Only, users won't be able to change its value. Mainly relevant for internal object.
          default: false
          update: migration_required
        unique:
          type: boolean
          title: Unique
          description: Indicate if the value of this attribute must be unique in the database for a given model.
          default: false
          update: migration_required
        optional:
          type: boolean
          title: Optional
          description: Indicate if this attribute is mandatory or optional.
          default: false
          update: migration_required
        branch:
          anyOf:
          - $ref: '#/components/schemas/BranchSupportType'
          - type: 'null'
          description: Type of branch support for the attribute, if not defined it will be inherited from the node.
          update: not_supported
        order_weight:
          anyOf:
          - type: integer
          - type: 'null'
          title: Order Weight
          description: Number used to order the attribute in the frontend (table and view). Lowest value will be ordered first.
          update: allowed
        default_value:
          anyOf:
          - {}
          - type: 'null'
          title: Default Value
          description: Default value of the attribute.
          update: allowed
        inherited:
          type: boolean
          title: Inherited
          description: Internal value to indicate if the attribute was inherited from a Generic node.
          default: false
          update: not_applicable
        allow_override:
          $ref: '#/components/schemas/AllowOverrideType'
          description: Type of allowed override for the attribute.
          default: any
          update: allowed
        parameters:
          anyOf:
          - $ref: '#/components/schemas/AttributeParameters'
          - $ref: '#/components/schemas/ListAttributeParameters'
          - $ref: '#/components/schemas/TextAttributeParameters'
          - $ref: '#/components/schemas/NumberAttributeParameters'
          - $ref: '#/components/schemas/NumberPoolParameters'
          title: Parameters
          description: Extra parameters specific to this kind of attribute
          update: validate_constraint
        deprecation:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Deprecation
          description: Mark attribute as deprecated and provide a user-friendly message to display
          update: allowed
        display:
          $ref: '#/components/schemas/SchemaAttributeDisplay'
          description: Controls where the attribute is displayed. 'default' shows in the main view, 'extra' shows in an expanded/secondary section.
          default: default
          update: allowed
      additionalProperties: false
      type: object
      required:
      - name
      - kind
      title: AttributeSchema
    SchemaWarningType:
      type: string
      enum:
      - deprecation
      title: SchemaWarningType
    SchemaLoadAPI:
      properties:
        version:
          type: string
          title: Version
        generics:
          items:
            $ref: '#/components/schemas/GenericSchema'
          type: array
          title: Generics
        nodes:
          items:
            $ref: '#/components/schemas/NodeSchema'
          type: array
          title: Nodes
        extensions:
          $ref: '#/components/schemas/SchemaExtension'
          default:
            state: present
            nodes: []
      additionalProperties: false
      type: object
      required:
      - version
      title: SchemaLoadAPI
    RelationshipCardinality:
      type: string
      enum:
      - one
      - many
      title: RelationshipCardinality
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SchemaReadAPI:
      properties:
        main:
          type: string
          title: Main
          description: Main hash for the entire schema
        nodes:
          items:
            $ref: '#/components/schemas/APINodeSchema'
          type: array
          title: Nodes
        generics:
          items:
            $ref: '#/components/schemas/APIGenericSchema'
          type: array
          title: Generics
        profiles:
          items:
            $ref: '#/components/schemas/APIProfileSchema'
          type: array
          title: Profiles
        templates:
          items:
            $ref: '#/components/schemas/APITemplateSchema'
          type: array
          title: Templates
        namespaces:
          items:
            $ref: '#/components/schemas/SchemaNamespace'
          type: array
          title: Namespaces
      type: object
      required:
      - main
      title: SchemaReadAPI
    NumberPoolParameters:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        state:
          $ref: '#/components/schemas/HashableModelState'
          default: present
        end_range:
          type: integer
          title: End Range
          description: End range for numbers for the associated NumberPool
          default: 9223372036854775807
          update: validate_constraint
        start_range:
          type: integer
          title: Start Range
          description: Start range for numbers for the associated NumberPool
          default: 1
          update: validate_constraint
        number_pool_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Number Pool Id
          description: The ID of the numberpool associated with this attribute. Only set after the number pool has been provisioned.
          update: not_supported
      additionalProperties: false
      type: object
      title: NumberPoolParameters
    APIGenericSchema:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: The ID of the node
          update: not_applicable
        state:
          $ref: '#/components/schemas/HashableModelState'
          description: Expected state of the node/generic after loading the schema
          default: present
          update: not_applicable
        name:
          type: string
          maxLength: 32
          minLength: 2
          pattern: ^[A-Z][a-zA-Z0-9]+$
          title: Name
          description: Node name, must be unique within a namespace and must start with an uppercase letter.
          update: migration_required
        namespace:
          type: string
          maxLength: 64
          minLength: 3
          pattern: ^[A-Z][a-z0-9]+$
          title: Namespace
          description: Node Namespace, Namespaces are used to organize models into logical groups and to prevent name collisions.
          update: migration_required
        description:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Description
          description: Short description of the model, will be visible in the frontend.
          update: allowed
        label:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Label
          description: Human friendly representation of the name/kind
          update: allowed
        branch:
          $ref: '#/components/schemas/BranchSupportType'
          description: Type of branch support for the model.
          default: aware
          update: not_supported
        default_filter:
          anyOf:
          - type: string
            pattern

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/opsmill/refs/heads/main/openapi/opsmill-schema-api-openapi.yml