diff --git a/system-design/specification/margo-management-interface/deployment-status.md b/system-design/specification/margo-management-interface/deployment-status.md index 4702e0bc..12740764 100644 --- a/system-design/specification/margo-management-interface/deployment-status.md +++ b/system-design/specification/margo-management-interface/deployment-status.md @@ -23,7 +23,8 @@ POST /api/v1/clients/{clientId}/deployments/{deploymentId}/status | Code | Description | |------|-------------| -| 200 OK | The deployment status was added, or updated, successfully. | +| 200 OK | The deployment status was updated successfully. | +| 201 Created | The deployment status was created successfully. | | 400 Bad Request | Missing or invalid content-digest header. Ensure the SHA256 hash of the base64-encoded payload is included. | | 401 Unauthorized | Signature verification failed. Ensure you are signing with the correct X.509 private key. | | 403 Forbidden | Client certificate is not trusted or has been revoked. | diff --git a/system-design/specification/margo-management-interface/device-capabilities.md b/system-design/specification/margo-management-interface/device-capabilities.md index e3a7bc3d..b3e6e177 100644 --- a/system-design/specification/margo-management-interface/device-capabilities.md +++ b/system-design/specification/margo-management-interface/device-capabilities.md @@ -11,7 +11,6 @@ To ensure the WFM is kept up to date, the device's client MUST send updated capa ## Route and HTTP Methods ```https -POST /api/v1/clients/{clientId}/capabilities/{deviceId} PUT /api/v1/clients/{clientId}/capabilities/{deviceId} DELETE /api/v1/clients/{clientId}/capabilities/{deviceId} ``` @@ -27,12 +26,13 @@ DELETE /api/v1/clients/{clientId}/capabilities/{deviceId} | Code | Description | |------|-------------| -| 201 OK | The device capabilities document was added, or updated, successfully | +| 200 OK | The device capabilities document was updated successfully. | +| 201 Created | The device capabilities document was created successfully. | | 204 No Content | The device capabilities document was deleted successfully. | | 400 Bad Request | Missing or invalid content-digest header. Ensure the SHA256 hash of the base64-encoded payload is included. | | 401 Unauthorized | Signature verification failed. Ensure you are signing with the correct X.509 private key. | | 403 Forbidden | Client certificate is not trusted or has been revoked. | -| 404 Not Found | POST, PUT: No client with the given `clientID` was found, or no gateway was found for the given child-device `deviceId` (see [Gateways considerations](#gateways-considerations) for more details).
DELETE: No client with the given `clientID` was found or no device with the given `deviceId` was found for the client. | +| 404 Not Found | PUT: No client with the given `clientID` was found, or no gateway was found for the given child-device `deviceId` (see [Gateways considerations](#gateways-considerations) for more details).
DELETE: No client with the given `clientID` was found or no device with the given `deviceId` was found for the client. | | 422 Unprocessable Content | Request body includes a semantic error. | ## Request Body Attributes @@ -196,7 +196,7 @@ A WFM client reporting the "Gateway" role MUST report its own capabilities to th * See-thru gateway, without hosting capabilities, reporting its capabilities to the WFM: ``` - POST /api/v1/clients/{clientId}/capabilities/gateway1 + PUT /api/v1/clients/{clientId}/capabilities/gateway1 ``` ```json { @@ -217,7 +217,7 @@ A WFM client reporting the "Gateway" role MUST report its own capabilities to th * See-thru gateway, with hosting capabilities, reporting its capabilities to the WFM: ``` - POST /api/v1/clients/{clientId}/capabilities/gateway1 + PUT /api/v1/clients/{clientId}/capabilities/gateway1 ``` ```json { @@ -255,7 +255,7 @@ A WFM client reporting the "Gateway" role MUST report its own capabilities to th * See-thru gateway reporting the capabilities of a child device to the WFM: ``` - POST /api/v1/clients/{clientId}/capabilities/gateway1/deviceA + PUT /api/v1/clients/{clientId}/capabilities/gateway1/deviceA ``` ```json { @@ -298,7 +298,7 @@ A WFM client reporting the "Gateway" role MUST report its own capabilities to th * See-thru gateway reporting the capabilities of a child device with deeper hierarchy to the WFM: ``` - POST /api/v1/clients/{clientId}/capabilities/gateway1/path1/deviceA + PUT /api/v1/clients/{clientId}/capabilities/gateway1/path1/deviceA ``` ```json { diff --git a/system-design/specification/margo-management-interface/device-client-onboarding.md b/system-design/specification/margo-management-interface/device-client-onboarding.md index fe90cf88..1b08c8ab 100644 --- a/system-design/specification/margo-management-interface/device-client-onboarding.md +++ b/system-design/specification/margo-management-interface/device-client-onboarding.md @@ -48,7 +48,7 @@ sequenceDiagram Note over Client,Server: Device Client onboarding Ends Note over Client,Server: 📡 Secure API Usage with Signed Payloads can now begin - Client->>Server: POST /clients/{clientId}/capabilities + Client->>Server: PUT /clients/{clientId}/capabilities Server-->>Client: 201 Created Note over Client,Server: Enrollment is complete Note over Client,Server: 📡 Secure API Usage with Signed Payloads diff --git a/system-design/specification/margo-management-interface/workload-management-api-1.0.0.yaml b/system-design/specification/margo-management-interface/workload-management-api-1.0.0.yaml index 1670e0e1..b18d9edd 100644 --- a/system-design/specification/margo-management-interface/workload-management-api-1.0.0.yaml +++ b/system-design/specification/margo-management-interface/workload-management-api-1.0.0.yaml @@ -86,42 +86,8 @@ paths: summary: Complete onboarding with client certificate /api/v1/clients/{clientId}/capabilities/{deviceId}: - post: - summary: Report device capabilities - security: - - PayloadSignature: [] - parameters: - - name: clientId - in: path - required: true - schema: - type: string - - name: deviceId - in: path - required: true - schema: - $ref: '#/components/schemas/DeviceId' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/DeviceCapabilitiesManifest' - responses: - '201': - description: Capabilities reported successfully - '400': - description: Missing or invalid content-digest header. Ensure the SHA256 hash of the payload is included. - '401': - description: Signature verification failed. Ensure you are signing with the correct X.509 private key. - '403': - description: Client certificate is not trusted or has been revoked. - '404': - description: No client with the given `clientID` was found. - '422': - description: Request body includes a semantic error. put: - summary: Update device capabilities (Update) + summary: Report or update device capabilities security: - PayloadSignature: [] parameters: @@ -142,8 +108,10 @@ paths: schema: $ref: '#/components/schemas/DeviceCapabilitiesManifest' responses: + '200': + description: Device capabilities updated successfully '201': - description: Capabilities reported successfully + description: Device capabilities created successfully '400': description: Missing or invalid content-digest header. Ensure the SHA256 hash of the payload is included. '401': @@ -376,7 +344,9 @@ paths: $ref: '#/components/schemas/DeploymentStatusManifest' responses: '200': - description: The deployment status was added, or updated, successfully. + description: The deployment status was updated successfully. + '201': + description: The deployment status was created successfully. '400': description: Missing or invalid content-digest header. Ensure the SHA256 hash of the base64-encoded payload is included. '401':