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

# Criar um blueprint de nível org ou repo

> Cria um blueprint. ``type`` é inferido de ``repo_name``.

Conforme a especificação, isso nunca aciona um build automaticamente — quem faz a chamada deve
enviar ``POST /builds`` explicitamente.

<div id="permissions">
  ## Permissões
</div>

Requer um usuário de serviço com a permissão `ManageRepoBlueprints` no nível da organização. A criação de blueprints em nível da organização requer a permissão `ManageOrgSnapshots`.

<div id="behavior">
  ## Comportamento
</div>

Cria um blueprint de nível de org ou de repo. Um blueprint define a configuração declarativa de ambiente para as sessões do Devin. Alterar um blueprint não aciona automaticamente uma build — você deve chamar o endpoint de builds explicitamente.

<Note>
  Os blueprints não existem de forma independente da configuração do seu ambiente. Criar um blueprint com um `repo_name` **também adiciona esse repositório ao ambiente** — não há um endpoint separado para registrar o repo primeiro. O repositório é clonado no ambiente na próxima build, e sua indexação é iniciada.

  O inverso também é válido: remover um repositório do ambiente (o controle **Incluir no ambiente** na UI) exclui todos os blueprints desse repo, incluindo todos os seus escopos de workspace.
</Note>

O nome do repositório deve ser um ao qual o Devin já tenha acesso por meio da sua integração com o Git (por exemplo, `owner/repo`); um repo desconhecido ou inacessível retorna `404` e nenhum blueprint é criado. Se já existir um blueprint ativo para esse repo e escopo, a requisição retorna `409` — use o endpoint de atualização.


## OpenAPI

````yaml pt-BR/v3-openapi.yaml POST /v3beta1/organizations/{org_id}/snapshot-setup/blueprints
openapi: 3.1.0
info:
  description: API Devin v3 com autenticação de usuário de serviço e RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3beta1/organizations/{org_id}/snapshot-setup/blueprints:
    post:
      tags:
        - snapshot_setup
      summary: Criar um blueprint de nível org ou repo
      description: >-
        Cria um blueprint. ``type`` é inferido de ``repo_name``.


        Conforme a especificação, isso nunca aciona um build automaticamente —
        quem faz a chamada deve

        enviar ``POST /builds`` explicitamente.
      operationId: >-
        create_org_blueprint_v3beta1_organizations__org_id__snapshot_setup_blueprints_post
      parameters:
        - description: 'ID da organização (prefixo: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrgBlueprintBody'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Blueprint'
          description: Resposta bem-sucedida
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Não autorizado
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Proibido
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Não encontrado
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflito
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conteúdo não processável
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Requisições em excesso
components:
  schemas:
    CreateOrgBlueprintBody:
      properties:
        contents:
          anyOf:
            - type: string
            - type: 'null'
          description: Corpo YAML inicial opcional para o blueprint.
          title: Contents
        repo_name:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Se definido, cria um blueprint de nível de repo para esse
            repositório. Se omitido, cria um blueprint em nível da organização
            (nível da org).
          title: Repo Name
      title: CreateOrgBlueprintBody
      type: object
    Blueprint:
      description: >-
        Formato do recurso público ``Blueprint``.


        Note: o enum ``type`` poderá ser expandido no futuro; os clientes DEVEM
        lidar corretamente

        com valores desconhecidos. O conteúdo YAML é obtido separadamente via

        ``GET /blueprints/{id}/contents``.
      properties:
        blueprint_id:
          title: Blueprint Id
          type: string
        created_at:
          title: Created At
          type: integer
        repo_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Repo Name
        type:
          enum:
            - enterprise
            - org
            - repo
          title: Type
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - blueprint_id
        - type
        - repo_name
        - created_at
        - updated_at
      title: Blueprint
      type: object
    ProblemDetail:
      description: >-
        Corpo de erro RFC 9457 application/problem+json da API v3.


        detail é mantido do corpo legado {"detail": ...} por
        retrocompatibilidade; os

        outros membros são aditivos. errors contém falhas de validação em nível
        de campo

        (apenas 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Uma explicação legível por humanos específica para esta ocorrência.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Erros de validação no nível do campo (apenas respostas 422).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Uma referência de URI (o caminho da requisição) para esta
            ocorrência.
          title: Instance
        status:
          description: O código de status HTTP.
          title: Status
          type: integer
        title:
          description: Um breve resumo do tipo de problema, legível para humanos.
          title: Title
          type: string
        type:
          default: about:blank
          description: Uma referência de URI que identifica o tipo de problema.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Credencial de usuário de serviço (prefixo: cog_)'
      scheme: bearer
      type: http

````