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

# Set the schema for the project variables

> SetProjectVariablesSchema sets the JSON schema for the project's dynamic variables. Dynamic variables can then
be set by end users on activation. This schema is used to validate the variables when they are set and defines
the variables that can be set and used within the integration code.




## OpenAPI

````yaml /openapi/platform-api.yaml put /o/{organisation_id}/projects/{project_id}/variables
openapi: 3.1.0
info:
  title: Versori Platform API
  version: 0.0.1
  license:
    name: UNLICENSED
servers:
  - description: Production
    url: https://platform.versori.com/api/v2
  - description: Staging
    url: https://platform-staging.versori.com/api/v2
  - description: Development
    url: http://localhost:8901
security:
  - bearerToken: []
  - cookie: []
paths:
  /o/{organisation_id}/projects/{project_id}/variables:
    parameters:
      - $ref: '#/components/parameters/organisation_id'
      - $ref: '#/components/parameters/project_id'
    put:
      tags:
        - projects
      summary: Set the schema for the project variables
      description: >
        SetProjectVariablesSchema sets the JSON schema for the project's dynamic
        variables. Dynamic variables can then

        be set by end users on activation. This schema is used to validate the
        variables when they are set and defines

        the variables that can be set and used within the integration code.
      operationId: SetProjectVariablesSchema
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DynamicVariablesSchema'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicVariablesSchema'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    organisation_id:
      name: organisation_id
      in: path
      required: true
      schema:
        type: string
        format: ulid
        x-go-type: ulid.ULID
        x-go-name: OrganisationID
        x-go-type-import:
          path: versori.dev/vergo/ulid
    project_id:
      name: project_id
      in: path
      required: true
      schema:
        type: string
        format: ulid
        x-go-type: ulid.ULID
        x-go-name: ProjectID
        x-go-type-import:
          path: versori.dev/vergo/ulid
  schemas:
    DynamicVariablesSchema:
      description: >
        DynamicVariablesSchema is the JSON schema for the project's dynamic
        variables.
      type: object
      x-go-type-skip-optional-pointer: true
      x-go-type: json.RawMessage
    Error:
      type: object
      properties:
        code:
          type: string
          description: Code is a machine-readable error code.
        message:
          type: string
          description: Message is a human-readable error message.
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ErrorField'
          x-go-type-skip-optional-pointer: true
        details:
          type: string
          x-go-type-skip-optional-pointer: true
      required:
        - code
        - message
    ErrorField:
      description: ErrorField denotes a field which has an error.
      type: object
      properties:
        field:
          type: string
          description: >
            Field is the name of the field which has an error, this may be a
            path to a nested field, including array

            elements. The format of this field is of the form:
            "field1.field2[0].field3"
        message:
          type: string
          description: Message is the error message for this specific field.
      required:
        - field
        - message
  securitySchemes:
    bearerToken:
      description: >
        Bearer token authentication used by the Versori Platform. External
        consumers must provide an API key, however

        internal consumers must provide a JWT id_token issued by our IdP.
      type: http
      scheme: bearer
    cookie:
      description: Cookie authentication used by the Versori Platform.
      type: apiKey
      in: cookie
      name: cookie

````