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

# Publish a function version

> Make an approved version the live one and cut the workspace's release.
Rolling back is this call with an earlier version. If the release fails
to write, the publish still stands and `release_error` says so.

**Required roles**: `approver` or `workspace_admin`



## OpenAPI

````yaml post /api/decisions/{workspace}/functions/{name}/publish
openapi: 3.1.0
info:
  title: Nx1 AI API
  description: |

    AI API for Nx1 Data Platform Management and Automated Data Tasks.

    Authentication is required via PSK in Authorization header.

    Default PSK is | [ask a friend] |
  version: 0.10.2
servers: []
security: []
paths:
  /api/decisions/{workspace}/functions/{name}/publish:
    post:
      tags:
        - Decision functions
      summary: Publish a function version
      description: |-
        Make an approved version the live one and cut the workspace's release.
        Rolling back is this call with an earlier version. If the release fails
        to write, the publish still stands and `release_error` says so.

        **Required roles**: `approver` or `workspace_admin`
      operationId: publish_function_api_decisions__workspace__functions__name__publish_post
      parameters:
        - name: workspace
          in: path
          required: true
          schema:
            type: string
            maxLength: 64
            pattern: ^[a-z0-9][a-z0-9-]{0,63}$
            description: Workspace slug.
            title: Workspace
          description: Workspace slug.
        - name: name
          in: path
          required: true
          schema:
            type: string
            maxLength: 64
            pattern: ^[a-z][a-z0-9_]{0,63}$
            description: Function name — a Python identifier.
            title: Name
          description: Function name — a Python identifier.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FunctionPublishRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionPublicationDetail'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - OAuth2AuthorizationCodeBearer: []
        - APIKeyHeader: []
components:
  schemas:
    FunctionPublishRequest:
      properties:
        version:
          type: integer
          minimum: 1
          title: Version
          description: An approved version to publish.
      type: object
      required:
        - version
      title: FunctionPublishRequest
    FunctionPublicationDetail:
      properties:
        workspace:
          type: string
          title: Workspace
        name:
          type: string
          title: Name
        version:
          anyOf:
            - type: integer
            - type: 'null'
          title: Version
        previous_version:
          anyOf:
            - type: integer
            - type: 'null'
          title: Previous Version
        action:
          type: string
          title: Action
        actor:
          type: string
          title: Actor
        at:
          type: string
          format: date-time
          title: At
        release:
          anyOf:
            - $ref: '#/components/schemas/ReleaseSummary'
            - type: 'null'
        release_error:
          anyOf:
            - type: string
            - type: 'null'
          title: Release Error
          description: Set when the publish succeeded but writing the release did not.
      type: object
      required:
        - workspace
        - name
        - action
        - actor
        - at
      title: FunctionPublicationDetail
    ErrorResponse:
      properties:
        error:
          type: string
          title: Error
          description: A brief description of the error that occurred.
        code:
          type: integer
          title: Code
          description: The HTTP status code associated with the error.
          default: 500
      type: object
      required:
        - error
      title: ErrorResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ReleaseSummary:
      properties:
        workspace:
          type: string
          title: Workspace
        version:
          type: string
          title: Version
        sequence:
          type: integer
          title: Sequence
        status:
          $ref: '#/components/schemas/ReleaseStatusEnum'
        trigger:
          type: string
          title: Trigger
          default: ''
        package_uri:
          anyOf:
            - type: string
            - type: 'null'
          title: Package Uri
        package_sha:
          anyOf:
            - type: string
            - type: 'null'
          title: Package Sha
        package_size:
          anyOf:
            - type: integer
            - type: 'null'
          title: Package Size
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        change:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Change
        created_by:
          type: string
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
        published_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Published At
      type: object
      required:
        - workspace
        - version
        - sequence
        - status
        - created_by
        - created_at
      title: ReleaseSummary
    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
    ReleaseStatusEnum:
      type: string
      enum:
        - building
        - published
        - failed
      title: ReleaseStatusEnum
      description: Where a workspace release is in being written to S3.
  securitySchemes:
    OAuth2AuthorizationCodeBearer:
      type: oauth2
      flows:
        authorizationCode:
          scopes: {}
          authorizationUrl: >-
            https://sso-rapid.rapid.nx1cloud.com/realms/rapid/protocol/openid-connect/auth
          tokenUrl: >-
            https://sso-rapid.rapid.nx1cloud.com/realms/rapid/protocol/openid-connect/token
    APIKeyHeader:
      type: apiKey
      in: header
      name: Authorization-PSK

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.