OutSystems Libraries API

The Libraries API from OutSystems — 1 operation(s) for libraries.

OpenAPI Specification

outsystems-libraries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Portfolio Libraries API
  description: 'REST endpoints for retrieving information about assets and environments in your organization.

    '
  version: v2
servers:
- url: https://ODC_PORTAL_DOMAIN/api/portfolios/v2
  description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/portfolios/v2
  description: Replace {odc-portal-domain} with the domain of your organization.
  variables:
    odc-portal-domain:
      default: ODC_PORTAL_DOMAIN
      description: The domain of your organization
security:
- bearerAuth: []
tags:
- name: Libraries
  description: ''
paths:
  /libraries:
    get:
      tags:
      - Libraries
      summary: Retrieves a list of libraries in the tenant portfolio.
      description: 'Retrieves all libraries available in the tenant portfolio, including their latest revision

        and all tagged revisions. Each library exposes the portfolio it belongs to and can be

        filtered by portfolio key.


        API client must have at least one permission.'
      operationId: Libraries_ListLibraries
      parameters:
      - name: limit
        in: query
        description: Max number of elements that should be returned in a single page.
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: Offset of the last page, to get the following page with the same filters applied.
        schema:
          type: integer
          format: int32
      - name: key
        in: query
        description: Filter by asset key(s), comma separated.
        schema:
          type: string
      - name: type
        in: query
        description: 'Filter by asset type(s), comma separated.

          Available values: LowCodeLibrary, ExtensionLibrary, ExternalLibrary, WidgetLibrary, MobileLibrary.'
        schema:
          type: array
          items:
            type: string
      - name: nameContains
        in: query
        description: Filter by matching on the name, case-insensitive.
        schema:
          type: string
      - name: permissionFilter
        in: query
        description: 'Filter by permission type. Format: ''PermissionType'' or ''PermissionType.EnvironmentKey''.'
        schema:
          type: string
      - name: sort
        in: query
        description: 'Sort order. Format: Field:asc or Field:desc. Supported fields: Name, PublishDateTime.

          Example: sort=Name:asc or sort=PublishDateTime:desc.'
        schema:
          type: array
          items:
            $ref: '#/components/schemas/LibrarySortListSortDirectionValueTuple'
      - name: portfolioKey
        in: query
        description: Filter by portfolio key. Returns only libraries belonging to this portfolio.
        schema:
          type: string
          format: uuid
      - name: revisions
        in: query
        description: 'Which revisions to return per library: ''latest'' (default), ''highestTag'', or ''all''.

          ''highestTag'' selects the tagged revision with the highest SemVer (Major.Minor.Patch) version.'
        schema:
          allOf:
          - $ref: '#/components/schemas/LibraryRevisionsFilter'
      responses:
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryPagedListResponse'
      x-os-permissions: API client must have at least one permission.
components:
  schemas:
    LibraryRevision:
      required:
      - name
      type: object
      properties:
        revision:
          type: integer
          description: The revision number.
          format: int32
        name:
          type:
          - string
          - 'null'
          description: The name of the library at this revision.
        description:
          type:
          - string
          - 'null'
          description: The description of the library at this revision.
        iconUrl:
          type:
          - string
          - 'null'
          description: The pre-signed URL for the library icon.
        publishDateTime:
          type: string
          description: The date and time at which this revision was published (UTC).
          format: date-time
        publishUserKey:
          type:
          - string
          - 'null'
          description: The key of the user who published this revision.
        tag:
          type:
          - string
          - 'null'
          description: The version tag applied to this revision, if any.
        taggingUserKey:
          type:
          - string
          - 'null'
          description: The key of the user who applied the version tag, if any.
        taggingDateTime:
          type:
          - string
          - 'null'
          description: The date and time at which the version tag was applied (UTC), if any.
          format: date-time
        isLatest:
          type: boolean
          description: 'Whether this is the latest revision of the library. Derived at read time as

            `revision == max(revision)` across the library''s cached revisions; not a persisted flag.'
      additionalProperties: false
      description: A specific revision of a library asset.
    LibraryRevisionsFilter:
      enum:
      - Latest
      - HighestTag
      - All
      type: string
      description: Controls which revisions of each library are returned by GET /libraries.
    ProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the problem type.
        title:
          type:
          - string
          - 'null'
          description: A short, human-readable summary of the problem.
        status:
          type:
          - integer
          - 'null'
          description: The HTTP status code applicable to the problem.
          format: int32
        detail:
          type:
          - string
          - 'null'
          description: A human-readable explanation of the error.
        instance:
          type:
          - string
          - 'null'
          description: A URI that identifies the specific occurrence of the problem.
        traceId:
          type: string
          description: This field helps OutSystems support to track and investigate specific error occurrences. Providing this identifier when reporting an issue allows for more precise and faster  troubleshooting.
        errorCode:
          type: string
          description: This error code serves the purpose to communicate with OutSystems Support and help diagonose errors.
      description: A standardized error response as per RFC 7807 (Problem Details for HTTP APIs).
    LibraryPagedListResponse:
      type: object
      properties:
        page:
          allOf:
          - $ref: '#/components/schemas/PageInfoWithTotals'
          description: Page information.
          readOnly: true
        results:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Library'
          description: List of results.
          readOnly: true
      additionalProperties: false
      description: Represents a response containing a paged set of results.
    LibrarySortListSortDirectionValueTuple:
      type: object
      additionalProperties: false
    PageInfoWithTotals:
      type: object
      properties:
        count:
          type: integer
          description: Number of results in the current page.
          format: int32
        limit:
          type: integer
          description: Limit of results per page.
          format: int32
        offset:
          type:
          - integer
          - 'null'
          description: Offset of the current page of results.
          format: int32
        nextPageOffset:
          type:
          - integer
          - 'null'
          description: Offset of the next page of results.
          format: int32
        totalResults:
          type: integer
          description: Total of results.
          format: int32
        totalPages:
          type: integer
          description: Total of result pages.
          format: int32
          readOnly: true
      additionalProperties: false
      description: Contains response page information including totals.
    Library:
      required:
      - portfolioKey
      - type
      type: object
      properties:
        key:
          type: string
          description: The asset key.
          format: uuid
        type:
          type:
          - string
          - 'null'
          description: The type of library (LowCodeLibrary, ExtensionLibrary, ExternalLibrary, WidgetLibrary).
        isBuiltIn:
          type: boolean
          description: Whether the library is a built-in asset.
        portfolioKey:
          type: string
          description: The portfolio key the library belongs to.
          format: uuid
        revisions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/LibraryRevision'
          description: The library revisions (latest revision and all tagged revisions, deduplicated).
      additionalProperties: false
      description: Library asset with its available revisions.
  securitySchemes:
    bearerAuth:
      type: http
      description: Enter your bearer token in the format 'Bearer {token}'
      scheme: bearer
      bearerFormat: JWT