Improve terminology, add external references and lifecycle docs (Issue-77) - #82
Merged
Merged
Conversation
…raproject#77) Per issue camaraproject#77, the API lacked external references for domain terminology, an end-to-end lifecycle walkthrough, and had inconsistent or over-abbreviated property names plus unused tags. - Added a "Terminology and external references" section linking Kubernetes, Helm, Docker Compose, QCOW2/OVA, CSAR, CNI, SR-IOV, CloudEvents, ISO 3166-1 alpha-2 and RFC 3339/3986 to authoritative external specs, and an inline RFC 3986 link on the Uri schema. - Added an "Application Lifecycle" section walking through a typical end-to-end use of the API, from submitApp to deleteApp. - Fixed the naming inconsistency the issue called out explicitly: ClusterInfo.clusterRef and getEdgeCloudZones' clusterRef query parameter are now both kubernetesClusterRef, matching every other occurrence of this identifier throughout the API. - Renamed K8sAddons/K8sNetworking to KubernetesAddons/ KubernetesNetworking, and AppManifest.appRepo to AppManifest.repository (redundant "app" prefix on a property already nested under AppManifest), for friendlier, less abbreviated names. - Renamed infraKind to infrastructureKind (the discriminator on RequiredResources and its 4 implementations) for the same reason. - Removed the two unused "App Instance CALLBACK Operation"/"App Deployment CALLBACK Operation" tags, which only ever showed up as the tags: list is not picked up by API doc renderers (ReDoc/Swagger UI) for operations nested under callbacks:, so they rendered as empty tag groups. - Updated the .feature files referencing appRepo and clusterRef accordingly (getApp, submitApp, getEdgeCloudZones). Left the "App"/"app" prefix used throughout operation IDs, paths and schema names (appId, AppInstanceId, /apps, createAppInstance, etc.) untouched, as it is a well-understood, consistently-applied convention rather than an unclear abbreviation, and renaming it would touch the entire API surface for comparatively little clarity gain.
DLondonoD
requested review from
FabrizioMoggio,
JoseMConde,
Kevsy,
gainsley,
maheshc01 and
seralogar
as code owners
September 7, 2026 09:38
seralogar
reviewed
Sep 8, 2026
- Recategorized the "Docker Compose" bullet: it's not a packageType (the enum is QCOW2/OVA/CONTAINER/HELM/CSAR), it's requiredResources.infrastructureKind: dockerCompose / DockerComposeResources. Added the missing CONTAINER packageType reference (OCI Image Format Specification) to fill the gap this left, in both the terminology section and the packageType description. - Fixed the QCOW2 reference to actually point at QEMU's own qcow2 format documentation instead of the OpenStack image guide introduction page, in both the terminology section and the packageType description. - Fixed the SR-IOV reference: PCI-SIG specs are members-only/paywalled, so linking a Linux kernel driver howto and labeling it "PCI-SIG SR-IOV overview" misattributed the source. Replaced with Intel's "PCI-SIG SR-IOV Primer" technical paper, which is freely accessible and correctly attributes the SR-IOV specification to PCI-SIG. - Fixed the TOSCA reference to point at the actual OASIS TOSCA v2.0 specification document instead of the committee landing page, in both the terminology section and the packageType description. - Unified the ISO 3166-1 alpha-2 reference URL: the terminology section and the CountryCode schema description pointed at two different ISO OBP URLs (#search/code/ vs #search) for the same reference; both now use #search/code/, the one ISO's own site links to for country code lookups.
- Dropped the redundant "not a packageType" aside on the Docker Compose bullet; the distinction is already covered by the "Kubernetes vs. compute/memory/storage applications" section. - Pointed the SR-IOV reference at Intel's HTML landing page for the PCI-SIG SR-IOV primer instead of the direct PDF, for easier browsing.
CAMARA validation flagged AppDeploymentZoneRequest.edgeCloudZones and AppDeploymentClusterRequest.kubernetesClusterRefs for missing a description (S-011), unlike their AppDeploymentInfo counterparts. Added descriptions consistent with the existing AppDeploymentInfo wording.
seralogar
previously approved these changes
Sep 8, 2026
DLondonoD
dismissed
seralogar’s stale review
September 8, 2026 16:10
The merge-base changed after approval.
seralogar
previously approved these changes
Sep 8, 2026
DLondonoD
dismissed
seralogar’s stale review
September 8, 2026 16:17
The merge-base changed after approval.
seralogar
previously approved these changes
Sep 8, 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?
documentation
What this PR does / why we need it:
Improves documentation and property naming per issue #77, which noted that external
terminology has no references, the end-to-end lifecycle isn't documented, some
property names are over-abbreviated or inconsistent, and two tags are unused.
(Kubernetes, Helm, Docker Compose, QCOW2/OVA, CSAR, CNI, SR-IOV, CloudEvents, ISO
3166-1 alpha-2, RFC 3339/3986) to authoritative external specs, plus an inline RFC
3986 link on the
Urischema.of the API, from
submitApptodeleteApp.ClusterInfo. clusterRefandgetEdgeCloudZones'clusterRefquery parameter are now bothkubernetesClusterRef, matching every other occurrence of this identifier throughoutthe API.
K8sAddons/K8sNetworkingtoKubernetesAddons/KubernetesNetworking,and
AppManifest.appRepotoAppManifest.repository(redundant "app" prefix on aproperty already nested under
AppManifest), for friendlier, less abbreviated names.infraKindtoinfrastructureKind(the discriminator onRequiredResourcesand its 4 implementations) for the same reason.App Instance CALLBACK Operation/App Deployment CALLBACK Operationtags: they only ever showed up in thetags:list of operations nestedunder
callbacks:, which API doc renderers (ReDoc/Swagger UI) don't group by tag, sothey rendered as empty tag groups.
.featurefiles referencingappRepoandclusterRefaccordingly(
getApp,submitApp,getEdgeCloudZones).Not done / left as-is, intentionally:
App/appprefix used throughout operation IDs, paths and schema names(
appId,AppInstanceId,/apps,createAppInstance, etc.) was not renamed.It's a well-understood, consistently-applied convention rather than an unclear
abbreviation, and changing it would touch the entire API surface for comparatively
little clarity gain. Happy to revisit if reviewers disagree.
removal of unused metadata (tags). No schema semantics, request/response codes, or
test scenario coverage were altered beyond following the renamed properties.
Which issue(s) this PR fixes:
Fixes #77
Special notes for reviewers:
Branched from
fix/issue-75(not yet merged tomain), so this PR's diff includesthat branch's changes too until it lands; please review/merge #81 (issue #75) first
if still pending.
The
infraKind/appRepo/clusterRef/K8s*renames are breaking changes to therequest/response schemas (property names change). Since this API is still
wip/pre-release (no published stable version), this seemed like the right time to make them;
flagging in case that assumption should be revisited.
Changelog input
release-note Renamed ClusterInfo.clusterRef and getEdgeCloudZones' clusterRef query
parameter to kubernetesClusterRef for consistency; renamed K8sAddons/K8sNetworking to
KubernetesAddons/KubernetesNetworking, AppManifest.appRepo to AppManifest.repository,
and infraKind to infrastructureKind for clarity. Removed unused CALLBACK tags. Added
external terminology references and an end-to-end Application Lifecycle section to
the API description.
Additional documentation
docs