Problem description
release-plan.yaml declares commonalities_release: r4.4 for release r4.2, and the r4.4 common files are now in code/common/ (#431), but location-retrieval.yaml and location-verification.yaml still declare x-camara-commonalities: 0.8.0 and still follow r4.3 patterns. This issue collects the points that need to be addressed to bring both APIs to Commonalities 0.9.0 (r4.4).
Note that CI validation is currently green except for two P-027 warnings and the S-211 findings restated below. Most of the items below are not covered by any validation rule — they come from the r4.4 changelog and Design Guide — so a passing pipeline should not be read as r4.4 alignment.
geofencing-subscriptions is aligned separately in #435. It is an explicit subscription API, so it carries the r4.4 subscription changes — the Config → ConfigBase refactor, the common Sink schema, SinkGone410 — plus two error-code widenings, none of which apply here. Splitting on that boundary keeps this issue free of any contract change.
This issue also absorbs the location-retrieval half of #433, which is closed as superseded by this issue and #435.
Expected behavior
No declared error-code set changes. Every response migration below is an exact-code-set $ref swap, verified against the r4.4 CAMARA_common.yaml.
Metadata and documentation
Error responses — migrate off the deprecated Generic<status> responses
r4.4 deprecates all Generic<status> responses in favour of a minimal named catalogue plus a shared example pool, and plans their removal next cycle (camaraproject/Commonalities#665).
Neither spec declares a 429, so there is nothing to migrate there.
Error examples — use the new shared example pool
r4.4 adds a components/examples section to CAMARA_common.yaml. After the migration above, the 422 is the only response still defined locally in each spec.
The pool examples carry description but no summary, and a $ref replaces the whole example object, so the local summary: lines are dropped. That is the shape Commonalities designed, not an accidental loss.
Unused schema components (S-211, from #433)
CAMARA Validation flags 8 unused schema components in location-retrieval.yaml. These are local pass-through aliases (SchemaName: {$ref: '../common/CAMARA_common.yaml#/components/schemas/SchemaName'}) left over from the Commonalities r4.3 sync (#408) that nothing in the spec references — all real use sites point directly at CAMARA_common.yaml, not at the local alias.
DeviceResponse and Area are aliases in the same block but are referenced locally, which is why S-211 does not flag them; both stay. location-verification.yaml has no S-211 findings.
Test definitions
No .feature file references any component deleted above, so no other test change is required.
Additional context
Verified as requiring no change for these two specs: the new 53-bit numeric bound (the largest value in either spec is 2147483647); the Design Guide and ICM documentation link bumps (no r4.3 or r3.3 links present); the removal of INVALID_TOKEN_CONTEXT from Generic403 and of CONFLICT from Generic409 (neither code appears); the Config → ConfigBase refactor, the new common Sink schema and the CreateSubscriptionDetail removal (neither spec is a subscription API); the new common Date and SingleIpv6Address schemas and the common Pagination schema (none referenced); and x-correlator, already supported in both specs.
Predecessor for the r4.3 sync: #408.
Problem description
release-plan.yamldeclarescommonalities_release: r4.4for release r4.2, and the r4.4 common files are now incode/common/(#431), butlocation-retrieval.yamlandlocation-verification.yamlstill declarex-camara-commonalities: 0.8.0and still follow r4.3 patterns. This issue collects the points that need to be addressed to bring both APIs to Commonalities 0.9.0 (r4.4).Note that CI validation is currently green except for two
P-027warnings and theS-211findings restated below. Most of the items below are not covered by any validation rule — they come from the r4.4 changelog and Design Guide — so a passing pipeline should not be read as r4.4 alignment.geofencing-subscriptionsis aligned separately in #435. It is an explicit subscription API, so it carries the r4.4 subscription changes — theConfig→ConfigBaserefactor, the commonSinkschema,SinkGone410— plus two error-code widenings, none of which apply here. Splitting on that boundary keeps this issue free of any contract change.This issue also absorbs the
location-retrievalhalf of #433, which is closed as superseded by this issue and #435.Expected behavior
No declared error-code set changes. Every response migration below is an exact-code-set
$refswap, verified against the r4.4CAMARA_common.yaml.Metadata and documentation
x-camara-commonalities: 0.9.0in both specs (r4.4VERSION.yamlis0.9.0).additional-error-responsesmandatoryinfo.descriptionblock fromcode/common/info-description-templates.yamlinto both specs. This is theP-027warning. Paragraph 3 changed in Fix stale API Readiness Checklist pointer in mandatory error-response template Commonalities#693: the sentence "The applicable Commonalities Release can be identified in theAPI Readiness Checklistdocument associated to this API version." becomes "The applicable Commonalities Release can be identified from thex-camara-commonalitiesfield, the changelog and the metadata of the released API version." Re-copying also picks up the blank line added after eachBEGINmarker in fix: add spacing after info.description markers Commonalities#660.Error responses — migrate off the deprecated
Generic<status>responsesr4.4 deprecates all
Generic<status>responses in favour of a minimal named catalogue plus a shared example pool, and plans their removal next cycle (camaraproject/Commonalities#665).Generic400→BadRequestWithRange400(INVALID_ARGUMENT,OUT_OF_RANGE),Generic401→Unauthenticated401(UNAUTHENTICATED), the localGeneric403→PermissionDenied403(PERMISSION_DENIED), and the localRetrieveLocationNotFound404/VerifyLocationNotFound404→ the commonIdentifierNotFound404(IDENTIFIER_NOT_FOUND). Delete the local definitions.RetrieveLocationUnprocessableEntity422andVerifyLocationUnprocessableEntity422local. Each adds API-specific codes that no common response carries —LOCATION_RETRIEVAL.UNABLE_TO_FULFILL_MAX_AGE,.UNABLE_TO_FULFILL_MAX_SURFACEand.UNABLE_TO_LOCATEin the former.Neither spec declares a 429, so there is nothing to migrate there.
Error examples — use the new shared example pool
r4.4 adds a
components/examplessection toCAMARA_common.yaml. After the migration above, the 422 is the only response still defined locally in each spec.LOCATION_RETRIEVAL.*codes, which have no common example.GENERIC_422_MISSING_IDENTIFIER_DEVICE,GENERIC_422_UNSUPPORTED_IDENTIFIER_DEVICEandGENERIC_422_UNNECESSARY_IDENTIFIER_DEVICE. Both specs use the unsuffixed names today.The pool examples carry
descriptionbut nosummary, and a$refreplaces the whole example object, so the localsummary:lines are dropped. That is the shape Commonalities designed, not an accidental loss.Unused schema components (
S-211, from #433)CAMARA Validationflags 8 unused schema components inlocation-retrieval.yaml. These are local pass-through aliases (SchemaName: {$ref: '../common/CAMARA_common.yaml#/components/schemas/SchemaName'}) left over from the Commonalities r4.3 sync (#408) that nothing in the spec references — all real use sites point directly atCAMARA_common.yaml, not at the local alias.Device(line 251),AreaType(260),Circle(263),Polygon(266),PointList(269),Point(272),Latitude(275) andLongitude(278). Same cleanup already done for the other unused aliases in this file by fix(geofencing-subscriptions): resolve S-015 and S-211 validation warnings #417 and fix(geofencing-subscriptions): resolve remaining S-015 and S-211 warnings #420 — this list is what those two PRs missed.DeviceResponseandAreaare aliases in the same block but are referenced locally, which is whyS-211does not flag them; both stay.location-verification.yamlhas noS-211findings.Test definitions
location-retrieval.featureandlocation-verification.featureto the#/prefix used by the r4.4 test template (Normalize artifact line endings and Gherkin formatting Commonalities#678, #683). Both currently mix#/components/schemas/Xand/components/schemas/X.No
.featurefile references any component deleted above, so no other test change is required.Additional context
Verified as requiring no change for these two specs: the new 53-bit numeric bound (the largest value in either spec is
2147483647); the Design Guide and ICM documentation link bumps (nor4.3orr3.3links present); the removal ofINVALID_TOKEN_CONTEXTfromGeneric403and ofCONFLICTfromGeneric409(neither code appears); theConfig→ConfigBaserefactor, the new commonSinkschema and theCreateSubscriptionDetailremoval (neither spec is a subscription API); the new commonDateandSingleIpv6Addressschemas and the commonPaginationschema (none referenced); andx-correlator, already supported in both specs.Predecessor for the r4.3 sync: #408.