Workspace Operations APIs

You can expose Siebel workspace operations as REST APIs using Siebel Open Integration. Workspace operations represent the lifecycle activities performed on a workspace, from creation through delivery. These operations help manage changes in a controlled, auditable, and conflict-free manner.

To expose Siebel workspace operations as REST APIs, configure the openintegration/v1.0/wsoperation resource in the apigen > resources section in the config.json file.

The openintegration/v1.0/wsoperation resource supports only the All value.

The following example from the config.json file shows the configuration for exposing workspace operations as REST APIs:

"apigen": {
    "resources": {
      "openintegration/v1.0/wsoperation": [
        "All"
      ]      
   }
}

Supported Operations

The Workspace Operations REST API supports several operations:

This table shows the supported operations:

Note:

Angle brackets (< >) indicate placeholders that you must replace with actual values. For example, replace <hostname:port> with the host name and port number of your environment, such as machine123:8443.

Supported Operation Method Endpoint
Create workspace Creates a new workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/Create
Get workspace details Retrieves details of the specified workspace. GET https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>
Get workspace details by version Retrieves details of the specified workspace for the specified workspace version. GET https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/<version>
Delete a workspace Deletes the specified workspace. DELETE https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>
Delete multiple workspaces Deletes multiple workspaces based on the request body. DELETE https://<hostname:port>/<context>/openintegration/v1.0/wsoperation
Checkpoint a workspace Creates a checkpoint for the specified workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/Checkpoint
Deliver a workspace Delivers the changes in the specified workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/Deliver
Rebase a workspace Rebases the specified workspace with the latest changes from its parent workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/Rebase
Finish a rebase Completes the rebase operation for the specified workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/FinishRebase
Cancel a rebase Cancels the rebase operation for the specified workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/CancelRebase
Revert a workspace Reverts the changes in the specified workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/Revert
Submit a workspace for delivery Submits the specified workspace for delivery. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/SubmitForDelivery
Undo submit for delivery Cancels the submit-for-delivery status of the specified workspace. POST https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/<workspace-name>/UndoSubmitForDelivery

Examples

  1. Create a workspace: This example creates a new workspace:
    Request:
    • Method: POST
    • Endpoint: https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/Create

    • Request Body:
      {
        "Build Branch Flag": "N",
        "Name": "dev_sadmin_ws_1783494726",
        "Parent Name": "MAIN",
        "Parent Version": "LATEST",
        "Comments": "WS Creation"
      }

    Response:

    {
      "Name": "dev_sadmin_ws_1783494726",
      "Status": "Created",
      "Id": "88-4DCDUR",
      "Parent Name": "MAIN",
      "Parent Version": "27"
    }
    
  2. Create multiple workspaces: This example creates multiple workspaces in a single request:
    Request:
    • Method: POST
    • Endpoint: https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/Create

    • Request Body:
      {
        "workspaces": [
          {
            "Build Branch Flag": "N",
            "Name": "dev_sadmin_ws_17834956581",
            "Parent Name": "MAIN",
            "Parent Version": "LATEST",
            "Comments": "WS Creation"
          },
          {
            "Build Branch Flag": "N",
            "Name": "dev_sadmin_ws_178349565812",
            "Parent Name": "MAIN",
            "Parent Version": "LATEST",
            "Comments": "WS Creation"
          }
        ]
      }

    Response:

    {
      "workspaces": [
        {
          "Name": "dev_sadmin_ws_17834956581",
          "Status": "Created",
          "Id": "88-4DCDUW",
          "Parent Name": "MAIN",
          "Parent Version": "27"
        },
        {
          "Name": "dev_sadmin_ws_178349565812",
          "Status": "Created",
          "Id": "88-4DCDV0",
          "Parent Name": "MAIN",
          "Parent Version": "27"
        }
      ]
    }
  3. Retrieve workspace details: This example retrieves details of the dev_sadmin_ws_1783494726 workspace:
    Request:
    • Method: GET
    • Endpoint: https://hostname:port//openintegration/v1.0/wsoperation/dev_sadmin_ws_1783494726

    Response:

    {
      "Name": "dev_sadmin_ws_1783494726",
      "Status": "Created",
      "Id": "88-4DCDUR",
      "Latest Version": "0",
      "Parent Workspace Version": "27",
      "Parent Workspace Name": "MAIN",
      "Comments": "WS Creation",
      "Modified Objects": []
    }
  4. Delete a workspace: This example deletes the dev_sadmin_ws_1783494726 workspace:
    Request:
    • Method: DELETE
    • Endpoint: https://<hostname:port>/<context>/openintegration/v1.0/wsoperation/dev_sadmin_ws_1783494726

    Response:

    {
      "Name": "dev_sadmin_ws_1783494726",
      "Id": "88-4DCDUR"
    }
  5. Delete multiple workspaces: This example deletes multiple workspaces in a single request:
    Request:
    • Method: DELETE
    • Endpoint: https://<hostname:port>/<context>/openintegration/v1.0/wsoperation

    • Request Body:
      {
        "workspaces": [
          {
            "Name": "dev_sadmin_ws_17834956581"
          },
          {
            "Name": "dev_sadmin_ws_178349565812"
          }
        ]
      }

    Response:

    {
      "workspaces": [
        {
          "Name": "dev_sadmin_ws_17834956581",
          "Id": "88-4DCDUW"
        },
        {
          "Name": "dev_sadmin_ws_178349565812",
          "Id": "88-4DCDV0"
        }
      ]
    }