Repository navigation
fix validation rc Sync26 - #408
Merged
Merged
Conversation
…with \ to CAMARA_common - Replace Generic400 and Generic401 responses with direct \ to CAMARA_common - Replace ErrorInfo refs in Generic403, VerifyLocationNotFound404, VerifyLocationUnprocessableEntity422 - Remove local schemas Device, DeviceResponse, PhoneNumber, NetworkAccessIdentifier, DeviceIpv4Addr, SingleIpv4Addr, Port, DeviceIpv6Address, Point, Latitude, Longitude, ErrorInfo - Update internal refs to point to ../common/CAMARA_common.yaml for all substituted schemas
CAMARA Validation — PASS0 errors, 0 warnings, 34 hints | Profile: standard |
… S-312, S-021, P-032 - MaxAge: add format int32, maximum 2147483647 (S-310, S-311) - MatchRate: add format int32 (S-310) - LastLocationTime: add maxLength 64 (S-312) - Tag name: 'Location verification' -> 'Location Verification' (S-021) - Remove location-verification-API-Readiness-Checklist.md (P-032)
- Add BEGIN/END markers for mandatory info.description templates (P-026) - Add missing request-body-strictness template section - Update x-camara-commonalities: tbd -> 0.8.0 - Replace local x-correlator parameter, header and XCorrelator schema with \ to CAMARA_common - Replace Device chain schemas (Device, DeviceResponse, PhoneNumber, NetworkAccessIdentifier, DeviceIpv4Addr, SingleIpv4Addr, Port, DeviceIpv6Address) with \ to CAMARA_common - Replace Area chain schemas (Area, AreaType, Circle, Polygon, PointList, Point, Latitude, Longitude) with \ to CAMARA_common - Remove local ErrorInfo schema; update refs in all responses to CAMARA_common - Replace Generic400 and Generic401 responses with direct \ to CAMARA_common (Opcion A: includes OUT_OF_RANGE) - maxAge/maxSurface: add format int32, maximum 2147483647 (S-310, S-311) - LastLocationTime: add maxLength 64 (S-312) - Tag name: 'Location retrieval' -> 'Location Retrieval' (S-021) - Remove location-retrieval-API-Readiness-Checklist.md (P-032)
…event_common r4.3 - Add mandatory info.description BEGIN/END markers (authorization-and-authentication, identifying-device-from-access-token, additional-error-responses, request-body-strictness) - Update x-camara-commonalities: tbd -> 0.8.0 - notificationsBearerAuth: local -> \ to CAMARA_event_common (resolves S-011 description) - XCorrelator schema -> \ to CAMARA_common (resolves S-011 + S-312) - Device chain schemas (Device, PhoneNumber, NetworkAccessIdentifier, DeviceIpv4Addr, SingleIpv4Addr, Port, DeviceIpv6Address, DeviceResponse) -> \ to CAMARA_common - Point, Latitude, Longitude -> \ to CAMARA_common - CloudEvent: local -> allOf [\ CAMARA_event_common] with discriminator (P-020) - Source, DateTime -> \ to CAMARA_event_common / CAMARA_common - SubscriptionId, SinkCredential, AccessTokenCredential, PrivateKeyJWTCredential, HTTPSettings -> \ to CAMARA_event_common (resolves S-312) - InitiationReason, UpdateReason -> \ to CAMARA_event_common - ErrorInfo -> \ to CAMARA_common - Generic400, Generic401 -> \ to CAMARA_common (resolves S-309 for common responses) - Add maxItems: 20 to GET /subscriptions 200 array (resolves S-309) - Config.subscriptionExpireTime: add maxLength: 64 - Config.subscriptionMaxEvents: add format: int32, maximum: 1000000 - SubscriptionRequest.sink: add maxLength: 2048 - Subscription.id: add maxLength: 256 - MQTTSettings: add maxLength, format int32, min/max, descriptions - AMQPSettings: add maxLength, descriptions - ApacheKafkaSettings: add maxLength, format int32, min/max, descriptions - NATSSettings: add maxLength, description - SubscriptionStarted/Updated/Ended description fields: add maxLength: 512 - Tag: 'Geofencing subscriptions' -> 'Geofencing Subscriptions' (Title Case)
…common (HTTP-only) - Protocol: local enum -> \ to CAMARA_event_common (HTTP only, MQTT/AMQP/NATS/KAFKA commented as future) - SubscriptionRequest discriminator: remove MQTT3/MQTT5/AMQP/NATS/KAFKA mappings, keep HTTP only - Subscription discriminator: same, keep HTTP only - Remove schemas: MQTTSubscriptionRequest/Response, MQTTSettings, AMQPSubscriptionRequest/Response, AMQPSettings, ApacheKafkaSubscriptionRequest/Response, ApacheKafkaSettings, NATSSubscriptionRequest/Response, NATSSettings
- ConfigRequest/ConfigResponse: move description to top-level schema (S-011) - HTTPSubscriptionRequest/Response: add top-level description (S-011) - Subscription.sink: add maxLength: 2048 (S-312) - Subscription.startsAt/expiresAt: add maxLength: 64 (S-312) - Delete geofencing-subscriptions-API-Readiness-Checklist.md (P-032)
jlurien
marked this pull request as ready for review
June 12, 2026 08:01
- geofencing-subscriptions.yaml: 'API root' -> standard text - location-retrieval.yaml: 'API root' -> standard text
Contributor
@bigludo7 I am able to do so: Using IntelliJ and providing the Common.yaml as well ends up in:
I was surprised that this is working that good! :D |
maxl2287
approved these changes
Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
What this PR does / why we need it:
Adapts the three DeviceLocation APIs to CAMARA Commonalities r4.3 / 0.8.0 (Sync26), aligning schemas, responses, parameters and
info.descriptionstructure withCAMARA_common.yamlandCAMARA_event_common.yaml.location-verification.yaml
info.description<!-- CAMARA:MANDATORY:*:BEGIN/END -->markers (authorization-and-authentication, identifying-device-from-access-token, additional-error-responses, request-body-strictness)$reftoCAMARA_common.yaml: Device, DeviceResponse, PhoneNumber, NetworkAccessIdentifier, DeviceIpv4Addr, SingleIpv4Addr, Port, DeviceIpv6Address, Point, Latitude, Longitude, ErrorInfo$reftoCAMARA_common.yamlformat: int32,maximum: 2147483647), MatchRate (format: int32), LastLocationTime (maxLength: 64), tag Title Caselocation-verification-API-Readiness-Checklist.md(P-032)location-retrieval.yaml
info.descriptionBEGIN/END markers and request-body-strictness section;x-camara-commonalities: 0.8.0$reftoCAMARA_common.yaml$reftoCAMARA_common.yaml: full Device chain + Area chain (Circle, Polygon, PointList, Point, Latitude, Longitude), ErrorInfo$reftoCAMARA_common.yamlformat: int32,maximum: 2147483647), LastLocationTime (maxLength: 64), tag Title Caselocation-retrieval-API-Readiness-Checklist.md(P-032)geofencing-subscriptions.yaml
info.descriptionBEGIN/END markers and request-body-strictness section;x-camara-commonalities: 0.8.0notificationsBearerAuthwith$reftoCAMARA_event_common.yaml$reftoCAMARA_common.yaml$reftoCAMARA_common.yaml: full Device chain, Point, Latitude, Longitude, ErrorInfo$reftoCAMARA_event_common.yaml: CloudEvent (P-020 allOf pattern with discriminator), Source, SubscriptionId, SinkCredential, AccessTokenCredential, PrivateKeyJWTCredential, HTTPSettings, InitiationReason, UpdateReasonProtocolwith$reftoCAMARA_event_common.yaml(HTTP-only); removed MQTT3/5, AMQP, NATS, KAFKA schemas and related Request/Response/Settings schemas$reftoCAMARA_common.yamlmaxItems: 20to GET /subscriptions 200 response array (S-309)format: int32,maximum: 1000000), Config.subscriptionExpireTime (maxLength: 64), sink (maxLength: 2048), Subscription.id (maxLength: 256), startsAt/expiresAt (maxLength: 64), SubscriptionStarted/Updated/Ended description fields (maxLength: 512), ConfigRequest/ConfigResponse top-level description, HTTPSubscriptionRequest/Response description, tag Title Casegeofencing-subscriptions-API-Readiness-Checklist.md(P-032)Which issue(s) this PR fixes:
Fixes #409
Fixes #410
Fixes #411
Special notes for reviewers:
All changes are non-breaking (minor version bump target: 3.1 for location-verification, minor updates for location-retrieval and geofencing-subscriptions). Schema substitutions use
$refpointing to../common/CAMARA_common.yamland../common/CAMARA_event_common.yaml(Commonalities r4.3 / 0.8.0).Pay special attention to the new limits, some may be arbitrary
location-verification.yaml
MaxAgeformat: int32,maximum: 2147483647MatchRateformat: int32LastLocationTimemaxLength: 64DateTimeschema inCAMARA_common.yaml(maxLength: 64)location-retrieval.yaml
RetrievalLocationRequest.maxAgeformat: int32,maximum: 2147483647RetrievalLocationRequest.maxSurfaceformat: int32,maximum: 2147483647LastLocationTimemaxLength: 64DateTimeschema inCAMARA_common.yamlgeofencing-subscriptions.yaml
maxItems: 20maxItemsSubscriptionRequest.sink/Subscription.sinkmaxLength: 2048Sourceschema inCAMARA_event_common.yaml(maxLength: 2048), standard URI length conventionConfig.subscriptionExpireTimemaxLength: 64Config.subscriptionExpireTimeinCAMARA_event_common.yaml(=DateTimeinCAMARA_common.yaml)Config.subscriptionMaxEventsformat: int32,maximum: 1000000Config.subscriptionMaxEventsinCAMARA_event_common.yamlSubscription.idmaxLength: 256SubscriptionIdschema inCAMARA_event_common.yaml(maxLength: 256)Subscription.startsAt/expiresAtmaxLength: 64date-timefields aligned withDateTimeschema inCAMARA_common.yamlSubscriptionStarted.initiationDescriptionmaxLength: 512maxLength; 512 chosen as reasonable upper bound for free-text description fieldsSubscriptionUpdated.updateDescriptionmaxLength: 512SubscriptionEnded.terminationDescriptionmaxLength: 512Changelog input
Additional documentation
This section can be blank.