> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assetinfinity.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Put the plan as it now stands into force as the next version, and retire the one it replaces.

> The schedule is unaffected — generation has always read the live plan — so what changes is which
version the rounds raised from here on record. Refused where nothing differs from the version in
force, and refused on the same blockers as activation. Requires maintenance.plan.approve.



## OpenAPI

````yaml /api-reference/openapi.json post /rpc/publish_maintenance_plan_version
openapi: 3.0.0
info:
  description: ''
  title: >-
    The only schema PostgREST exposes. Reads are security_invoker views; writes
    are SECURITY DEFINER functions. Rebuilt wholesale on every deploy — it holds
    no data.
  version: 12.2.3
servers:
  - url: https://app.assetinfinity.ai/api
security: []
tags:
  - name: Signing in
  - name: Profile
  - name: Assets
  - name: Asset lifecycle
  - name: Work lifecycle
  - name: Maintenance
  - name: Inventory
  - name: Inventory detail
  - name: Procurement
  - name: Contracts
  - name: Workforce
  - name: Capacity
  - name: Dispatch
  - name: Tools
  - name: Inspections
  - name: Verification
  - name: Reliability
  - name: Parts demand
  - name: Sensors and meters
  - name: Map
  - name: Floor plans
  - name: Labels
  - name: Lost and found
  - name: Root cause analysis
  - name: Reports
  - name: Audit center
  - name: Activity
  - name: Notifications
  - name: Channels
  - name: Search
  - name: Copilot
  - name: Import
  - name: Files
  - name: Sync
  - name: Support
  - name: Admin
  - name: Access
  - name: Lookups
  - name: Read models
  - name: Branding
  - name: Custom fields
  - name: Form studio
  - name: Workflows
  - name: Workflow studio
  - name: Rules
  - name: Statuses and transitions
  - name: Currencies and locales
  - name: Work configuration
  - name: Asset configuration
  - name: Inventory configuration
  - name: Tool configuration
  - name: Workforce configuration
  - name: Vendor and contract configuration
  - name: Document configuration
  - name: Inspection configuration
  - name: Sites, locations and the organisation
  - name: Platform
  - name: Amendments
  - name: Asset clone
  - name: Asset components
  - name: Asset register
  - name: Asset transfer
  - name: Audit feed
  - name: Billing
  - name: Bookings
  - name: Budgets
  - name: Bulk jobs
  - name: Calibration history
  - name: Capex plans
  - name: Conversations
  - name: Costing
  - name: Currency
  - name: Dashboards
  - name: Directory sync
  - name: Document control
  - name: Document folders
  - name: Document tree
  - name: Documents
  - name: Energy
  - name: Extracts
  - name: Features
  - name: Feeds
  - name: File exchange
  - name: Filing exceptions
  - name: Finance
  - name: Inbound mail
  - name: Keys
  - name: Knowledge
  - name: Licence
  - name: List views
  - name: Locations
  - name: Mapping
  - name: Mcp
  - name: Mcp oauth
  - name: Mfa
  - name: Numbering
  - name: Permits
  - name: Readers
  - name: Reference
  - name: Reference columns
  - name: Reference entry
  - name: Release
  - name: Scim
  - name: Security streams
  - name: Self verification
  - name: Setup
  - name: Shutdown
  - name: Sso
  - name: Telegram
  - name: Tenant switch
  - name: The caller's own work
  - name: The checklist library
  - name: Tools on a job, and who has them out
  - name: Tray
  - name: Vendor spend forecast
  - name: Vendors and contracts
  - name: Visitors
  - name: Work order execution
  - name: Work sequencing
  - name: Workforce detail
externalDocs:
  description: PostgREST Documentation
  url: https://postgrest.org/en/v12/references/api.html
paths:
  /rpc/publish_maintenance_plan_version:
    post:
      tags:
        - Maintenance
      summary: >-
        Put the plan as it now stands into force as the next version, and retire
        the one it replaces.
      description: >-
        The schedule is unaffected — generation has always read the live plan —
        so what changes is which

        version the rounds raised from here on record. Refused where nothing
        differs from the version in

        force, and refused on the same blockers as activation. Requires
        maintenance.plan.approve.
      parameters:
        - $ref: '#/components/parameters/preferParams'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Put the plan as it now stands into force as the next version,
                and retire the one it replaces.


                The schedule is unaffected — generation has always read the live
                plan — so what changes is which

                version the rounds raised from here on record. Refused where
                nothing differs from the version in

                force, and refused on the same blockers as activation. Requires
                maintenance.plan.approve.
              properties:
                p_change_summary:
                  format: text
                  type: string
                p_plan_id:
                  format: uuid
                  type: string
              required:
                - p_plan_id
              type: object
          application/vnd.pgrst.object+json:
            schema:
              description: >-
                Put the plan as it now stands into force as the next version,
                and retire the one it replaces.


                The schedule is unaffected — generation has always read the live
                plan — so what changes is which

                version the rounds raised from here on record. Refused where
                nothing differs from the version in

                force, and refused on the same blockers as activation. Requires
                maintenance.plan.approve.
              properties:
                p_change_summary:
                  format: text
                  type: string
                p_plan_id:
                  format: uuid
                  type: string
              required:
                - p_plan_id
              type: object
          application/vnd.pgrst.object+json;nulls=stripped:
            schema:
              description: >-
                Put the plan as it now stands into force as the next version,
                and retire the one it replaces.


                The schedule is unaffected — generation has always read the live
                plan — so what changes is which

                version the rounds raised from here on record. Refused where
                nothing differs from the version in

                force, and refused on the same blockers as activation. Requires
                maintenance.plan.approve.
              properties:
                p_change_summary:
                  format: text
                  type: string
                p_plan_id:
                  format: uuid
                  type: string
              required:
                - p_plan_id
              type: object
          text/csv:
            schema:
              description: >-
                Put the plan as it now stands into force as the next version,
                and retire the one it replaces.


                The schedule is unaffected — generation has always read the live
                plan — so what changes is which

                version the rounds raised from here on record. Refused where
                nothing differs from the version in

                force, and refused on the same blockers as activation. Requires
                maintenance.plan.approve.
              properties:
                p_change_summary:
                  format: text
                  type: string
                p_plan_id:
                  format: uuid
                  type: string
              required:
                - p_plan_id
              type: object
        required: true
      responses:
        '200':
          description: OK
components:
  parameters:
    preferParams:
      description: Preference
      in: header
      name: Prefer
      required: false
      schema:
        enum:
          - params=single-object
        type: string

````