Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 49 additions & 7 deletions code/API_definitions/predictive-connectivity-data.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
openapi: 3.0.3

Check warning on line 1 in code/API_definitions/predictive-connectivity-data.yaml

View workflow job for this annotation

GitHub Actions / validation / Validate

CloudEvent type format is wrong

[P-015] No event type enum values found in code/API_definitions/predictive-connectivity-data.yaml — subscription APIs should define EventType schemas | Suggestion: Define a named event type schema (e.g. ApiEventType) that constrains the CloudEvent `type` value via allOf, rather than inlining the enum directly in CloudEvent.properties.type.enum. See the implicit-events API template in Commonalities artifacts/api-templates/ (tracked in camaraproject/Commonalities#608).
info:
title: Predictive Connectivity Data
description: |
Expand Down Expand Up @@ -223,6 +223,23 @@
longitude: 7.12
startTime: "2024-01-03T11:00:00Z"
endTime: "2024-01-03T12:00:00Z"
RetrieveConnectivityRequestTeleOperation:
summary: Request with tele-operation service level
value:
serviceLevel: TELE_OPERATION
area:
areaType: POLYGON
boundary:
- latitude: 50.735851
longitude: 7.10066
- latitude: 50.74
longitude: 7.11
- latitude: 50.73
longitude: 7.12
startTime: "2024-01-03T11:00:00Z"
endTime: "2024-01-03T12:00:00Z"
networkType: 5G
precision: 7
required: true
responses:
'200':
Expand Down Expand Up @@ -289,7 +306,7 @@
$ref: "#/components/examples/ConnectivityDataOperationNotCompletedExample"
required: true
responses:
"204":

Check warning on line 309 in code/API_definitions/predictive-connectivity-data.yaml

View workflow job for this annotation

GitHub Actions / validation / Validate

Notification must use application/cloudevents+json

[S-035] Notification callback content type must include 'application/cloudevents+json', found: application/json
description: Successful notification
headers:
x-correlator:
Expand Down Expand Up @@ -432,18 +449,43 @@
example: ezdmemd
ServiceLevel:
description: >-
Describes the requested communication service level. Although more
categories may be added in the future, for the time being, the possible
service levels are as follows:
- C2: Command and Control. Consists in connecting an unmanned aerial vehicle with its remote controller. This link allows data transmission in both directions, facilitating real-time operation and feedback.
Describes the requested communication service level.
Service levels represent predefined communication requirement
categories used by the API provider's prediction model to classify
expected connectivity. Unless explicitly stated otherwise, the detailed
technical criteria associated with each service level are
provider-defined and implementation-specific. Service levels do not
represent standardised QoS profiles, network performance guarantees,
service availability commitments, or operational safety approvals.
Although more categories may be added in the future, for the time
being, the possible service levels are as follows:
- C2: Command and Control. Consists in connecting an unmanned aerial
vehicle with its remote controller. This link allows data
transmission in both directions, facilitating real-time operation
and feedback.
- STREAM_4K: Streaming in 4K quality.
- BEST_EFFORT: This service level provides a qualitative estimation of coverage based on each operator's own prediction models or public coverage maps. It does not imply any guarantee of network performance or service availability. The values of GC, MC, NC, and ND should be interpreted as approximate indicators of expected connectivity quality, not as results derived from standardised thresholds.

An MNO may not support every service level listed in this enum. If the requested service level is not supported by the MNO, the API returns the error response `PREDICTIVE_CONNECTIVITY_DATA.UNSUPPORTED_SERVICE_LEVEL`.
Comment thread
vlasatno marked this conversation as resolved.
- TELE_OPERATION: Service level intended for remote operation of
vehicles, robots or machines requiring bidirectional low-latency
control and high-throughput sensor or video feedback. The
connectivity values indicate whether the provider's prediction
model expects the requested area, time, height and network type to
satisfy the criteria associated with this service level.
- BEST_EFFORT: This service level provides a qualitative estimation
of coverage based on each operator's own prediction models or
public coverage maps. It does not imply any guarantee of network
performance or service availability. The values of GC, MC, NC, and
ND should be interpreted as approximate indicators of expected
connectivity quality, not as results derived from standardised
thresholds.
An MNO may not support every service level listed in this enum. If the
requested service level is not supported by the MNO, the API returns
the error response
`PREDICTIVE_CONNECTIVITY_DATA.UNSUPPORTED_SERVICE_LEVEL`.
type: string
enum:
- C2
- STREAM_4K
- TELE_OPERATION

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed in camaraproject/PredictiveConnectivityData#53, please add at least one request example using TELE_OPERATION in the examples section of the retrieveConnectivity operation (alongside the existing C2 examples). This improves the spec as documentation and makes the new service level immediately testable.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you clarify what exactly the purpose would be of this example. I also was unable to understand from the issue.
I added something just now, but I am not sure it is what you mean as it seems quite redundant to me.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @vlasatno, the example is exactly what was requested. OpenAPI examples serve as inline documentation (rendered by Swagger UI, Redocly, etc.) and as the basis for contract tests and Gherkin feature files. Yours also adds networkType and precision, which the existing C2 examples omit, so it is complementary rather than redundant.

Separately, there is a YAML indentation issue introduced in the latest commits: type: string under ServiceLevel is indented with 2 spaces instead of 6. It needs to be at the same level as description: and enum: to remain a property of ServiceLevel. As it stands, this will break OpenAPI parsing.

- BEST_EFFORT
NetworkType:
description: >-
Expand Down Expand Up @@ -490,7 +532,7 @@
description: The height in metres above ground level that was requested in the request. This property is only present if a specific height was requested.
nullable: true
example: 50
required:

Check notice on line 535 in code/API_definitions/predictive-connectivity-data.yaml

View workflow job for this annotation

GitHub Actions / validation / Validate

String has no format/pattern/enum

[S-313] Schema of type string should specify a format, pattern, enum, or const. | Suggestion: Acceptable if free-form field or implementation-dependent — no fix needed.
- layerThickness
- timedConnectivityData
- status
Expand Down
Loading