×

The O-Cloud Manager REST API reference describes the endpoints that provide programmatic access for O-Cloud Manager operations.

The O-Cloud Manager implements the O-RAN O2 IMS specification through its REST APIs, which are designed for integration with Service Management and Orchestration (SMO) systems used in telecommunications environments. However, SMO integration is optional. The same REST APIs provide programmatic access to any external system.

The O-Cloud Manager is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.

O-Cloud Manager API request model

The O-Cloud Manager REST APIs are served over a single ingress route on the hub cluster with different paths routing to different backend services.

Base URL

All APIs share a single hostname exposed through an OKD route on the hub cluster. Each API uses a versioned path prefix appended to this hostname. For example, the Inventory API base URL has the following form: https://<route-hostname>/O2ims_infrastructureInventory/v2

Authentication

All API requests require a bearer token in the Authorization header. Each backend service independently validates the token before processing the request. For more information about acquiring a token, see the authentication procedures in the section "Prepare the O-Cloud Manager environment".

Payload conventions

PUT operations replace the entire resource. Always retrieve the current resource with GET, modify the required fields, and then submit the full payload with PUT.

Schema discovery

Use the Artifacts API to discover the parameters that a cluster template accepts before creating or updating a provisioning request. The managedInfrastructureTemplates/{id} endpoint returns the template including its templateParameterSchema, and the managedInfrastructureTemplates/{id}/defaults endpoint returns the preconfigured default values.

Filtering

Most list endpoints support the filter query parameter. Filters use the syntax (operator,field,value) with multiple conditions separated by semicolons to apply AND logic.

Table 1. Supported filter operators
Operator Description

eq

Equal to

neq

Not equal to

gt

Greater than

gte

Greater than or equal to

lt

Less than

lte

Less than or equal to

cont

Contains

ncont

Does not contain

in

One of the specified values

nin

Not one of the specified values

Use slash-separated paths for nested fields, for example extensions/<field_name>. Values containing spaces must be surrounded by single quotes.

For examples of REST API requests that use the filter parameter, see "Discover O-Cloud resources with O-Cloud Manager APIs".

Field selection

Use the fields query parameter to return only specific fields in the response. Use the exclude_fields query parameter to omit specific fields. Both parameters accept comma-separated lists with slash-separated paths for nested fields. Use the all_fields query parameter set to true to return all fields. When all_fields=true is specified, it takes precedence over fields and exclude_fields.

Inventory API operations

The Inventory API provides read-only access to the physical infrastructure hierarchy including locations, sites, resource pools, individual resources, resource types, and deployment managers. It also supports subscriptions for change notifications.

All endpoints use the base path /O2ims_infrastructureInventory/v2.

The globalLocationId value is the metadata.name of the associated Location custom resource (CR). All other identifiers in this API, such as oCloudSiteId, resourcePoolId, resourceId, resourceTypeId, deploymentManagerId, and alarmDictionaryId, are generated by the O-Cloud Manager. Use the corresponding list operation to discover these values. For example, send a request to the /resourcePools endpoint to find a resourcePoolId. The subscriptionId value is returned in the response when you create a subscription.

Table 2. Inventory API endpoints
Method Path Description

GET

/

Retrieve O-Cloud metadata

GET

/api_versions

List supported API versions

GET

/locations

List locations

GET

/locations/{globalLocationId}

Get a specific location

GET

/oCloudSites

List O-Cloud sites

GET

/oCloudSites/{oCloudSiteId}

Get a specific O-Cloud site

GET

/resourcePools

List resource pools

GET

/resourcePools/{resourcePoolId}

Get a specific resource pool

GET

/resourcePools/{resourcePoolId}/resources

List resources in a pool

GET

/resourcePools/{resourcePoolId}/resources/{resourceId}

Get a specific resource

GET

/resourceTypes

List resource types

GET

/resourceTypes/{resourceTypeId}

Get a specific resource type

GET

/resourceTypes/{resourceTypeId}/alarmDictionary

Get the alarm dictionary for a resource type

GET

/deploymentManagers

List deployment managers

GET

/deploymentManagers/{deploymentManagerId}

Get a specific deployment manager

GET

/subscriptions

List inventory subscriptions

GET

/subscriptions/{subscriptionId}

Get a specific subscription

POST

/subscriptions

Create an inventory subscription

DELETE

/subscriptions/{subscriptionId}

Delete an inventory subscription

GET

/alarmDictionaries

List alarm dictionaries

GET

/alarmDictionaries/{alarmDictionaryId}

Get a specific alarm dictionary

Artifacts API operations

The Artifacts API exposes available cluster templates, their parameter schemas, and preconfigured defaults. Use this API to discover what parameters a template accepts before creating or updating a provisioning request.

All endpoints use the base path /O2ims_infrastructureArtifacts/v1.

The managedInfrastructureTemplateId value has the format <name>.<version>, where <name> and <version> are the base name and version of the associated ClusterTemplate custom resource (CR), for example sno-ran-du.v4-18-5-v1.

Table 3. Artifacts API endpoints
Method Path Description

GET

/managedInfrastructureTemplates

List available cluster templates

GET

/managedInfrastructureTemplates/{managedInfrastructureTemplateId}

Get a specific template including its parameter schema

GET

/managedInfrastructureTemplates/{managedInfrastructureTemplateId}/defaults

Get the preconfigured defaults for a template

Provisioning API operations

The Provisioning API manages the full lifecycle of provisioning requests. Use this API to create, retrieve, update, and delete provisioning requests that drive cluster provisioning, scaling, configuration changes, and upgrades.

All endpoints use the base path /O2ims_infrastructureProvisioning/v1.

The provisioningRequestId value is a UUID that you generate and assign as the metadata.name of the ProvisioningRequest custom resource (CR) when you create it.

Table 4. Provisioning API endpoints
Method Path Description

GET

/provisioningRequests

List all provisioning requests

GET

/provisioningRequests/{provisioningRequestId}

Get a specific provisioning request

POST

/provisioningRequests

Create a provisioning request

PUT

/provisioningRequests/{provisioningRequestId}

Update a provisioning request (full replace)

DELETE

/provisioningRequests/{provisioningRequestId}

Delete a provisioning request and its managed cluster

Cluster API operations

The Cluster API provides information about managed clusters (node clusters), their resource composition (cluster resources), node cluster types, and cluster resource types. It also supports subscriptions for change notifications when cluster resources are created, modified, or deleted.

All endpoints use the base path /O2ims_infrastructureCluster/v1.

The identifiers in this API, such as nodeClusterId, nodeClusterTypeId, clusterResourceId, clusterResourceTypeId, and alarmDictionaryId, are generated by the O-Cloud Manager. Use the corresponding list operation to discover these values. For example, send a request to the /nodeClusters endpoint to find a nodeClusterId. The subscriptionId value is returned in the response when you create a subscription.

Table 5. Cluster API endpoints
Method Path Description

GET

/nodeClusters

List node clusters

GET

/nodeClusters/{nodeClusterId}

Get a specific node cluster

GET

/nodeClusterTypes

List node cluster types

GET

/nodeClusterTypes/{nodeClusterTypeId}

Get a specific node cluster type

GET

/nodeClusterTypes/{nodeClusterTypeId}/alarmDictionary

Get the alarm dictionary for a cluster type

GET

/clusterResources

List cluster resources

GET

/clusterResources/{clusterResourceId}

Get a specific cluster resource

GET

/clusterResourceTypes

List cluster resource types

GET

/clusterResourceTypes/{clusterResourceTypeId}

Get a specific cluster resource type

GET

/subscriptions

List cluster subscriptions

GET

/subscriptions/{subscriptionId}

Get a specific subscription

POST

/subscriptions

Create a cluster subscription

DELETE

/subscriptions/{subscriptionId}

Delete a cluster subscription

GET

/alarmDictionaries

List alarm dictionaries

GET

/alarmDictionaries/{alarmDictionaryId}

Get a specific alarm dictionary

Monitoring API operations

The Monitoring API provides access to alarms raised by managed clusters. Use this API to query and acknowledge alarms, retrieve the alarm service configuration, and manage alarm subscriptions for event-driven notifications.

All endpoints use the base path /O2ims_infrastructureMonitoring/v1.

The alarmEventRecordId value is generated by the O-Cloud Manager. Use the /alarms endpoint to discover the identifiers for active alarms. The alarm subscription identifier is returned in the response when you create a subscription.

Table 6. Monitoring API endpoints
Method Path Description

GET

/alarms

List all alarms

GET

/alarms/{alarmEventRecordId}

Get a specific alarm

PATCH

/alarms/{alarmEventRecordId}

Acknowledge an alarm

GET

/alarmServiceConfiguration

Get alarm service configuration

GET

/alarmSubscriptions

List alarm subscriptions

POST

/alarmSubscriptions

Create an alarm subscription

DELETE

/alarmSubscriptions/{subscriptionId}

Delete an alarm subscription