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

# Atualizar configurações do repositório

> O nome é imutável; os demais campos podem mudar. `tag_mutability` pode ser alterado em qualquer direção, afetando somente mudanças futuras. Alterar apenas `tags` requer `registry:TagResource`, não `registry:UpdateRepository`, mantendo separadas as permissões de classificação e de configuração.

<Info>
  Primary IAM action: **`registry:UpdateRepository`**.
  Requests containing non-null `tags` with neither `tag_mutability` nor
  `deletion_protection` set require `registry:TagResource` instead of
  `registry:UpdateRepository`. Other updates require `registry:UpdateRepository`.
  Veja [REGISTRY permissões](/pt/registry/permissions) for policy examples.
</Info>


## OpenAPI

````yaml /pt/api-reference/specs/registry.yaml patch /v1/repositories/{repository_id}
openapi: 3.0.3
info:
  title: API Basaltic Registry
  version: 1.0.0
  description: >-
    Registry de imagens de contêiner. A API de gerenciamento usa
    `registry.<region>.basaltic.sh`; Docker e clientes OCI usam
    `cr.<region>.basaltic.cloud`. Esta referência descreve `/v1`, autenticado
    por OAuth ou sessão do console. `/v2` segue a especificação OCI Distribution
    1.1.


    `POST /v1/authorization-token` gera uma senha para `docker login`, que a
    troca por tokens por repositório em `/v2/token`. A senha dura 12 horas, mas
    decisões de autorização usam as políticas atuais e tokens de cinco minutos.
    Referências de imagem incluem o identificador da conta; use a `uri`
    retornada pelo servidor.


    Blobs e manifestos são imutáveis e identificados por SHA-256. Tags são
    apontadores mutáveis, salvo com `tag_mutability: immutable`. Excluir por
    digest remove manifesto e tags; excluir por tag preserva o manifesto.
    Camadas são deduplicadas em toda a conta. `size_bytes` conta blobs
    distintos, e a coleta em segundo plano libera os que nenhuma imagem ainda
    usa.


    Uma política de recurso permite acesso entre contas ou público. Acesso entre
    contas exige autorização tanto no recurso como no IAM do chamador.


    `kms_key` aceita UUID, nome na conta ou CRN de uma chave simétrica
    habilitada na mesma conta e região. Referências inválidas retornam 400;
    chaves inexistentes retornam 404. Respostas usam ResourceRef e preservam ID
    e CRN sem nome quando a chave foi excluída.
  contact:
    name: Basaltic Support
    email: ping@basaltic.sh
  license:
    name: Proprietary
    url: https://basaltic.sh/terms
servers:
  - url: https://registry.{region}.basaltic.sh
    description: Endpoint de API regional
    variables:
      region:
        default: sa-saopaulo-1
        description: Código de região
security:
  - BearerAuth: []
tags:
  - name: Authorization
    description: Credencial usada por `docker login`
  - name: Repositories
    description: Ciclo de vida, configurações, imagens e tags dos repositórios
  - name: Policies
    description: Políticas de recurso e de ciclo de vida
  - name: Encryption
    description: Criptografia de camadas em repouso
  - name: Pull-through cache
    description: Cache de imagens de outro registry no seu namespace
paths:
  /v1/repositories/{repository_id}:
    parameters:
      - $ref: '#/components/parameters/RepositoryId'
    patch:
      tags:
        - Repositories
      summary: Atualizar configurações do repositório
      description: >-
        O nome é imutável; os demais campos podem mudar. `tag_mutability` pode
        ser alterado em qualquer direção, afetando somente mudanças futuras.
        Alterar apenas `tags` requer `registry:TagResource`, não
        `registry:UpdateRepository`, mantendo separadas as permissões de
        classificação e de configuração.
      operationId: updateRepository
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRepositoryRequest'
      responses:
        '200':
          description: Repositório atualizado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositoryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    RepositoryId:
      name: repository_id
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d
  schemas:
    UpdateRepositoryRequest:
      type: object
      description: >-
        Campos omitidos são preservados. A ausência de `tag_mutability` e
        `deletion_protection` difere de um valor enviado. Alterar somente `tags`
        requer `registry:TagResource`.
      properties:
        tag_mutability:
          type: string
          enum:
            - mutable
            - immutable
        deletion_protection:
          type: boolean
        tags:
          type: object
          additionalProperties:
            type: string
    RepositoryResponse:
      type: object
      properties:
        repository:
          $ref: '#/components/schemas/Repository'
        push_commands:
          type: array
          items:
            type: string
          description: >-
            Sequência de login, build e push produzida pelo servidor a partir do
            usuário, endpoint e posição da conta na referência.
          example:
            - >-
              basaltic registry get-login-password --region sa-saopaulo-1 |
              docker login --username basaltic --password-stdin
              cr.sa-saopaulo-1.basaltic.cloud
            - >-
              docker build -t
              cr.sa-saopaulo-1.basaltic.cloud/my-account/team/api:latest .
            - >-
              docker push
              cr.sa-saopaulo-1.basaltic.cloud/my-account/team/api:latest
      required:
        - repository
    Repository:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d
        crn:
          type: string
          description: >-
            Nome do recurso IAM, construído com o nome do repositório, não seu
            ID. Uma política continua aplicável após excluir e recriar o mesmo
            nome usado pelos deployments.
          example: crn:registry:sa-saopaulo-1:my-account:repository/team/api
        name:
          type: string
          maxLength: 191
          description: >-
            Componentes alfanuméricos minúsculos separados por ponto, um ou dois
            sublinhados ou hífens, unidos por barras. Segue a gramática OCI.
            Nomes não podem começar com crn: nem ser UUIDs canônicos, compactos,
            entre chaves ou urn:uuid:, independentemente de maiúsculas.
          example: team/api
        uri:
          type: string
          description: >-
            Prefixo de referência para pull retornado pelo servidor, incluindo a
            conta que separa repositórios de mesmo nome.
          example: cr.sa-saopaulo-1.basaltic.cloud/my-account/team/api
        tag_mutability:
          type: string
          enum:
            - mutable
            - immutable
          description: >-
            `immutable` impede mover tags existentes. Novas tags continuam
            permitidas e reenviar o mesmo manifesto é aceito. A garantia é que
            uma tag não muda de conteúdo.
          example: mutable
        deletion_protection:
          type: boolean
          description: Impede `DeleteRepository`, mesmo vazio ou com `force`.
          example: false
        tags:
          type: object
          additionalProperties:
            type: string
          description: >-
            Tags de recurso usadas nas condições de política
            `basalt:ResourceTag/*`.
          example:
            env: prod
            team: platform
        stats:
          $ref: '#/components/schemas/RepositoryStats'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      required:
        - id
        - crn
        - name
        - uri
        - tag_mutability
        - deletion_protection
        - created_at
        - updated_at
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: Código de erro identificando o tipo de erro
              example: INVALID_INPUT
            message:
              type: string
              description: Mensagem de erro legível pelo ser humano
              example: Invalid request parameters
            params:
              type: object
              additionalProperties: true
              description: >-
                Valores não sensíveis opcionais para interpolação de erros
                localizados, codificados por código de erro. Nunca presente para
                erros de servidor.
              example:
                instances: 2
                pools: 0
            request_id:
              type: string
              format: uuid
              description: Solicitar ID para depuração
              example: 550e8400-e29b-41d4-a716-446655440000
    RepositoryStats:
      type: object
      properties:
        image_count:
          type: integer
          example: 42
        tag_count:
          type: integer
          example: 17
        size_bytes:
          type: integer
          format: int64
          description: >-
            Soma dos blobs distintos referenciados pelos manifestos do
            repositório. Não soma tamanhos por imagem, pois camadas
            compartilhadas seriam contadas várias vezes.
          example: 1073741824
        last_pushed_at:
          type: string
          format: date-time
          nullable: true
          description: Null para repositórios que nunca receberam imagens.
  responses:
    BadRequest:
      description: Parâmetros de solicitação inválidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_INPUT
              message: Invalid request parameters
              request_id: 550e8400-e29b-41d4-a716-446655440000
    Unauthorized:
      description: Autenticação necessária ou token inválido
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHORIZED
              message: Authentication required
              request_id: 550e8400-e29b-41d4-a716-446655440000
    Forbidden:
      description: Permissões insuficientes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: ACCESS_DENIED
              message: You don't have permission to perform this action
              request_id: 550e8400-e29b-41d4-a716-446655440000
    NotFound:
      description: Página não encontrada
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Resource not found
              request_id: 550e8400-e29b-41d4-a716-446655440000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >+
        Um token bearer OAuth 2.0, enviado como `Authorization: Bearer <token>`.
        Esta é a forma recomendada de autenticação.


        Obtenha o token trocando o par de chaves de acesso de uma conta de
        serviço em `POST /v1/oauth/token` com `grant_type=client_credentials`.
        Esse é o fluxo padrão de credenciais de cliente; bibliotecas compatíveis
        com OAuth podem obter e renovar o token para você.


        ```

        curl -s -u "$KEY_ID:$SECRET" -d grant_type=client_credentials \
          https://iam.basaltic.sh/v1/oauth/token
        ```


        Os tokens duram uma hora por padrão. O mesmo par de chaves de acesso
        também serve como credencial AWS SigV4 para o endpoint de objetos
        compatível com S3, que aceita somente esse método de autenticação.


````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.