Intent Based Diagnostics API Documentation
- 1 Concepts Overview
- 1.1 User Journeys
- 1.2 Endpoints Overview
- 1.2.1 List Evaluation Scenarios
- 1.2.2 Create Evaluation Scenario
- 1.2.3 Get Evaluation Scenario by ID
- 1.2.4 Update Evaluation Scenario
- 1.2.5 Delete Evaluation Scenario
- 1.2.6 Clone Evaluation Scenario
- 1.2.7 Update Custom Test Case IDs
- 1.2.8 List Custom Test Case IDs
- 1.2.9 Get Scenario Metadata
- 1.2.10 Override Scenario Parameters
- 1.2.11 List Scenario Steps
- 1.2.12 Override Step Parameters
- 1.2.13 List Evaluations
- 1.2.14 Get Evaluation by ID
- 1.2.15 Create Evaluation
- 1.2.16 Get Steps Catalog
Intent-Based Diagnostics feature is not enabled by default. It is only available to customers who have purchased this feature.
The Intent-Based Diagnostics feature in AGILITY allows users to perform detailed network diagnostics through various pre-configured scenarios. It enables the evaluation of variety of scenarios defined by 3GPP and ETSI while allowing users to bring their own scenarios.
Disclaimer: You can access the full OpenAPI (Swagger) specification directly in the AGILITY UI. To do this, click the user menu (top right), then select Public API Specification from the dropdown menu.
Concepts Overview
Before using the API, it is important to understand the core entities and concepts:
Evaluation Scenario: A reusable test definition describing a diagnostic intent. It contains metadata (name, category, description), a set of steps (actions/assertions), and parameters needed to execute the scenario. Scenarios can be cloned, listed, and customized.
Evaluation: An execution instance of an evaluation scenario against a specific dataset or context. Evaluations record results, status, and outputs for later review or automation.
Custom Test Case ID: An optional identifier or set of IDs that can be associated with evaluation scenarios for linking to external test management systems or for custom automation workflows.
Step: A single action, check, or assertion within a scenario. Steps are executed in sequence as part of an evaluation, and each step may have parameters and produce results.
Catalog: The full set of available diagnostic steps supported by the platform. The catalog allows developers to discover which steps can be used when building or customizing evaluation scenarios.
User Journeys
This section provides practical, step-by-step guides for common workflows using the Intent Based Diagnostics API. Each journey illustrates the sequence of API calls, expected payloads, and typical server responses for real-world use cases.
Journey 1: Search, Evaluate, and Retrieve Results
A user wants to find an existing scenario, submit it for evaluation, and retrieve the results when the evaluation is complete.
Step 1: Search for a Scenario
Endpoint:
GET /v1/intent-based-diagnostic/evaluation-scenariosExample Request:
curl -X 'GET' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios?name=VoLTE' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'userId: user123'
Expected Response:
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "VoLTE Call Setup",
...
}
],
"total": 1
}
Step 2: Submit an Evaluation
Endpoint:
POST /v1/intent-based-diagnostic/evaluationsExample Request:
{
"scenario_id": "123e4567-e89b-12d3-a456-426614174000",
"analysis_id": "123e4567-e89b-12d3-a456-426614174001",
"file_paths": null,
"analysis_profile_id": null,
"parameter_values_override": {
"caller": "12345",
"callee": "67890"
}
}
Example cURL:
curl -X 'POST' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluations' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'Content-Type: application/json' \
-d @payload.json
Expected Response:
{
"id": "123e4567-e89b-12d3-a456-426614174002",
"analysis_id": "123e4567-e89b-12d3-a456-426614174001"
}
Step 3: Poll for Evaluation Completion
Endpoint:
GET /v1/intent-based-diagnostic/evaluations/{id}Example Request:
curl -X 'GET' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluations/123e4567-e89b-12d3-a456-426614174002' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN'
Expected Response (in progress):
{
"id": "123e4567-e89b-12d3-a456-426614174002",
"status": "PROCESSING"
}
Expected Response (completed):
{
"id": "123e4567-e89b-12d3-a456-426614174002",
"status": "COMPLETED",
"results": { ... }
}
Journey 2: Clone, Edit, and Evaluate a Scenario
A user wants to clone an existing scenario, modify its steps, and then use it for evaluation.
Step 1: Clone the Scenario
Endpoint:
POST /v1/intent-based-diagnostic/evaluation-scenarios/{id}/cloneExample Request:
curl -X 'POST' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios/123e4567-e89b-12d3-a456-426614174000/clone' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'userId: user123'
Expected Response:
{
"id": "cloned-scenario-uuid",
...
}
Step 2: Edit the Cloned Scenario
Endpoint:
PUT /v1/intent-based-diagnostic/evaluation-scenarios/{id}Example Request:
{
"name": "VoLTE Call Setup (Custom)",
"description": "Custom VoLTE scenario with modified steps.",
"category": "VoLTE",
"evaluation_script": {
"tag": "call-setup",
"scenario": "VoLTE Custom",
"steps": [
"Given a SIP INVITE is sent",
"When the call is established",
"Then the call should be released successfully"
],
"parameters": {
"caller": "54321",
"callee": "09876"
}
},
"service_keys": "volte"
}
Example cURL:
curl -X 'PUT' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios/cloned-scenario-uuid' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'userId: user123' \
-H 'Content-Type: application/json' \
-d @payload.json
Expected Response:
{
"id": "cloned-scenario-uuid",
...
}
Step 3: Submit the Edited Scenario for Evaluation
Continue with Steps 2–3 from Journey 1, using the new scenario ID.
Journey 3: Create Scenario from Scratch Using the Step Catalog
A user wants to build a new scenario, starting from the available steps in the catalog, ensuring the correct Gherkin order, and then use it for evaluation.
Step 1: Get the Steps Catalog
Endpoint:
GET /v1/intent-based-diagnostic/steps/catalogExample Request:
curl -X 'GET' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/steps/catalog' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN'
Expected Response:
{
"steps": [
{
"name": "Given a SIP INVITE is sent",
...
},
{
"name": "When the call is established",
...
},
{
"name": "Then the call should be released successfully",
...
}
]
}
Step 2: Create a New Scenario (with correct Gherkin order)
Endpoint:
POST /v1/intent-based-diagnostic/evaluation-scenariosNote: The scenario must start with one or more
Givensteps, followed byWhen, thenThen. If the order is incorrect, the server will return an error message.Example Request:
{
"name": "Custom VoLTE Scenario",
"description": "Scenario built from catalog steps.",
"category": "VoLTE",
"evaluation_script": {
"tag": "call-setup",
"scenario": "VoLTE Custom",
"steps": [
"Given a SIP INVITE is sent",
"When the call is established",
"Then the call should be released successfully"
],
"parameters": {
"caller": "55555",
"callee": "66666"
}
},
"service_keys": "volte"
}
Example cURL:
curl -X 'POST' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'userId: user123' \
-H 'Content-Type: application/json' \
-d @payload.json
Expected Error Response (if order is wrong):
{
"detail": "Scenario steps must start with one or more 'Given', followed by 'When', then 'Then'."
}
Step 3: Submit the New Scenario for Evaluation
Continue with Steps 2–3 from Journey 1, using the new scenario ID.
Endpoints Overview
The following sections describe the API endpoints for managing these entities and performing intent-based diagnostics.
Method | Path | Summary |
|---|---|---|
GET |
| |
POST |
| |
GET |
| |
PUT |
| |
DELETE |
| |
POST |
| |
PATCH |
| |
GET |
| |
GET |
| |
POST |
| |
GET |
| |
POST |
| |
GET |
| |
GET |
| |
POST |
| |
GET |
| |
GET |
|
List Evaluation Scenarios
Endpoint
GET /v1/intent-based-diagnostic/evaluation-scenarios
Description
Retrieve a paginated list of evaluation scenarios, with optional filters by name, category, scenario type, and creator.
Query Parameters
Name | Type | Description |
|---|---|---|
name | string | Filter scenarios by name (partial match) |
category | string | Filter scenarios by category |
scenarioType | string | Filter by scenario type ( |
createdByCurrentUser | boolean | Filter scenarios created by the current user |
editedByCurrentUser | boolean | Filter scenarios edited by the current user |
lastModifiedDateFrom | string (date-time) | Filter scenarios modified on or after this date |
lastModifiedDateTo | string (date-time) | Filter scenarios modified on or before this date |
customTestCaseId | string | Filter scenarios by custom test case ID |
formatSteps | boolean | Format steps with parameter values |
page | integer | Page number (default: 1) |
size | integer | Page size (default: 50, max: 100) |
Headers
Name | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | The username of the user making the request |
Example Request
curl -X 'GET' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios?name=VoLTE' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'userId: user123'
Response Model
Returns a paginated list of evaluation scenarios.
Create Evaluation Scenario
Endpoint
POST /v1/intent-based-diagnostic/evaluation-scenarios
Description
Create a new evaluation scenario.
Headers
Name | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | The username of the user making the request |
Request Body Fields
Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the scenario |
description | string | Yes | Description of the scenario |
category | string | Yes | Category of the scenario |
evaluation_script | object (see below) | Yes | Evaluation script including steps and parameters |
custom_test_case_id | array of string | No | Custom test case IDs for automated testing |
service_keys | string | Yes | Service keys to include in the evaluation |
evaluation_script object fields:
Field | Type | Required | Description |
|---|---|---|---|
tag | string | No | Optional tag for the script |
scenario | string | No | Optional scenario name |
steps | array of string | Yes | List of evaluation steps |
parameters | object (key-value) | No | Step parameters as key-value pairs |
Request Body Example
{
"name": "VoLTE Call Setup",
"description": "Validates VoLTE call setup and teardown.",
"category": "VoLTE",
"evaluation_script": {
"tag": "call-setup",
"scenario": "VoLTE Basic",
"steps": [
"Given a SIP INVITE is sent",
"When the call is established",
"Then the call should be released successfully"
],
"parameters": {
"caller": "12345",
"callee": "67890"
}
},
"custom_test_case_id": ["TC-1234", "TC-5678"],
"service_keys": "volte"
}
Example Request
curl -X 'POST' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN' \
-H 'userId: user123' \
-H 'Content-Type: application/json' \
-d @payload.json
Get Evaluation Scenario by ID
Endpoint
GET /v1/intent-based-diagnostic/evaluation-scenarios/{id}
Description
Get a specific evaluation scenario by its ID.
Path Parameters
Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Scenario UUID |
Query Parameters
Name | Type | Description |
|---|---|---|
formatSteps | boolean | Format steps with parameter values |
Example Request
curl -X 'GET' \
'https://agility-dev.b-yond.com/cv/api/v1/intent-based-diagnostic/evaluation-scenarios/123e4567-e89b-12d3-a456-426614174000' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_ID_TOKEN'
Update Evaluation Scenario
Endpoint
PUT /v1/intent-based-diagnostic/evaluation-scenarios/{id}
Description
Update an existing evaluation scenario (only allowed for non-system scenarios by their creator or admin).
Path Parameters
Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Scenario UUID |
Headers
Name | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | The username of the user making the request |
Request Body Fields
Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the scenario |
description | string | Yes | Description of the scenario |
category |