This documentation supports releases of BMC Helix Continuous Optimization up to December 31, 2021. To view the latest version, select the version from the Product version menu.

Using REST APIs

The Application Programming Interfaces (APIs) are provided as Representational State Transfer (RESTful) web services. You can access these services using clients implemented in any programming language that supports the HTTP protocol. BMC Helix Continuous Optimization provides REST API endpoints to perform all tasks that are currently supported by the application. These REST API endpoints are documented in the OpenAPI UI.

Accessing the OpenAPI host for APIs

  1. In BMC Helix Portal Create an API user Open link
    Use the secret key to authenticate yourself before you run an endpoint. 
  2. From a supported browser, enter the following URL to access the API documentation in OpenAPI:
    https://<host name>/opt/api/<service-name>/openapi.yaml 
    For example, to access the catalog API, enter https://<host name>/opt/api/catalog/openapi.yaml 
  3. In the OpenAPI UI, you can access, test, and execute any APIs supported by the service.

To see example parameters for any of the following endpoints, click Try it out. Retain the example values for the parameters, or replace them with any valid value. Then click Execute to see the Curl command, request URL, and the response body for the request.

Agent Data endpoints

URL to access: https://<host name>/opt/api/agentdata/openapi.yaml 

openapi: 3.0.2 info: version: 1.0.1 title: Agent Data Service paths: /opt/api/agentdata/about: get: summary: About info description: About info operationId: about tags: - About responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AboutInfo' /opt/api/v1/agentdata/gwsrequest: post: summary: Post GWS Request description: Post GWS Request operationId: postgwsrequest tags: - GWSRequest requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GWSSoapRequest' responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/GWSSoapResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' put: summary: Put GWS Request description: Put GWS Request operationId: putgwsrequest tags: - GWSRequest requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GWSCompletionRequest' responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/agentdata/gwsrequest/{gws_id}': get: summary: Get GWS Request description: Get GWS Request operationId: getgwsrequest tags: - GWSRequest parameters: - name: gws_id description: The gws id in: path required: true schema: type: string example: 'https:%2F%2Fgws1.company.com:port' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GWSGetItemsResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError'

Analysis endpoints

URL to access: https://<host name>/opt/api/analysis/openapi.yaml 

openapi: 3.0.3 info: version: 1.5.9 title: Analysis Service tags: - name: Analysis description: Run analyses and check their status - name: About description: The status of the service - name: Executions description: Get execution status of asynchronous requests - name: Results description: Get details and assets produced by asynchronous executions - name: Entity Filter description: Resolve entity filters and get related entity ids - name: Threshold description: Extract thresholds for entites and metrics - name: Queueing Network Model description: Create Queueing Network model properties - name: Time Filter description: Resolve time filters paths: /opt/api/analysis/about: get: summary: About info description: About info operationId: about tags: - About responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AboutInfo' deprecated: false /opt/api/v1/analysis/execute: post: summary: Execute analysis description: Executes an analysis and returns results synchronously operationId: executeAnalysis tags: - Analysis requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AnalysisExecutionRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/ChartResults' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/execute_real_time: post: summary: Execute analysis for real time scenarios (user requests) description: >- Executes an analysis and returns results synchronously. Used for real time scenarios (user requests) operationId: executeAnalysisRealTime tags: - Analysis requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AnalysisExecutionRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/ChartResults' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/execute_async: post: summary: Execute analysis asynchronously description: Executes an analysis asynchronously operationId: executeAnalysisAsync tags: - Analysis requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AnalysisExecutionAsyncRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/AnalysisAsyncResponse' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/executions/{execution_id}': get: summary: Retrieve the status of an analysis execution description: Retrieve the status of an analysis execution operationId: getExecutionById tags: - Executions parameters: - name: execution_id in: path description: Id of the analysis execution required: true schema: type: string pattern: '^[\w-]+$' responses: '200': description: The details of the requested execution content: application/json: schema: $ref: '#/components/schemas/ExecutionResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' delete: summary: Cancel the analysis execution by execution id description: Kill (if running) or cancel the analysis execution by execution id operationId: cancelExecutionById tags: - Executions parameters: - name: execution_id in: path description: Id of the analysis execution required: true schema: type: string responses: '202': description: kill request accepted content: application/json: schema: $ref: '#/components/schemas/KillResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/BadRequest' '410': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/executions: get: summary: Retrieve recent execution results description: Retrieve recent execution results for the current user operationId: getExecutions tags: - Executions parameters: - name: all in: query description: >- If true and the user has admin rights, it returns recent execution results for all users schema: type: boolean responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/ExecutionsResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/executions/tag/{external_group_id}': get: summary: Retrieve the list of all executions with a specific tag description: Retrieve the list of all executions with a specific tag operationId: getExecutionsByTag tags: - Executions parameters: - name: external_group_id in: path description: tag group id required: true schema: type: string responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/ExecutionsResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' delete: summary: Cancel all the executions with a specific tag description: >- Kill (if running) or cancel the execution of all the executions with a specific tag operationId: cancelExecutionsByTag tags: - Executions parameters: - name: external_group_id in: path description: tag group id required: true schema: type: string responses: '202': description: Cancellation request accepted content: application/json: schema: $ref: '#/components/schemas/ExecutionCancelResponse' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/results/{type}/{id}': get: summary: Retrieve execution details description: Retrieve the details of the analysis/model with the selected plot id operationId: getResults tags: - Results parameters: - name: type in: path required: true schema: $ref: '#/components/schemas/ExecutionType' - name: id in: path required: true schema: type: integer description: The id of the plot or model example: 13834 - name: session_id in: query description: >- The session id is used to avoid concurrent modification for multiple executions for the same analysis. Pass the session id to retrieve execution results related to a specific user session. Without session id, results produced by the latest execution overall will be returned. schema: type: string pattern: '^[\w-]+$' example: 312f30e7-28a2-4b7a-8c8a-cecff9894a19 responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/ExecutionResults' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/results/{type}/{id}/chart/{chart_id}': get: summary: Retrieve chart details description: Retrieve chart details operationId: getResultsByChart tags: - Results parameters: - name: type in: path required: true schema: $ref: '#/components/schemas/ExecutionType' - name: id in: path description: The id of analysis or model required: true schema: type: integer - name: chart_id in: path description: The id of the chart required: true schema: type: integer - name: session_id in: query description: id of session required: false schema: type: string responses: '200': description: The details of the requested result content: application/json: schema: $ref: '#/components/schemas/ChartResults' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/entity_filter/{id}': get: summary: Resolve entity filter description: >- Resolves an existing entity filter and returns the list of corresponding entities. operationId: resolveEntityFilter tags: - Entity Filter parameters: - name: id in: path required: true schema: type: integer description: The id of the entity filter example: 13 - name: current_app_id in: query required: false schema: type: integer description: The id of the current domain example: 13 - name: last_activity_since in: query required: false schema: type: string description: >- Filter entities based on metrics last activity timestamp, expressed in ISO 8601 format. example: 2020-01-01T00:15:00.000Z - name: include_administrative_domains in: query required: false schema: type: boolean description: >- Determines if administrative domains should be included in the resolved entities. Defaults to false. example: false responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/EntityFilterResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/entity_filter: post: summary: Resolve dynamic entity filter description: >- Resolves the entity filter defined in the request and returns the list of corresponding entities. operationId: resolveDynamicEntityFilter tags: - Entity Filter requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EntityFilterRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/EntityFilterResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/threshold/{structure_id}': post: summary: Extract threshold for entities and metrics description: Extracts thresholds given entity ids and metrics. operationId: extractThreshold tags: - Threshold parameters: - name: structure_id in: path description: requested entities structure id required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ThresholdExtractionRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/ThresholdExtractionResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/time_filter: post: summary: >- Evaluates the since-to time period using the global time filter or the lastex parameter description: >- Based on global time filter or on lastex parameter evaluates and returns the since-to time period. operationId: evaluateTimePeriod tags: - Time Filter requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TimeFilterRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/TimeFilterResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/correlation: post: summary: Analyze correlation of systems/metrics description: Evaluates correlation coefficients among systems/metrics operationId: correlation x-permissions: - analysis.read - analysis.edit tags: - Analysis requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CorrelationRequest' responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/CorrelationResults' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError' /opt/api/v1/analysis/qnmodel: post: summary: Creates Queueing Network model properties description: Creates Queueing Network model properties operationId: createQNetworkModelProperties x-permissions: - models.edit tags: - Queueing Network Model requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/QNetworkModelRequest' responses: '200': description: Returns Queueing Network model property map content: application/json: schema: $ref: '#/components/schemas/QNetworkModelResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' '/opt/api/v1/analysis/qnmodel/{tcid}': post: summary: Evaluates the queuing network model and returns updated model properties description: >- Evaluates the queuing network model, applies object model updates if they exist, and returns the updated model properties operationId: evaluateAndGetQNetworkModelProperties x-permissions: - models.edit tags: - Queueing Network Model parameters: - name: tcid in: path description: the id of the Test Condition scenario required: true schema: type: integer responses: '200': description: Returns Queueing Network model property map content: application/json: schema: $ref: '#/components/schemas/QNetworkModelResponse' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError'

Catalog endpoints

URL to access: https://<host name>/opt/api/catalog/openapi.yaml 

This table lists the endpoints for catalog. Use the Catalog REST API to view the status of the tenants and the lookup fields.

API endpoint

Description

Endpoints for Tenants
GET/opt/api/v1/catalog/aboutReturns the status of the catalog service. 

POST/opt/api/v1/catalog/tenants/activation

Creates the required index and index mapping for the tenant activation.

DELETE /opt/api/v1/catalog/tenants/deactivation

Deactivates the tenant and removes the associated mappings and documents.
Endpoints for Lookup
GET/opt/api/v1/catalog/lookup/{entityId}Retrieves all lookup entries for the specified entity.

PATCH /opt/api/v1/catalog/lookup/{entityId}/add

Adds the specified set of lookup fields.

DELETE /opt/api/v1/catalog/lookup/{entityId}/remove

Deletes the specified set of lookup fields

POST /opt/api/v1/catalog/lookup/bycatalog/{entityCatalogId}

Creates a shared lookup catalog with filtering options by provider_id.

POST /opt/api/v1/catalog/lookup

Creates an entity in the catalog, if the entity does not exist.

POST /opt/api/v1/catalog/lookup/sequences

Searches for lookup sequences based on the specified set of mandatory filters on entity IDs and lookup sequences.
Endpoints for Entities

POST/opt/api/v1/catalog/entities

Creates a new entity.
GET/opt/api/v1/catalog/entities/{entityId}Retrieves all entities by their entity ID.

PUT/opt/api/v1/catalog/entities/{entityId}

Updates an entity for the specified entity ID.

DELETE /opt/api/v1/catalog/entities/{entityId}

Deletes the entity for the specified ID.

POST /opt/api/v1/catalog/entities/{entityId}/resources

Creates a resource for the specified entity ID.

PATCH /opt/api/v1/catalog/entities/{entityId}/resources

Adds a resource.
GET /opt/api/v1/catalog/entities/{entityId}/resourcesRetrieves all resources for the entity ID.

DELETE /opt/api/v1/catalog/entities/{entityId}/resources

Deletes all resources and metrics for the specified entity ID.

POST /opt/api/v1/catalog/entities/{entityId}/resources/update

Updates the resources.
GET /opt/api/v1/catalog/entities/{entityId}/resources/{resourceId}Retrieves all resources for the resource ID.

PUT /opt/api/v1/catalog/entities/{entityId}/resources/{resourceId}

Updates the resource by ID.

DELETE /opt/api/v1/catalog/entities/{entityId}/resources/{resourceId}

Deletes all resources for a resource ID.

POST /opt/api/v1/catalog/entities/resources/metric-activity

Retrieves the metric activity details for the specified set of metrics.

POST /opt/api/v1/catalog/entities/resources/{resourceId}/metric-activity

Updates the metric activity for a resource.

POST /opt/api/v1/catalog/entities/resources/{resourceId}/metric-activity/bulk

Updates the metric activity for a resource in bulk.

POST /opt/api/v1/catalog/entities/relations

Retrieves the parent/child relations linked to a set of entities.

POST /opt/api/v1/catalog/entities/{entityId}/relations

Creates a relation.
GET /opt/api/v1/catalog/entities/{entityId}/relationsRetrieves all relations for an entity ID.

DELETE /opt/api/v1/catalog/entities/relations/bulk

Deletes all relations for an entity ID in bulk.
Endpoints for Explore
GET /opt/api/v1/catalog/explore/domains/{domainId}/treeExplores domain relations for a specific domain.
GET /opt/api/v1/catalog/explore/entities/{entityId}/treeExplores entities relations for a specific domain.

POST /opt/api/v1/catalog/explore/entities/{entityId}/tree

Explores entities relations for a specific domain by applying filters.
Endpoints for Metrics

POST /opt/api/v1/catalog/metrics/last

Retrieves configuration data for last (current) values.

DELETE /opt/api/v1/catalog/metrics/last

Deletes configuration data for last (current) values.

POST /opt/api/v1/catalog/metrics/last/bulk

Deletes configuration data for last (current) values in bulk.
Search API

POST /opt/api/v1/catalog/search

Searches the catalog resources.

POST /opt/api/v1/catalog/search/free

Searches the catalog resources with free search text capabilities.

POST /opt/api/v1/catalog/search/light

Searches the catalog resources and lists IDs associated with a given search.

POST /opt/api/v1/catalog/search/light/free

Searches the catalog resources with free search text capabilities and lists IDs associated with a given search.
Endpoints for RBAC

POST/opt/api/v1/catalog/rbac/domains/configuration

Updates the groups for the specified domains.

PUT/opt/api/v1/catalog/rbac/domains/configuration

Adds the groups to the specified domains.

DELETE/opt/api/v1/catalog/rbac/domains/configuration

Deletes the groups from the specified domains.
GET/opt/api/v1/catalog/rbac/domains/configurationRetrieves the list of domains on which visibility privileges are set for the specified group.
GET /opt/api/v1/catalog/rbac/domains/configuration/{requestId}/statusRetrieves the status of the RBAC configuration request.
Endpoints for Entity tag
GET /opt/api/v1/catalog/entities/tags/typesRetrieves the list of available tag types.

POST/opt/api/v1/catalog/entities/tags/types

Retrieves the list of available tag types by entity ID.

POST/opt/api/v1/catalog/entities/tags

Retrieves the list of available tag types and entity IDs.

POST/opt/api/v1/catalog/entities/{entityId}/tags

Adds tags to the specified entities

PATCH/opt/api/v1/catalog/entities/{entityId}/tags

Updates the specified set of tags for given entity.

DELETE/opt/api/v1/catalog/entities/{entityId}/tags

Deletes the specified set of tags for given entity.

Forecast endpoints

URL to access: https://<host name>/opt/api/forecast/openapi.yaml 

This table lists the endpoints for forecast.

API endpoint

Description

GET  /opt/api/forecast/aboutReturns the status of the forecast service.
POST /opt/api/v2/forecast/predictionUploads the data series prediction values.
POST /opt/api/v2/forecast/time_predictionUploads the time series prediction values.
POST /opt/api/v2/forecast/regressionUploads the data series regression values.
POST/opt/api/v2/forecast/time_regressionUploads the time series regression values.
POST/opt/api/v2/forecast/correlationUploads the correlation analysis values.
POST/opt/api/v2/forecast/extrapolationUploads the data series extrapolation values.
POST/opt/api/v2/forecast/costUploads the forecast costs for the next 12 months based on the aggregated data series.

Historical Time Series Ingestion endpoints

URL to access: https://<host name>/opt/api/htsingest/openapi.yaml 

This table lists the endpoints for historical time series ingestion.

API endpointDescription
GET/opt/api/htsingest/aboutReturns the status of the historical time series ingestion service.
POST/opt/api/v1/htsingest/relationsUploads an object relation file archive for processing.
POST /opt/api/v1/htsingest/tagsUploads object tags for processing.
POST /opt/api/v1/htsingest/timeseriesUploads time series for the specified entity.
POST/opt/api/v1/htsingest/timeseries/bulkUploads time series for the specified entity in bulk.
POST /opt/api/v1/htsingest/timeseries/{resid}Uploads time series for a specified resource ID.

Recommendation endpoints

URL to access: https://<host name>/opt/api/optimizer/openapi.yaml 

This table lists the endpoints for recommendation

API endpoint

Description

GET/opt/api/optimizer/aboutReturns the status of the recommendation service. 
POST/opt/api/v1/optimizer/recommendationsGenerates recommendations.
POST/opt/api/v1/optimizer/rules/processProcesses the rules.
GET/opt/api/v1/optimizer/recommendations/entities/{entity_id}Retrieves the recommendations that are generated for a specific entity.
POST/opt/api/v1/optimizer/recommendations/searchReturns the recommendations that match the search criteria.

Simulation endpoints

URL to access: https://<host name>/opt/api/simulation/openapi.yaml 

This table lists the endpoints for What-if simulation.

API endpoint

Description

POST /opt/api/v1/simulation/whatif/executeExecutes a what-if simulation.
POST /opt/api/v1/simulation/whatif/dataExecutes the what-if simulation for an entity and returns the series data.
POST /opt/api/v1/simulation/whatif/simulationsSaves the simulation.
GET/opt/api/v1/simulation/whatif/simulations/{id}Retrieves the saved simulation for the specified ID.

Data Provider endpoints

https://<host name>/openapi/datamart

https://<host name>//openapi/view

The table lists the endpoints for data mart and view definition:

API endpoint

Description

Endpoints for Data mart
GET/opt/api/datamarts/aboutStatus of the datamart service.
GET/opt/api/v1/datamartservice/datamartsRetrieves the list of data mart definitions according to the specified ownership.
POST /opt/api/v1/datamartservice/datamarts/{erid}/dataCreates a datamart with data for the specified datamart ID.
GET/opt/api/v1/datamartservice/datamarts/{erid}/metadataRetrieves the list of data marts for the specific datamart ID.
POST /opt/api/v1/datamartservice/datamarts/exports/excelExports the data marts to Excel.
POST /opt/api/v1/datamartservice/datamarts/{erid}/aggregatedataCreates a datamart with aggregated data for the specified datamart ID.
POST /opt/api/v1/datamartservice/datamarts/{erid}Creates a datamart for the specified datamart ID.
POST /opt/api/v1/datamartservice/datamarts/{erid}/filters/{filtername}Creates a datamart for the specified filter name.
Endpoints for View definition
GET/opt/api/v1/viewdefinition/view

Retrieves a list of all capacity views in BMC Helix Continuous Optimization.

GET/opt/api/v1/viewdefinition/view/{viewid}/export

Exports the configuration of the selected view in file format (.viewpkg).

POST /opt/api/v1/viewdefinition/view/import


Imports a capacity view from another environment.

The request includes the name of the export file in the format: <view name_date of export>.viewpkg.

Pricing endpoints

https://<host name>/openapi/pricing

This table lists the endpoints for pricing.

API endpointDescription
Endpoints for AWS Reserved Price Controller
GET /api/aboutRetrieves the status of the Pricing service.
GET /api/v1/providers/1/regions/{region_code}/reserved_instanceReturns the on-demand and effective hourly rate for standard EC2 reserved instances.
GET/api/v1/providers/1/ri_eligible_hoursRetrieves the eligible usage hours for AWS reserved instances.
GET /api/v1/providers/1/ri_normalization_factorsRetrieves the normalization factors for reserved instances for a specific provider.
GET  /api/v1/providers/1/sku_os_mapRetrieves the SKU to OS mappings.
Endpoint for Instances Size Pricing
GET /api/v1/providers/{providerid}/regions/{region_code}/instance_size/{instance_type}Retrieves the instances size for a specific instance type.
Endpoints for Instances Pricing Controller
GET/api/v1/providers/{providerid}/regions/{region_code}/cheapest_instanceRetrieves the cheapest compute and storage instances in a specific region that matches the given resources.
GET /api/v1/providers/{providerid}/regions/{region_code}/instance_familiesRetrieves the available instance families for a specific provider within a region.
GET /api/v1/providers/{providerid}/regions/{region_code}/instance_typesRetrieves a list of instance types for a specific provider within a region.
GET/api/v1/providers/{providerid}/regions/{region_code}/instance_types/{instance_type_id}Retrieves the 30 days instance type price for a monthly usage on-demand and for each reservation period (1 year, 3 years) where reservation payment option is standard, All, Upfront.
GET /api/v1/providers/{providerid}/regions/{region_code}/instance_types/{instance_type_id}/license_typesRetrieves the list of license types available for a specific instance type within a region.
Endpoint for License Types Pricing
GET /api/v1/providers/{providerid}/license_typeRetrieves a license type that matches either a list of SKUs or a product description.
Endpoint for Normalization Factors Pricing
GET/api/v1/providers/{providerid}/normalization_factorsRetrieves the compute normalization factors for a specific provider for all the instance types.
Endpoints for regions
GET/api/v1/providers/{providerid}/default_regionRetrieves the default region for the specified provider.
GET /api/v1/providers/{providerid}/regionsRetrieves the available regions for the specified provider.
GET /api/v1/providers/{providerid}/regions/{region_code}Retrieves the details of a region for the specified provider.
Endpoint for Simulation Pricing
POST/api/v1/simulationRetrieves the cheapest compute and storage instances in a specific region that matches the given resources.
Endpoints for Storage Pricing
GET/api/v1/providers/{providerid}/regions/{region_code}/storage_typesRetrieves the storage types for the specified provider ID and the region code.
GET/api/v1/providers/{providerid}/regions/{region_code}/storage_types/{storage_id}Retrieves the storage types for the specified provider ID, region code, and storage ID.
POST /api/v1/providers/{providerid}/regions/{region_code}/storage_types/{storage_id}/costRetrieves the 30 days cost for the specified storage type.
GET/api/v1/providers/{providerid}/storage/default_transaction_unitsRetrieves the default transaction units for the specified provider.

Backend Control API

The Backend Control API enables you to remotely manage and control the interactions with the backend components of BMC Helix Continuous Optimization.

Executing a task/ETL

Method

POST

URI

https://<optapi external address>/dh-services/backend/requestTaskExecution

Request parameters

NA

Sample request

<?xml version="1.0" encoding="UTF-8"?>
<TaskExecutionRequest>
  <taskid>38</taskid>
  <request>RUN</request>
</TaskExecutionRequest>

Request status

Possible values: OK, ERROR, WARNING

Sample response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TaskExecutionRequestStatus>
    <taskexecreqid>21359</taskexecreqid>
    <requestStatus>OK</requestStatus>
</TaskExecutionRequestStatus>

Checking the execution status of a task or ETL.

Method

GET

URI

https://<optapi external address>/dh-services/backend/checkTaskExecutionStatus/<taskexecreqid>

Where taskexecreqid is the value obtained from the output of the /dh-services/backend/requestTaskExecution call.

Request parameters

NA

Sample request

NA

Sample response

Possible values: FINISHED, FAILED, TIMED_OUT, RUNNING, NO_STATUS

Submitting the execution report

Method

POST

URI

https://<optapi external address>/dh-services/backend/submitReportExecution/<report_id>

Request parameters

NA

Sample request

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TaskExecutionRequestStatus>
    <taskexecreqid>21360</taskexecreqid>
    <requestStatus>OK</requestStatus>
</TaskExecutionRequestStatus>

Request status

Possible values: OK, ERROR, WARNING

Sample response

Possible values: OK, ERROR, and WARNING

Check the status of execution report

Method

GET

URI

https://<optapi external address>/dh-services/backend/checkReportExecutionStatus/<taskexecreqid>

Where taskexecreqid is the value obtained from the output of the /dh-services/backend/submitReportExecution/<report_id> call.

Request parameters

NA

Sample request

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ReportExecutionResults>
    <overallStatus>GENERATED</overallStatus>
    <ReportExecution>
        <status>GENERATED</status>
        <rundate>2016-09-12T00:00:00.000-04:00</rundate>
        <reportId>15</reportId>
        <Results>/cpitrep/reports/15/report_15_1473754939852/Diagnostic%20-%20Data%20Flow%20and%20Statistics.pdf</Results>
    </ReportExecution>
</ReportExecutionResults>

Request status

Possible values: GENERATED, FAILED, RUNNING, NO_STATUS

Sample response

Possible values: GENERATED, FAILED, RUNNING, NO_STATUS

Activate the ETL

Method

POST

URI

https://<optapi external address>:<port number>/dh-services/backend/edk/activate

Request parameters

NA

Sample request

Body request is a Multipart Form Data, it should be the data package that will be activated.

Request status

Response body:

{          
“message”: Module created/updated successfully           
“moduleName”: <module name from the package>
}

Sample response

{          
“message”: Module created successfully           
“moduleName”: etlModuleName
}



Was this page helpful? Yes No Submitting... Thank you

Comments