> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qlty.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Update component

> Replace a Component's definition. Takes the same fields as create and fully replaces the existing definition; the Component's id and creator are preserved. Requires admin access to the Project, and the Project must have Components enabled.



## OpenAPI

````yaml https://api.qlty.sh/openapi.json put /gh/{ownerKeyOrId}/projects/{projectKeyOrId}/components/{componentIdOrName}
openapi: 3.1.0
info:
  title: Qlty API
  version: 1.0.0
  description: >-
    The Qlty API is organized around REST. It provides predictable,
    resource-oriented URLs, accepts JSON-encoded request bodies, and returns
    JSON-encoded responses.
servers:
  - url: https://api.qlty.sh
security:
  - Bearer: []
tags:
  - name: Service
    description: Service status and API discovery operations
  - name: User
    description: Operations for the authenticated user
  - name: Workspaces
    description: Operations for managing workspaces
  - name: Projects
    description: Operations for managing projects
  - name: Issues
    description: Operations for managing issues
  - name: Metrics
    description: Operations for retrieving metrics
  - name: Components
    description: Operations for retrieving components
  - name: Coverage
    description: Operations for retrieving code coverage data
paths:
  /gh/{ownerKeyOrId}/projects/{projectKeyOrId}/components/{componentIdOrName}:
    put:
      tags:
        - Components
      summary: Update component
      description: >-
        Replace a Component's definition. Takes the same fields as create and
        fully replaces the existing definition; the Component's id and creator
        are preserved. Requires admin access to the Project, and the Project
        must have Components enabled.
      operationId: updateComponent
      parameters:
        - schema:
            type: string
            minLength: 3
            example: acme-corp
            description: Repository owner name (login) or workspace ID
          required: true
          description: Repository owner name (login) or workspace ID
          name: ownerKeyOrId
          in: path
        - schema:
            type: string
            minLength: 3
            example: my-repo
            description: Repository name or project ID
          required: true
          description: Repository name or project ID
          name: projectKeyOrId
          in: path
        - schema:
            type: string
            minLength: 1
            example: backend-api
            description: Component ID or name
          required: true
          description: Component ID or name
          name: componentIdOrName
          in: path
      requestBody:
        description: Component definition
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentInput'
      responses:
        '200':
          description: The updated component
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentDefinition'
              example:
                id: 550e8400-e29b-41d4-a716-446655440000
                name: Backend API
                description: Core backend API services
                pathGlobs: src/api/**
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ComponentInput:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
          example: Backend API
        description:
          type: string
          nullable: true
          example: Core backend API services
        pathGlobs:
          type: string
          minLength: 1
          example: src/api/**
          description: >-
            Glob patterns matching the Component's file paths, newline- or
            comma-separated
      required:
        - name
        - pathGlobs
    ComponentDefinition:
      type: object
      properties:
        id:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
        name:
          type: string
          example: Backend API
        description:
          type: string
          nullable: true
          example: Core backend API services
        pathGlobs:
          type: string
          example: src/api/**
      required:
        - id
        - name
        - description
        - pathGlobs
      description: >-
        A Component as defined for a Project, without computed fields such as
        fileCount
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
                example: '400'
              title:
                type: string
                example: Bad Request
              detail:
                type: string
                example: The request was invalid.
            required:
              - status
              - title
              - detail
      required:
        - errors
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: Generate an API token at https://qlty.sh/user/settings/tokens

````