OutSystems Generation Operations API

The GenerationOperations API from OutSystems — 4 operation(s) for generationoperations.

OpenAPI Specification

outsystems-generationoperations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: External Library Generation Service Generation Operations API
  description: 'API for generating and managing external libraries from high-code packages.

    '
  version: v1
servers:
- url: https://ODC_PORTAL_DOMAIN/api/external-libraries/v1
  description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/external-libraries/v1
  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: GenerationOperations
paths:
  /generation-operations:
    post:
      tags:
      - GenerationOperations
      summary: Generate an external library from a high-code package.
      description: "Asynchronously generates an external library using the HighCode package, containing the compiled code of the library.\n\nRequired permissions:\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
      operationId: GenerationOperations_CreateGenerationOperation
      requestBody:
        description: External library generation operation creation request.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Models.GenerationOperationCreationRequest'
              description: Request to create a generation operation.
      responses:
        '201':
          description: The generation operation key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.CreationOperationResponse'
        '400':
          description: Request is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Not authorized to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Insufficient permissions to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      x-os-permissions: "Required permissions:\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
    get:
      tags:
      - GenerationOperations
      summary: Returns the list of generation operations.
      description: 'Gets the list of all available generation operations.


        API Client needs at least one permission.'
      operationId: GenerationOperations_GetGenerationOperations
      responses:
        '200':
          description: The list of generation operations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationListResponse'
        '401':
          description: Not authorized to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Insufficient permissions to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '410':
          description: Client cancelled the execution of the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
  /generation-operations/{operationKey}:
    delete:
      tags:
      - GenerationOperations
      summary: Deletes a generation operation.
      description: "Deletes a specific generation operation and all associated logs.\n\nRequired permissions:\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
      operationId: GenerationOperations_DeleteGenerationOperationByOperationKey
      parameters:
      - name: operationKey
        in: path
        description: The operation key.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Generation operation was successfully deleted.
        '401':
          description: Not authorized to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Insufficient permissions to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Generation Operation not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '410':
          description: Client cancelled the execution of the request.
      x-os-permissions: "Required permissions:\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
    get:
      tags:
      - GenerationOperations
      summary: Returns the details of a generation operation.
      description: 'Returns the details of a generation operation its key.


        API Client needs at least one permission.'
      operationId: GenerationOperations_GetGenerationOperationByOperationKey
      parameters:
      - name: operationKey
        in: path
        description: The operation key.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The generation operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationResponse'
        '401':
          description: Not authorized to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Insufficient permissions to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '410':
          description: Client cancelled the execution of the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Generation Operation not found.
  /generation-operations/{operationKey}/contents:
    get:
      tags:
      - GenerationOperations
      summary: Returns the contents of the specified generation operation.
      description: "Returns the actions and structures defined on the high code package corresponding to the specified generation operation\n\nRequired permissions:\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
      operationId: GenerationOperations_GetGenerationOperationContents
      parameters:
      - name: operationKey
        in: path
        description: The generation operation key.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The generation operation contents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationContentsResponse'
        '400':
          description: Generation operation key is not a valid GUID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Not authorized to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Insufficient permissions to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: generation operation not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '410':
          description: Client cancelled the execution of the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      x-os-permissions: "Required permissions:\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
  /generation-operations/{operationKey}/log-messages:
    get:
      tags:
      - GenerationOperations
      summary: Get log messages.
      description: "Returns the validation messages for the specified generation operation.\n\nRequired permissions:\n - If generation operation has no library key associated (failed to get extracted from high code): **Asset management > Create** or **Asset management > Change**\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
      operationId: GenerationOperations_GetGenerationOperationLogMessages
      parameters:
      - name: operationKey
        in: path
        description: The generation operation key.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The generation operation details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationLogMessagesResponse'
        '400':
          description: Generation operation key is not a valid GUID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Not authorized to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Insufficient permissions to perform the requested operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Generation operation not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '410':
          description: Client cancelled the execution of the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      x-os-permissions: "Required permissions:\n - If generation operation has no library key associated (failed to get extracted from high code): **Asset management > Create** or **Asset management > Change**\n - If generation operation corresponds to a new library: **Asset management > Create**\n - If generation operation corresponds to a new version of an existing library: **Asset management > Change** for that specific library key"
components:
  schemas:
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.StructureResponse:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          description: Name of the Structure
        attributes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.AttributeResponse'
          description: List of attributes of the structure
        changeType:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Application.Enums.ChangeType'
          description: Change compared with previous version
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationValidationMessageResponse:
      type: object
      properties:
        errorCode:
          type:
          - string
          - 'null'
          description: Error Code for reference
        message:
          type:
          - string
          - 'null'
          description: Detailed message of the error
        type:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Application.Enums.JobValidationMessageType'
          description: Type of the validation message
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.CreationOperationResponse:
      type: object
      properties:
        operationKey:
          type: string
          description: The operation key
          format: uuid
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.ParameterResponse:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          description: Name of the parameter
        dataType:
          type:
          - string
          - 'null'
          description: OutSystems data type of the parameter
        parameterType:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Application.Enums.ParameterType'
          description: Type of parameter
        changeType:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Application.Enums.ChangeType'
          description: Change compared with previous version
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.AttributeResponse:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          description: Name of the attribute
        dataType:
          type:
          - string
          - 'null'
          description: OutSystems data type of the attribute
        changeType:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Application.Enums.ChangeType'
          description: Change compared with previous version
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Models.GenerationOperationCreationRequest:
      type: object
      properties:
        fileName:
          type: string
          description: The name of the file that contains the high code binary.
        highCodeBinaryUri:
          type: string
          description: The Uri to fetch the zip archive containing the high code binary.
      additionalProperties: false
      description: Request to create a generation operation.
    OutSystems.ExternalLibraryGeneration.Application.Enums.JobValidationMessageType:
      enum:
      - None
      - Information
      - Warning
      - Error
      type: string
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationListResponse:
      type: object
      properties:
        results:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationResponse'
          description: List of generation operations, sorted by CreatedAt descending
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.ActionResponse:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          description: Name of the action
        parameters:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.ParameterResponse'
          description: List of parameters of the action
        changeType:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Application.Enums.ChangeType'
          description: Change compared with previous version
        iconBase64:
          type:
          - string
          - 'null'
          description: Icon of the action represented in Base64
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationLogMessagesResponse:
      type: object
      properties:
        validationMessages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationValidationMessageResponse'
          description: List of validation messages
        finishedAt:
          type: string
          description: Timestamp of when the creation process ended, in UTC
          format: date-time
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationContentsResponse:
      type: object
      properties:
        actions:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.ActionResponse'
          description: List of actions defined in the HCPkg. Contains the delta for the currently published version in the update scenario
        structures:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.StructureResponse'
          description: List of structures defined in the HCPkg. Contains the delta for the currently published version in the update scenario
      additionalProperties: false
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Enums.GenerationOperationStatus:
      enum:
      - None
      - Generating
      - GenerationError
      - ReadyForReview
      - Downloading
      - DownloadError
      - Completed
      type: string
      description: Status of a generation operation in the v1beta1 API
    OutSystems.ExternalLibraryGeneration.Application.Enums.ChangeType:
      enum:
      - None
      - Added
      - Removed
      - Updated
      - Unchanged
      type: string
    Microsoft.AspNetCore.Mvc.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 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 diagnose errors.
      description: A standardized error response as per RFC 7807 (Problem Details for HTTP APIs).
    OutSystems.ExternalLibraryGeneration.Application.Enums.ParameterType:
      enum:
      - None
      - Input
      - Output
      type: string
    OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Controllers.DataObjects.GenerationOperationResponse:
      type: object
      properties:
        key:
          type: string
          description: Id of the external library generation operation.
          format: uuid
        filename:
          type:
          - string
          - 'null'
          description: Name of the file containing the high code package.
        createdAt:
          type: string
          description: Timestamp of when the operation was created, in UTC
          format: date-time
        libraryKey:
          type:
          - string
          - 'null'
          description: Key of the library generated from the high code package. Only available after status is ReadyForReview inclusive
          format: uuid
        libraryName:
          type:
          - string
          - 'null'
          description: Name of the library generated from the high code package. Only available after status is ReadyForReview inclusive
        libraryDescription:
          type:
          - string
          - 'null'
          description: Description of the library generated from the high code package. Only available after status is ReadyForReview inclusive
        libraryIconUri:
          type:
          - string
          - 'null'
          description: Uri to be used to fetch the library's icon. This Uri will have an expiration time of 30 minutes
        libraryUri:
          type:
          - string
          - 'null'
          description: Uri to be used to fetch the library.
        isNewLibrary:
          type:
          - boolean
          - 'null'
          description: States if the external library was already published before. Only available after status is ReadyForReview inclusive
        status:
          allOf:
          - $ref: '#/components/schemas/OutSystems.ExternalLibraryGeneration.Service.V1Beta1.Enums.GenerationOperationStatus'
          description: Status of the external library generation operation
      additionalProperties: false
      description: Response object for generation operations.
  securitySchemes:
    bearerAuth:
      type: http
      description: Enter your bearer token in the format 'Bearer {token}'
      scheme: bearer
      bearerFormat: JWT