{ "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [ { "invocations": [ { "executionSuccessful": true, "toolExecutionNotifications": [ { "associatedRule": { "id": "CC-CONFLICT-01" }, "level": "note", "message": { "text": "CC-CONFLICT-01 could not be assessed: needs guide pages; none was supplied" } }, { "associatedRule": { "id": "LINK-01" }, "level": "note", "message": { "text": "LINK-01 could not be assessed: needs guide pages; none was supplied" } }, { "associatedRule": { "id": "ON-ENV-01" }, "level": "note", "message": { "text": "ON-ENV-01 could not be assessed: needs guide pages; none was supplied" } }, { "associatedRule": { "id": "DOC-CODE-01" }, "level": "note", "message": { "text": "DOC-CODE-01 could not be assessed: needs guide pages; none was supplied" } } ] } ], "properties": { "coverage": "complete", "profile": { "id": "default", "version": "1" }, "sealedHash": "22aca6e881d84c15c6da6d86ba42cc089c8520411f4883c50a2e994c4fcd88f5", "sources": [ { "coverage": "complete", "documents_failed": 0, "documents_not_read": 0, "documents_read": 1, "id": "a3139ef4f142d3702c305353a7af583baab09812c21fc089b29cf3fdafa58eb1", "name": "fulfilment-api.json", "notes": [], "readable": true, "roles": [ "description" ] } ] }, "results": [ { "level": "error", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}: response declares application/json but no schema" }, "partialFingerprints": { "irrFingerprint/v1": "3793ec2223696e5af920cefc3a0610b4fddf4c553f8897a07bd0dc190528256c" }, "properties": { "cause": "no schema for application/json", "confidence": 1.0, "family": "contract", "impact": "Developers cannot know the fields, types or required properties, and generated clients fall back to untyped data.", "operation": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}", "recommendation": "Add a schema to each structured media type, or remove the media type if no body is exchanged.", "severity": "high", "state": "not_in_spec" }, "ruleId": "CC-SCHEMA-01", "ruleIndex": 10 }, { "level": "error", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames: response declares application/json but no schema" }, "partialFingerprints": { "irrFingerprint/v1": "3be1333302eb0a6242c7c89b497495f50bb42511e5ab6231ac6fafa8ea240242" }, "properties": { "cause": "no schema for application/json", "confidence": 1.0, "family": "contract", "impact": "Developers cannot know the fields, types or required properties, and generated clients fall back to untyped data.", "operation": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames", "recommendation": "Add a schema to each structured media type, or remove the media type if no body is exchanged.", "severity": "high", "state": "not_in_spec" }, "ruleId": "CC-SCHEMA-01", "ruleIndex": 10 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/ListFreightValues/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/CreateUpdateFreightValuesRequest/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Property `absoluteMoneyCost` has different types across variants of `freight-values`: number in `ListFreightValues`, string in `CreateUpdateFreightValuesRequest`" }, "partialFingerprints": { "irrFingerprint/v1": "c3524fe903d4a17779b3d2796fa85eb3f63cf5434678760c4e7959b93c37bb3f" }, "properties": { "cause": "conflicting types for freight-values.absolutemoneycost", "confidence": 0.6000000238418579, "family": "contract", "impact": "A client that models the property once breaks on the other schema, and readers cannot tell which type is meant.", "operation": null, "recommendation": "Use one type for a property name across schemas, or rename one of them to say it is a different thing.", "severity": "medium", "state": "contradictory" }, "ruleId": "CC-CONSIST-01", "ruleIndex": 12 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/warehouses/{warehouseId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "007572904bd49c4e3ff4a59bad7020ea7914af9d4d448225a236ea367a5fc97f" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/warehouses/{warehouseId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/warehouses documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "026e9969da35301d57082dbe59d3ccef21ca5cc291dbafb4834a632f9f673e92" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/warehouses", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}~1transfer/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}~1transfer/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "05f0b820b2ae2c72658f0dd0e748c4d7ad7af70ddfc04a42e8373262c726beba" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1activation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1activation/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/docks/{dockId}/activation documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "0c118ddce9a193ba326bc463d59c1c99bb772bc9b14a0d0a2c17dd6761ce0af8" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/docks/{dockId}/activation", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/delete", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/delete/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "DELETE /api/fulfilment/v1/configuration/warehouses/{warehouseId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "0c46bb1f4536b06b41454bc276d415813e716e98944a2f686fb73a831bc3fae4" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "DELETE /api/fulfilment/v1/configuration/warehouses/{warehouseId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/skus/{skuId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "0c4da5d1241c97b79c27285fcaa629bb19186a0045f79ecdfd79ae4403c53178" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/skus/{skuId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/geoshape documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "16b51192faff53fff5864b0d9d551838dd7897ecd1015a353e198ad687f7b662" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/geoshape", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1confirm/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1confirm/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "21db7482ca22a82638c6e26a215c8e617a0d609b5740f26e10db2ad301cc92c8" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/configuration/geoshape documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "24bc3220f44b1625b455d574453b917eb9429a4aeb0a40351966f4afe0ee3bde" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "PUT /api/fulfilment/v1/configuration/geoshape", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}~1warehouses~1{warehouseId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}~1warehouses~1{warehouseId}/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "2533a8b3a5cbeba9c6b4dc7a97b0fe29d669788516dbd71968c9a0a7b3d15bfd" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "28d92f743e901f571c435f762e8370d8c219e4c137e642ecae444d8c6092efd2" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/reservations/{reservationId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "2a471f6b02382bd53e4c2b2180737c3a7f6045de91b665c3823195081728b2ff" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/reservations/{reservationId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/configuration/holidays/{holidayId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "3428fca2d06026739a755e9547f812faee0504d8c0076c06b6df304786bbdfc6" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "PUT /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/docks documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "36d565a9e44f1f81b55a40361b0624374242b0362ad4641c9a8a0fc36532cd5a" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/docks", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1values~1update/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1values~1update/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/freights/{carrierId}/values/update documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "3de17423d7921b191d35cbb66a629dbd7f4858294040fb2241b254e669d26c61" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/freights/{carrierId}/values/update", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1activation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1activation/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "3e2f4b202c836a9e18290615505e03863703e6fd8a7b3e559254635ab405da2c" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping~1calculate/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping~1calculate/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/shipping/calculate documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "416ed696462e3d4ae23024e34b69cca527f79c635c963eb862df9833f17a8b22" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/shipping/calculate", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape~1{polygonName}/delete", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape~1{polygonName}/delete/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "DELETE /api/fulfilment/v1/configuration/geoshape/{polygonName} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "41fd01cb884ce5c8ba212292b1ced4122ac25fedc229d716b133ab2cd3dbd3b5" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "DELETE /api/fulfilment/v1/configuration/geoshape/{polygonName}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape~1{polygonName}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape~1{polygonName}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/geoshape/{polygonName} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "4aa17e0ba0fc444e4f6614229ea578fe936ebf152047c2759e0750a9d84d835e" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/geoshape/{polygonName}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1deactivation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1deactivation/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "53987ac913e1504dcb9188201a796e17937d67a05bbda046f31353415be97d03" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/shipping-policies documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "5a52d17aee75cd53cb712afd589255bb7447bcff734c1c8ba4a58655ffee5112" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/shipping-policies", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "5b1bc27a5633db5877eb8877d625debd15e1736d524b2cdd1efad569b8a24d65" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "5bec5219343f00044afe282d325e3d12c9a649dabd6309732f1556255a5750ac" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/shipping-policies documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "5f010ff633fc2006fb5220e6fbd7e2e597e1bc68e1650198b0d5e6d21cbdb8a4" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/shipping-policies", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}~1warehouses~1{warehouseId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}~1warehouses~1{warehouseId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "63717576d756c4965834a1e01847507ff18cd80b5005f983131be6542fdfb7f3" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1getdayofweekblocked/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1getdayofweekblocked/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/carriers/{carrierId}/getdayofweekblocked documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "88857508cce282f5809a021979dc8686dc0faae1bb2d32f987e76556383c8bb2" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/carriers/{carrierId}/getdayofweekblocked", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1adddayofweekblocked/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1adddayofweekblocked/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/carriers/{carrierId}/adddayofweekblocked documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "893d393681fce3198924e693f0bef23d68d2835fcb433657ed120a265e710ffd" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/carriers/{carrierId}/adddayofweekblocked", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{warehouseId}~1{skuId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{warehouseId}~1{skuId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "8a4e6410e886e6b5747b3c47756451386fad6774e6dffac8707b83d4782edc7f" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/delete", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/delete/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "DELETE /api/fulfilment/v1/shipping-policies/{id} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "8f928c13b05ad01205be6cb20da0a7dc076730b1652f01e050f1a0d626a88a64" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "DELETE /api/fulfilment/v1/shipping-policies/{id}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1removedayofweekblocked/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1removedayofweekblocked/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/carriers/{carrierId}/removedayofweekblocked documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "8f9ad145fb4388834001554efc9b9619e7c00ef2dec4644551e37244caea96a7" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/carriers/{carrierId}/removedayofweekblocked", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/docks documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "8fb0e67e37380bb092bc9f8e970deb3591a4a50c6eb668674ba54cf9253a03a4" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/docks", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/warehouses documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "95af5d1a259a50fae5f1970e31843195cf173460515db175d80c127238bce4cf" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/warehouses", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "a116d36feab344a69a164444013e2dc6adecc1b87a703764f8732c0933280cad" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/holidays documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "b0321c70a0914c10f9122634fdab7de5e652db3d8e9a5fdf3a8265447bd968ba" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/holidays", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/delete", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/delete/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "DELETE /api/fulfilment/v1/configuration/holidays/{holidayId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "b53ed68360feb18ee2f77ca64b94eeb2e9623824967a4e18cc6519e37530a9ad" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "DELETE /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/inventory/reservations documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "bbb0a1cb85d4507a774e4c35a099b1bef982f612e679ab5b8186ec78b766fb6c" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/inventory/reservations", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1cancel/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1cancel/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "bc6c61ed35a54293cc6bfb851db32421c11ad2a03e4fda4d21912c3e00e58c5e" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "c19b3a28e6bac82addc5eedd2b30c109bc88dae2aee51434706ae39d2b10e34c" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1deactivation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1deactivation/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "c45c362328c7805e468792ed5fb438376fd0369c5ee781f202750063e13a4af9" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/delete", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/delete/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "DELETE /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "cb6fb45af11246d1b865bde4e63c6945089183de7b76baf577d1cc07440cf078" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "DELETE /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/shipping-policies/{id} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "d6071277cecdbba8b07602d846e0e0ff9dfd48709c37247fe837ddb5b23e9f8f" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/shipping-policies/{id}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1acknowledge/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1acknowledge/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "d92cb104d5597234aa89c044b12710cfe6a4d84741249a9a4c973ee7cea34fe7" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "d9c19252e17962b1fb85a51cde729380492dedeea226388363f405c8c3f3e1c9" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames/{windowDay}F{windowStartTime}T{windowEndTime}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "d9e3ad40391f83300a97e7e7381ce7856b2e22a280a8b675a14c80d6c5792d93" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "PUT /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "da3f41a5ec6f2c330dff744d981e2a1b86215da737e6a04fbe3b2995c02e27a5" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies~1{id}/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/shipping-policies/{id} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "e125ff3491d1aeb6a0ce25d7e8dc08d91a8bb4c11ab55737fc46b31ec39371f3" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "PUT /api/fulfilment/v1/shipping-policies/{id}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/pickuppoints/_search documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "e268298c0149eb59b2a2c00533e1ddfb953952f58b1b362bfe8018ff02228fb4" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/_search", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/pickuppoints documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "ec9137cb0c713b0d7c1b165a581ebeb016ee5b9e20198891914764825d66cd3d" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "f0c867d875df7a7a9a9447f7d9dd5a874ad720b1c2e263d9a3f21012c4bdaf6f" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "PUT /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/holidays/{holidayId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "f70a4c54bc23a3ae0e5f31108ed657173f82dd9975870bb80e7bacdc09316cae" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/docks/{dockId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "fbaf8282a94f10ebdcc1624b2120d22f9fcf8aa8b0520defff3acbd7defda34a" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment/v1/configuration/docks/{dockId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}/delete", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}/delete/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "DELETE /api/fulfilment/v1/configuration/docks/{dockId} documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "fbd17d8d762af2990fc5a5a207a95b3a9c39a420f6d37e4cbfa078c48e8f8f89" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "DELETE /api/fulfilment/v1/configuration/docks/{dockId}", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames documents no error responses" }, "partialFingerprints": { "irrFingerprint/v1": "fce73999683d53296a1e9f330a849c2569f3d0d62c116c039fb3f8620b7d1a4b" }, "properties": { "cause": "no error response documented", "confidence": 0.8999999761581421, "family": "contract", "impact": "Developers cannot tell which failures to expect or how to handle them, so error paths are discovered in production.", "operation": "GET /api/fulfilment-capacity/resources/carrier@{capacityType}@{shippingPolicyId}/time-frames", "recommendation": "Document the error responses (4xx and 5xx or a default) with their bodies and when each occurs.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-ERR-01", "ruleIndex": 4 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "039fe5e246dc5e54313c2997c203206117dae58c655408c4c7a8ceefcfcf237d" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/delete/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `pickupPointId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "13371dfff35649822f95d2ffd0640710b8647f065df67d9b516da0aa47a2afc7" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "DELETE /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/delete/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `holidayId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "16375bd73cc814d9a62587e16039f0f09efc85b573bc9f4f5864080543651229" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "DELETE /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `pickupPointId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "2216249ec45abc7e54a6278c55cea22f0afe4cbb487a1845abbaee16748fa697" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies/post/requestBody/content/application~1json/schema/properties/cubicWeightSettings/properties/minimunAcceptableVolumetricWeight", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required request property `cubicWeightSettings.minimunAcceptableVolumetricWeight` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "2324c6a04f49efeefcb64c9037d73c014142638f94456054420d2142f902c61b" }, "properties": { "cause": "required request property without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a field they are required to send.", "operation": "POST /api/fulfilment/v1/shipping-policies", "recommendation": "Describe what the property means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get/parameters/1", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required query parameter `pageSize` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "24af8b0d2d46156d660286227e7e532cd4dd2de580e3e5f053098e489312ad3b" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/_search", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}~1warehouses~1{warehouseId}/get/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `dockId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "2cb72dce8474238c166aad3c989a693bb289313ff99a4e55a808825e5469348a" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}/get/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `dockId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "31c25f57b22363da6112c0f47a96ac4f27357cbbf84154f676a95d2e514508b1" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `skuId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "36117b7ea44f65592707730e142b1ea3545f8b0ee9584154d777bd9895da93b0" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `skuId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "3b87824eecf836dbe1809c3ce576609bba9e7a8b97d6965db9f16cede90b5c5c" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1activation/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "3fa1bda063574793c3fa1a889a82d00810b97842ccac4d8f732f0fbbf6983b90" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}/delete/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "411484bd3d0bf3f2e712bad137a2273a431f5687ba22bdbb7908650a3771b51c" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "DELETE /api/fulfilment/v1/configuration/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1deactivation/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `dockId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "425c72c9eb340fd9fb032223480714fd86dec09702520ee1f56fcffb2816cd0b" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}/get/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "426a811d1fd2aa5a1d62d876cea5b3b5b471d66d5c16277e8ffe69dd05911dde" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}~1warehouses~1{warehouseId}/put/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "427ea496e42a68e749b3e4e7391a4b1c87999cb8920e62ba963e0ce30d19ebca" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1adddayofweekblocked/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `carrierId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "4e2ee7615c2928866a68a4fadf4f4e06edf1ba79a5f5a051f4b138a7ae42ff7d" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/carriers/{carrierId}/adddayofweekblocked", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1cancel/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `reservationId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "4fe60abe89f40764686919b80556b4a3db73bc67e60a9cf58036dfb11e26a3da" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1deactivation/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "550789988db956eec4d4dcb613a9f79996404288e674f17c1f8f772552a06f80" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}~1warehouses~1{warehouseId}/put/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `skuId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "5c91353f0a71afa3e819ac6694a86d63b4fcef8eaec780cfaefb0a7573bf1fba" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1acknowledge/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `reservationId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "5e91f93bb42289842160df5be591304c4c37d2171add9d1f4f02e37061a3c61d" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `itemId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "69b68afb82022914feebd50c8a29c15cb0346086e386aa3fcc4d22e478c41143" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `skuId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "69de451d1f6fcd90bfdd6aa624354f81652074f14b351c53032f087329ac4a7a" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/skus/{skuId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `reservationId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "6d0a7aad4710753a588c802056bf8a48e0466ebc0a77494a98e04774253ad227" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/reservations/{reservationId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}~1warehouses~1{warehouseId}/get/parameters/4", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "78dba06f6fcdb1f80fb47598fceb4dc54d83e4b0570c17d3b6a98f23e224126e" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape~1{polygonName}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `polygonName` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "8173235e2ae3f18d1032c3d63058d0e835985638777af374e5820dd7060ea787" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/geoshape/{polygonName}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `holidayId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "8a1fa70ee24b4477fb0178edd3ee0aa634ff327dfaba3385e78d03bd798b1b8f" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1confirm/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `reservationId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "a471b422e1603e7fcd94bf5232f69cfe4460847cfd7831645ee818503c97d948" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required query parameter `keyword` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ac5f58ea550e09cedfded5e4cf64f93ea972aeabd6040b7b33b94987cf89419f" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/_search", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1getdayofweekblocked/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `carrierId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "b47992d281af850662934cdacdbe93a0db114e9bcaa3bc952aaf9e31bf386ecb" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/carriers/{carrierId}/getdayofweekblocked", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get/parameters/0", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required query parameter `page` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "b53da0df132d044760a73637c64d05bd84d041021b297bc696227a5eef906205" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/_search", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `dockId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "b717371444de064299dd8305256933e770db962cfda97636748ec2232e117e39" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/docks/{dockId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/get/parameters/0", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required query parameter `page` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "bfd8ff47506b08480cfde99ca5aeecdeebde07b89a06b641f46b1c5625e247a3" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/geoshape", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/put/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `holidayId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "c559cd70febf306b812033bbdddcf458a52aa64349324165393ebfdc630bce47" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "PUT /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1values~1update/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `carrierId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "c73e13f5323d6045a76bf0d5d0d32d89b3a6df27bffff4dfb92fae68d048f46e" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/freights/{carrierId}/values/update", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{warehouseId}~1{skuId}/get/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `skuId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "c85ca3048a6475f537b7573403377c526bcc7afc1a65e866d6e42fc296faffcc" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{warehouseId}~1{skuId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ce184a2beed2be633c21f1c94337e9bcd15b7858c54026a4c7a4615e01d49df1" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/reservations/{warehouseId}/{skuId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape~1{polygonName}/delete/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `polygonName` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ce18c374b6a8c9da5a18c75e35784787b015f0c38df65f8fc73c57ed6c9e59a5" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "DELETE /api/fulfilment/v1/configuration/geoshape/{polygonName}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `warehouseId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "dfa10d8816b6d567d85c2af79c3fda9ee0ec0f34dee7fc08edaecbe387ca9116" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1activation/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `dockId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "e2051b5414f591e438206e6c90e9cb62e550a1ac4064ff2bfc500fb579162cf7" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/docks/{dockId}/activation", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/get/parameters/1", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required query parameter `perPage` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ed39215974cc90a6378e094af41bf2499f79dac29c082a78a6cd9d06ecf7fa7f" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/configuration/geoshape", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1docks~1{dockId}~1warehouses~1{warehouseId}/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `skuId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ed823e534b8c623e3240016eea4a9d0ed4295a02c80d96f7af2c09da346526b1" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "GET /api/fulfilment/v1/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}/delete/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `dockId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ee5c7bad355fdfe3e30eb3e8032141ba5db536fdcacae98f0d6494ba71323c71" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "DELETE /api/fulfilment/v1/configuration/docks/{dockId}", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1removedayofweekblocked/post/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Required path parameter `carrierId` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "fda03ede32b0262dff8e878a92b0c3f5a91e0d3d7aec8de8a9ff1099ee1f645a" }, "properties": { "cause": "required parameter without description", "confidence": 1.0, "family": "contract", "impact": "Developers must guess the meaning, format and valid values of a parameter they are required to send.", "operation": "POST /api/fulfilment/v1/configuration/carriers/{carrierId}/removedayofweekblocked", "recommendation": "Describe what the parameter means, its format and valid values.", "severity": "medium", "state": "not_in_spec" }, "ruleId": "CC-PARAM-01", "ruleIndex": 2 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/warehouses returns a collection with no documented pagination" }, "partialFingerprints": { "irrFingerprint/v1": "3097cc4277a2a667282aceb75cb04e43e4e4f6d716b7f1924c47ea149a2f1425" }, "properties": { "cause": "no pagination", "confidence": 0.800000011920929, "family": "pagination", "impact": "Clients cannot retrieve more than the first batch reliably, or must guess how paging works.", "operation": "GET /api/fulfilment/v1/configuration/warehouses", "recommendation": "Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position).", "severity": "medium", "state": "not_in_spec" }, "ruleId": "PAG-01", "ruleIndex": 29 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/docks returns a collection with no documented pagination" }, "partialFingerprints": { "irrFingerprint/v1": "3920be6d6071728964099dcfb95f550bef7943d5b932626e6d5a3c9e2795f332" }, "properties": { "cause": "no pagination", "confidence": 0.800000011920929, "family": "pagination", "impact": "Clients cannot retrieve more than the first batch reliably, or must guess how paging works.", "operation": "GET /api/fulfilment/v1/configuration/docks", "recommendation": "Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position).", "severity": "medium", "state": "not_in_spec" }, "ruleId": "PAG-01", "ruleIndex": 29 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values returns a collection with no documented pagination" }, "partialFingerprints": { "irrFingerprint/v1": "ad90fb6c0ea23c57affa4aadc3bea922d6e97673b1c76914a4367d86dc78684e" }, "properties": { "cause": "no pagination", "confidence": 0.800000011920929, "family": "pagination", "impact": "Clients cannot retrieve more than the first batch reliably, or must guess how paging works.", "operation": "GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values", "recommendation": "Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position).", "severity": "medium", "state": "not_in_spec" }, "ruleId": "PAG-01", "ruleIndex": 29 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{itemId}~1warehouses~1{warehouseId}~1dispatched/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched returns a collection with no documented pagination" }, "partialFingerprints": { "irrFingerprint/v1": "d381d16a8ea53a9877ed4cb25c5188b219eb7d153cb462ab5cda5753e2c5befb" }, "properties": { "cause": "no pagination", "confidence": 0.800000011920929, "family": "pagination", "impact": "Clients cannot retrieve more than the first batch reliably, or must guess how paging works.", "operation": "GET /api/fulfilment/v1/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched", "recommendation": "Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position).", "severity": "medium", "state": "not_in_spec" }, "ruleId": "PAG-01", "ruleIndex": 29 }, { "level": "warning", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "GET /api/fulfilment/v1/configuration/pickuppoints returns a collection with no documented pagination" }, "partialFingerprints": { "irrFingerprint/v1": "dd2ef861be378d209addda5210c468bf18550a69df0c97e7e3485a9103955158" }, "properties": { "cause": "no pagination", "confidence": 0.800000011920929, "family": "pagination", "impact": "Clients cannot retrieve more than the first batch reliably, or must guess how paging works.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints", "recommendation": "Document a pagination mechanism (cursor or page parameters and the field or header carrying the next position).", "severity": "medium", "state": "not_in_spec" }, "ruleId": "PAG-01", "ruleIndex": 29 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get/parameters/3", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of parameter `postalCode` is weak (too short)" }, "partialFingerprints": { "irrFingerprint/v1": "066f22907222d2b6c4f2d64058a02524d935755fbb240ac3c8dc3ca95622d462" }, "properties": { "cause": "weak description: too short", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1confirm/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "06abada4c17a5f25568d045591e0aecd8632f0fec67352670bfe815fe7aaa038" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/confirm", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1activation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "143066492c43ffd70d53fc32c1313e54c128602be9d597378b6c6ea8f854efbb" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/activation", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1holidays~1{holidayId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of PUT /api/fulfilment/v1/configuration/holidays/{holidayId} is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "4c220183f42bca01dfa51b3a04afd4e437654ff5e5182e569e06781a8b1a246f" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "PUT /api/fulfilment/v1/configuration/holidays/{holidayId}", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses~1{warehouseId}~1deactivation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "4d7893a3d2ae2e403303234441a5b0e2597274fd1aeba7d221e957c0604ce207" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/configuration/warehouses/{warehouseId}/deactivation", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1acknowledge/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "6a18f373b5042409f0095746e61847cf0c1d2888a26f819b05763a8f89ddec14" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/acknowledge", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations~1{reservationId}~1cancel/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "6df3161ba76cf4612f3420f520b9ff157d91fbf64f8ace56193db3d6e0b5266e" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/inventory/reservations/{reservationId}/cancel", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1{postalCode}~1values/get/parameters/2", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of parameter `carrierId` is weak (too short)" }, "partialFingerprints": { "irrFingerprint/v1": "6fd6515a7aedc9a2f18946a9d108ed254cbdd09889b8273203c6b81bb2908356" }, "properties": { "cause": "weak description: too short", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "GET /api/fulfilment/v1/configuration/freights/{carrierId}/{postalCode}/values", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1deactivation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "9a649c5e36c2ab680016b01681fe54e925968723e69a351c5d0d0b0b3e6ccad0" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/configuration/docks/{dockId}/deactivation", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}~1warehouses~1{warehouseId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId} is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "d04b10a8229c8b548d24dfc5a495328d7b930934a449a4fb024de9e3c0ae50a0" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "PUT /api/fulfilment/v1/inventory/skus/{skuId}/warehouses/{warehouseId}", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks~1{dockId}~1activation/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "The description of POST /api/fulfilment/v1/configuration/docks/{dockId}/activation is weak (restates its name)" }, "partialFingerprints": { "irrFingerprint/v1": "e836157489665e9068081cae331ba29ff931795cab9b2345046d7fab458d3a4d" }, "properties": { "cause": "weak description: restates its name", "confidence": 0.699999988079071, "family": "contract", "impact": "A description that says nothing beyond the name gives a developer no more than the name already did.", "operation": "POST /api/fulfilment/v1/configuration/docks/{dockId}/activation", "recommendation": "Say what it does, what it returns or accepts, and anything the name does not show.", "severity": "low", "state": "ambiguous" }, "ruleId": "CC-DESC-02", "ruleIndex": 35 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Response has no description" }, "partialFingerprints": { "irrFingerprint/v1": "110941b701bc100514f50ee8118081eb96c203755a3d85c6b91863784f4290d5" }, "properties": { "cause": "response without description", "confidence": 1.0, "family": "contract", "impact": "Developers do not learn what the response means or when it occurs.", "operation": "PUT /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Describe when this response is returned and what it contains.", "severity": "low", "state": "not_in_spec" }, "ruleId": "CC-RESP-01", "ruleIndex": 3 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1skus~1{skuId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Response has no description" }, "partialFingerprints": { "irrFingerprint/v1": "1486583de5b8770a1986d76902a792b377026efca1cc9de588de519210636904" }, "properties": { "cause": "response without description", "confidence": 1.0, "family": "contract", "impact": "Developers do not learn what the response means or when it occurs.", "operation": "GET /api/fulfilment/v1/inventory/skus/{skuId}", "recommendation": "Describe when this response is returned and what it contains.", "severity": "low", "state": "not_in_spec" }, "ruleId": "CC-RESP-01", "ruleIndex": 3 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1{pickupPointId}/get/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Response has no description" }, "partialFingerprints": { "irrFingerprint/v1": "67aaa40d55a6eac5f44194541ebb923274497eb3f37fbe261367691dd6743c1d" }, "properties": { "cause": "response without description", "confidence": 1.0, "family": "contract", "impact": "Developers do not learn what the response means or when it occurs.", "operation": "GET /api/fulfilment/v1/configuration/pickuppoints/{pickupPointId}", "recommendation": "Describe when this response is returned and what it contains.", "severity": "low", "state": "not_in_spec" }, "ruleId": "CC-RESP-01", "ruleIndex": 3 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping~1calculate/post/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Response has no description" }, "partialFingerprints": { "irrFingerprint/v1": "ed175b5ef36691dd8e6e0a96aaf458988e6b8fb962e7e3b442261803122dc755" }, "properties": { "cause": "response without description", "confidence": 1.0, "family": "contract", "impact": "Developers do not learn what the response means or when it occurs.", "operation": "POST /api/fulfilment/v1/shipping/calculate", "recommendation": "Describe when this response is returned and what it contains.", "severity": "low", "state": "not_in_spec" }, "ruleId": "CC-RESP-01", "ruleIndex": 3 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1pickuppoints~1_search/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1items~1{skuId}~1warehouses~1{warehouseId}~1supplyLots~1{supplyLotId}/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "paths mix kebab-case, snake_case, camelCase with no dominant convention" }, "partialFingerprints": { "irrFingerprint/v1": "2584f4b51597ce771e1037f64d36dccc592f1d5094908066ed4713f91129361d" }, "properties": { "cause": "inconsistent casing: kebab-case,snake_case,camelcase", "confidence": 0.800000011920929, "family": "contract", "impact": "Inconsistent naming makes the API harder to learn and guess; developers cannot predict names from the ones they have seen.", "operation": null, "recommendation": "Choose one naming convention and apply it everywhere; keep old names only as documented deprecated aliases.", "severity": "low", "state": "ambiguous" }, "ruleId": "NAME-01", "ruleIndex": 28 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1freights~1{carrierId}~1values~1update/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "1 of 40 paths put an action verb in the path while the rest do not" }, "partialFingerprints": { "irrFingerprint/v1": "fe865ec8543e2c432da01ff082a03ea4cab805c5ac087c102bff6acdbf5f6414" }, "properties": { "cause": "verbs in some paths", "confidence": 0.699999988079071, "family": "contract", "impact": "Action verbs in some resource paths duplicate what the HTTP method already says and break the pattern of the other paths.", "operation": null, "recommendation": "Name paths after resources and express the action with the HTTP method.", "severity": "low", "state": "ambiguous" }, "ruleId": "NAME-01", "ruleIndex": 28 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/BusinessHour/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/CreateUpdateHolidayRequest/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/DeliveryItemOption/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/DeliveryRange/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/components/schemas/DeliveryRange1/properties", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "25 date/time-named string properties declare no format or timezone" }, "partialFingerprints": { "irrFingerprint/v1": "08a0d7169e2bef62d434eb7aaa8bd718b292dc3f1eaf5b2512dc974c0430db13" }, "properties": { "cause": "unformatted date/time properties", "confidence": 0.6000000238418579, "family": "data", "impact": "Clients cannot tell whether values are ISO 8601, epoch text or local time, so parsing and timezone handling are guesses.", "operation": null, "recommendation": "Set `format: date-time` or `date`, or describe the format and timezone (for example ISO 8601 in UTC).", "severity": "low", "state": "not_in_spec" }, "ruleId": "DATA-02", "ruleIndex": 21 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/put", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1geoshape/put/responses/200", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "PUT /api/fulfilment/v1/configuration/geoshape has no example request or response" }, "partialFingerprints": { "irrFingerprint/v1": "cc6169f384f92130ef491977d3ad3f41142515bbb4948c8ceac82862c0bfc2ef" }, "properties": { "cause": "no request or response example", "confidence": 0.8999999761581421, "family": "examples", "impact": "Developers have to infer payload shape from the schema alone, which slows a first successful call.", "operation": "PUT /api/fulfilment/v1/configuration/geoshape", "recommendation": "Add a realistic example for the request body and the success response.", "severity": "low", "state": "not_in_spec" }, "ruleId": "CC-EX-01", "ruleIndex": 5 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment-capacity~1resources~1carrier@{capacityType}@{shippingPolicyId}~1time-frames~1{windowDay}F{windowStartTime}T{windowEndTime}/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1adddayofweekblocked/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1carriers~1{carrierId}~1getdayofweekblocked/get", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "No rate limiting is documented" }, "partialFingerprints": { "irrFingerprint/v1": "652e9d0aafb76b66499eb96184d42f382faa6253be0fa286bee9d50e937d0b10" }, "properties": { "cause": "no rate limit documentation", "confidence": 0.699999988079071, "family": "limits", "impact": "Integrators cannot size their clients or plan back-off, and learn the limits from production errors.", "operation": null, "recommendation": "Document the limits, a 429 response and the headers that report remaining quota and when to retry.", "severity": "low", "state": "not_in_spec" }, "ruleId": "RATE-01", "ruleIndex": 31 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/components/securitySchemes/appToken", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Security scheme `appToken` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "8378e896fb51be85e40da14688c4459f34c959b75613dadcd343cda1e28d6b84" }, "properties": { "cause": "security scheme without description", "confidence": 1.0, "family": "onboarding", "impact": "Developers are not told how to obtain or send credentials for this scheme.", "operation": null, "recommendation": "Describe how to obtain credentials and how to send them.", "severity": "low", "state": "not_in_spec" }, "ruleId": "AUTH-02", "ruleIndex": 26 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/components/securitySchemes/appKey", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "Security scheme `appKey` has no description" }, "partialFingerprints": { "irrFingerprint/v1": "9fb455134636cdd9211dff34b822165fb2989220ca3e41ad0b1cb717c3015ba8" }, "properties": { "cause": "security scheme without description", "confidence": 1.0, "family": "onboarding", "impact": "Developers are not told how to obtain or send credentials for this scheme.", "operation": null, "recommendation": "Describe how to obtain credentials and how to send them.", "severity": "low", "state": "not_in_spec" }, "ruleId": "AUTH-02", "ruleIndex": 26 }, { "level": "note", "locations": [ { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1docks/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1configuration~1warehouses/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1inventory~1reservations/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } }, { "logicalLocations": [ { "fullyQualifiedName": "#/paths/~1api~1fulfilment~1v1~1shipping-policies/post", "kind": "member" } ], "physicalLocation": { "artifactLocation": { "uri": "fulfilment-api.json" } } } ], "message": { "text": "None of the 4 resource-creating POST operations documents an idempotency key" }, "partialFingerprints": { "irrFingerprint/v1": "bae9f63f9d9c2119d04b7b03ba07dc677332418c5733f336b1f3b1cf2551d047" }, "properties": { "cause": "no idempotency", "confidence": 0.699999988079071, "family": "reliability", "impact": "A retry after a timeout can create the resource twice, so clients cannot retry safely.", "operation": null, "recommendation": "Accept an Idempotency-Key header on creating operations and document how long keys are remembered.", "severity": "low", "state": "not_in_spec" }, "ruleId": "IDEM-01", "ruleIndex": 33 } ], "tool": { "driver": { "name": "irr", "rules": [ { "id": "CC-REF-01", "name": "CC-REF-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-DESC-01", "name": "CC-DESC-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-PARAM-01", "name": "CC-PARAM-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-RESP-01", "name": "CC-RESP-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-ERR-01", "name": "CC-ERR-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-EX-01", "name": "CC-EX-01", "properties": { "family": "examples", "needs": [ "description" ], "version": "1" } }, { "id": "CC-EX-02", "name": "CC-EX-02", "properties": { "family": "examples", "needs": [ "description" ], "version": "1" } }, { "id": "ERR-05", "name": "ERR-05", "properties": { "family": "errors", "needs": [ "description" ], "version": "1" } }, { "id": "CC-CONFLICT-01", "name": "CC-CONFLICT-01", "properties": { "family": "contract", "needs": [ "description", "guides" ], "version": "1" } }, { "id": "CC-PATH-01", "name": "CC-PATH-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-SCHEMA-01", "name": "CC-SCHEMA-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-TYPE-01", "name": "CC-TYPE-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-CONSIST-01", "name": "CC-CONSIST-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "RATE-02", "name": "RATE-02", "properties": { "family": "limits", "needs": [ "description" ], "version": "1" } }, { "id": "WH-01", "name": "WH-01", "properties": { "family": "webhooks", "needs": [ "description" ], "version": "1" } }, { "id": "WH-02", "name": "WH-02", "properties": { "family": "webhooks", "needs": [ "description" ], "version": "1" } }, { "id": "WH-03", "name": "WH-03", "properties": { "family": "webhooks", "needs": [ "description" ], "version": "1" } }, { "id": "AUTH-03", "name": "AUTH-03", "properties": { "family": "onboarding", "needs": [ "description" ], "version": "1" } }, { "id": "IDEM-02", "name": "IDEM-02", "properties": { "family": "reliability", "needs": [ "description" ], "version": "1" } }, { "id": "ERR-04", "name": "ERR-04", "properties": { "family": "errors", "needs": [ "description" ], "version": "1" } }, { "id": "WF-04", "name": "WF-04", "properties": { "family": "workflow", "needs": [ "description" ], "version": "1" } }, { "id": "DATA-02", "name": "DATA-02", "properties": { "family": "data", "needs": [ "description" ], "version": "1" } }, { "id": "DATA-03", "name": "DATA-03", "properties": { "family": "data", "needs": [ "description" ], "version": "1" } }, { "id": "CC-ENV-01", "name": "CC-ENV-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "AUTH-04", "name": "AUTH-04", "properties": { "family": "onboarding", "needs": [ "description" ], "version": "1" } }, { "id": "AUTH-01", "name": "AUTH-01", "properties": { "family": "onboarding", "needs": [ "description" ], "version": "1" } }, { "id": "AUTH-02", "name": "AUTH-02", "properties": { "family": "onboarding", "needs": [ "description" ], "version": "1" } }, { "id": "CC-SEC-01", "name": "CC-SEC-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "NAME-01", "name": "NAME-01", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "PAG-01", "name": "PAG-01", "properties": { "family": "pagination", "needs": [ "description" ], "version": "1" } }, { "id": "PAG-02", "name": "PAG-02", "properties": { "family": "pagination", "needs": [], "version": "1" } }, { "id": "RATE-01", "name": "RATE-01", "properties": { "family": "limits", "needs": [ "description" ], "version": "1" } }, { "id": "ERR-02", "name": "ERR-02", "properties": { "family": "errors", "needs": [ "description" ], "version": "1" } }, { "id": "IDEM-01", "name": "IDEM-01", "properties": { "family": "reliability", "needs": [ "description" ], "version": "1" } }, { "id": "CC-DEP-01", "name": "CC-DEP-01", "properties": { "family": "lifecycle", "needs": [ "description" ], "version": "1" } }, { "id": "CC-DESC-02", "name": "CC-DESC-02", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "CC-DESC-03", "name": "CC-DESC-03", "properties": { "family": "contract", "needs": [], "version": "1" } }, { "id": "CC-DESC-04", "name": "CC-DESC-04", "properties": { "family": "contract", "needs": [ "description" ], "version": "1" } }, { "id": "LINK-01", "name": "LINK-01", "properties": { "family": "links", "needs": [ "guides" ], "version": "1" } }, { "id": "ON-ENV-01", "name": "ON-ENV-01", "properties": { "family": "onboarding", "needs": [ "guides" ], "version": "1" } }, { "id": "DOC-CODE-01", "name": "DOC-CODE-01", "properties": { "family": "documentation", "needs": [ "guides" ], "version": "1" } } ], "semanticVersion": "0.1.0" } } } ], "version": "2.1.0" }