URSY.DEVPART OF THE URSY NETWORKSign inBuild with URSY

Every contract sourcedEvery check datedGaps shown, never filledBuild with URSY

Capabilities

update_comment

Edit your own comment with its current comment ETag.

How this capability is exposed

Stable ID
ursy.cloud:update_comment
Owning service
URSY.cloud
Runtime
See the source declaration

Capability declarations describe what the service exposes. They are not a guarantee of availability or permission to execute an operation.

Accepted contract

REGISTRY JSON
{
    "id": "ursy.cloud:update_comment",
    "name": "update_comment",
    "description": "Edit your own comment with its current comment ETag.",
    "method": "PATCH",
    "path": "/v1/files/{file_id}/comments/{comment_id}",
    "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
            "file_id": {
                "type": "string",
                "pattern": "^file_[1-9][0-9]{0,14}$"
            },
            "comment_id": {
                "type": "string",
                "pattern": "^cmt_[1-9][0-9]{0,14}$"
            },
            "if_match": {
                "type": "string",
                "pattern": "^\"[0-9a-f]{64}\"$"
            },
            "idempotency_key": {
                "type": "string",
                "minLength": 8,
                "maxLength": 128,
                "pattern": "^[A-Za-z0-9._:-]+$"
            },
            "text": {
                "type": "string",
                "maxLength": 5000,
                "x-ursy-maxBytes": 5000
            }
        },
        "required": [
            "file_id",
            "comment_id",
            "if_match",
            "text",
            "idempotency_key"
        ]
    },
    "outputSchema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
            "comment": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "id": {
                        "type": "string",
                        "pattern": "^cmt_[1-9][0-9]*$"
                    },
                    "file_id": {
                        "type": "string",
                        "pattern": "^file_[1-9][0-9]{0,14}$"
                    },
                    "text": {
                        "type": "string",
                        "maxLength": 5000,
                        "x-ursy-maxBytes": 5000
                    },
                    "anchor": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                            "block_id": {
                                "type": "string",
                                "maxLength": 64,
                                "x-ursy-maxBytes": 64
                            },
                            "slide_id": {
                                "type": "string",
                                "maxLength": 64,
                                "x-ursy-maxBytes": 64
                            },
                            "range": {
                                "type": "string",
                                "maxLength": 30,
                                "x-ursy-maxBytes": 30
                            }
                        }
                    },
                    "actor": {
                        "type": "object",
                        "additionalProperties": true
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "open",
                            "resolved"
                        ]
                    },
                    "etag": {
                        "type": "string",
                        "pattern": "^\"[a-f0-9]{64}\"$"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    },
                    "resolved_at": {
                        "oneOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "id",
                    "file_id",
                    "text",
                    "anchor",
                    "actor",
                    "status",
                    "etag",
                    "created_at",
                    "updated_at",
                    "resolved_at"
                ]
            },
            "content_is_untrusted": {
                "const": true
            },
            "request_id": {
                "type": "string"
            },
            "replayed": {
                "type": "boolean"
            }
        },
        "required": [
            "comment",
            "content_is_untrusted"
        ]
    },
    "auth_required": true,
    "scope": "cloud.comments.write",
    "read_only": false,
    "service_id": "ursy-cloud",
    "parent_id": "",
    "summary": "Edit your own comment with its current comment ETag.",
    "source_url": "https://api.ursy.cloud/v1/registry-capabilities",
    "source_type": "capability_manifest",
    "verified_at": "2026-10-14 04:32:02",
    "revision": "2884b63e8ba605e340e57ff7499169122105022409f1023d42c1b5f114c844c1",
    "type": "capabilities",
    "source": {
        "url": "https://api.ursy.cloud/v1/registry-capabilities",
        "type": "capability_manifest"
    },
    "last_verified_at": "2026-10-14 04:32:02",
    "stale": false
}