# Update a skill

Launch stage: Beta

`PATCH /api/2.1/unity-catalog/{name=skills/*}`

Updates a skill. Only fields named in `update_mask` are changed; currently
 only `comment` is supported. The resource name is immutable. Optionally
 supply an `etag` to make the update conditional on the skill not having
 changed since it was read. Bundle files, grants, tags, and ownership are
 unchanged.

 You must be the owner of the skill or have `MANAGE` on it, plus
 `USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the parent schema.

API scopes: unity-catalog

## Path parameters

- `name` (string, required, ID, Immutable)
  Resource name of the skill.
   Format: `skills/{catalog}.{schema}.{skill}`.
   Each `{...}` component is capped at 255 characters individually.
    Server-derived on Create from `parent` +
   `skill_id`; required and immutable on Update/Get/Delete.

## Query parameters

- `update_mask` (string, required)
  Fields to update; validated against `skill`. REQUIRED, matching the sibling
   Update RPCs. `comment` is the only mutable field.
- `etag` (string, optional)
  Optimistic concurrency token from the most recent read. When set, the
   update succeeds only if the resource has not changed. Leave unset for an
   unconditional update. For REST requests, URL-encode the base64 string
   returned by the API when setting the `etag` query parameter.

## Request body

The skill with the updated field values. `name` identifies the resource
 (`skills/{catalog}.{schema}.{skill}`); only fields listed in `update_mask`
 are applied.
- `comment` (string, optional)
  User-provided comment for the skill. Free-text, user-editable via
   UpdateSkill (listed in its `update_mask`). DISTINCT from `description`,
   which is the server-parsed, OUTPUT_ONLY SKILL.md frontmatter value: `comment`
   is the customer's own annotation and is preserved across bundle re-uploads.
   When `comment` is in the update mask, omitting it clears the field, while
   an explicitly empty string is retained.

## Returns

Returns the Skill object.

## Response

```json
{
  "name": "string",
  "bundle_name": "string",
  "description": "string",
  "etag": "string",
  "create_time": "string",
  "update_time": "string",
  "finalize_time": "string",
  "created_by": "string",
  "updated_by": "string",
  "effective_owner": "string",
  "metastore_id": "string",
  "comment": "string"
}
```

