Problem description
Review of code/API_definitions/multi-point-vpn.yaml (version 0.1.0-alpha.1) found naming/modelling deviations from the CAMARA API Design Guide (r3.4) and editorial issues. These do not block validation under the r3.4 ruleset. Line numbers refer to the file as released on the r1.1 snapshot.
Naming and modelling
- Property naming (camelCase, Design Guide §5):
cloudGatewayIP (line 422) and waitdays (line 275) would be cloudGatewayIp and waitDays.
- Resource vocabulary is inconsistent. The resource is
/network with a Network schema, but the GET operationId is getVpnConnection (line 131) and there is a separate Connection schema (line 288). "Network", "VpnConnection", and "Connection" are used for related concepts.
Connection (lines 288–300) is an allOf with a single inline member (no composition effect), and its description is "Another Characteristic that is related to the current Characteristic;" (line 292), which does not describe the connection entity.
updateNetwork (line 87) uses PATCH with application/json (line 99). The Design Guide convention for partial updates is application/merge-patch+json. The operation description "Update a new multipoint virtual private network" (line 91) reads as create rather than update.
- The three
/network/{serviceId} operations (getVpnConnection lines 126–155, updateNetwork lines 87–125, deleteNetwork lines 156–178) do not document a 404 response. For operations addressing a resource by id, the Design Guide lists 404 as a response to document based on the API design (§3.1). (Note: multi-point-vpn.feature already includes a 404 scenario for GET.)
- Units and value types:
guaranteeBandwidth description uses "Mps" (lines 267, 412, etc.), presumably "Mbps"; Amount.currency (lines 250–252) is an unconstrained string with no currency-code format; Duration.unit (lines 310–312) is a free string ("days" in examples). Amount.amount and Duration.value declare default: 1 (lines 248, 308).
createNetwork 201 response (lines 66–77) does not include a Location header for the created resource.
deleteNetwork returns 202 with no body (lines 166–170); there is no resource to track the asynchronous deletion state. This is a design decision to confirm.
Editorial
- Example summaries: "Assesment Sample 1" (lines 473, 493) and "Create Connection Sampl 1" (line 522) contain typos.
info.description spacing: "IPv4 addressand/or" (line 12), "application server(AS)IPv4" (line 16), "NOTE-" (line 25).
Expected behavior
Align property names with camelCase, settle on a single resource vocabulary, replace the placeholder Connection description and remove the single-member allOf if not needed, confirm the PATCH media type and description, decide on documenting 404 for resource-id operations, constrain units/currency where applicable, and correct the editorial items.
Additional context
Tracked separately from the mandatory security and definition-correctness items. Property-name and schema changes affect the API contract once r1.1 is tagged.
Problem description
Review of
code/API_definitions/multi-point-vpn.yaml(version0.1.0-alpha.1) found naming/modelling deviations from the CAMARA API Design Guide (r3.4) and editorial issues. These do not block validation under the r3.4 ruleset. Line numbers refer to the file as released on the r1.1 snapshot.Naming and modelling
cloudGatewayIP(line 422) andwaitdays(line 275) would becloudGatewayIpandwaitDays./networkwith aNetworkschema, but the GET operationId isgetVpnConnection(line 131) and there is a separateConnectionschema (line 288). "Network", "VpnConnection", and "Connection" are used for related concepts.Connection(lines 288–300) is anallOfwith a single inline member (no composition effect), and its description is "Another Characteristic that is related to the current Characteristic;" (line 292), which does not describe the connection entity.updateNetwork(line 87) usesPATCHwithapplication/json(line 99). The Design Guide convention for partial updates isapplication/merge-patch+json. The operation description "Update a new multipoint virtual private network" (line 91) reads as create rather than update./network/{serviceId}operations (getVpnConnectionlines 126–155,updateNetworklines 87–125,deleteNetworklines 156–178) do not document a404response. For operations addressing a resource by id, the Design Guide lists404as a response to document based on the API design (§3.1). (Note:multi-point-vpn.featurealready includes a 404 scenario for GET.)guaranteeBandwidthdescription uses "Mps" (lines 267, 412, etc.), presumably "Mbps";Amount.currency(lines 250–252) is an unconstrained string with no currency-code format;Duration.unit(lines 310–312) is a free string ("days" in examples).Amount.amountandDuration.valuedeclaredefault: 1(lines 248, 308).createNetwork201response (lines 66–77) does not include aLocationheader for the created resource.deleteNetworkreturns202with no body (lines 166–170); there is no resource to track the asynchronous deletion state. This is a design decision to confirm.Editorial
info.descriptionspacing: "IPv4 addressand/or" (line 12), "application server(AS)IPv4" (line 16), "NOTE-" (line 25).Expected behavior
Align property names with camelCase, settle on a single resource vocabulary, replace the placeholder
Connectiondescription and remove the single-memberallOfif not needed, confirm the PATCH media type and description, decide on documenting404for resource-id operations, constrain units/currency where applicable, and correct the editorial items.Additional context
Tracked separately from the mandatory security and definition-correctness items. Property-name and schema changes affect the API contract once
r1.1is tagged.