> ## 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.

# Criar uma instância

> Criar uma nova instância de computação

<Info>
  Requer a ação do IAM **`compute:CreateInstance`**. Consulte [permissões de computação](/pt/compute/permissions) para obter a lista completa, o que cada uma abrange e um exemplo de política.
</Info>


## OpenAPI

````yaml /pt/api-reference/specs/compute.yaml post /v1/instances
openapi: 3.0.3
info:
  title: API de Basaltic Compute
  version: 1.0.0
  description: >
    Instâncias de máquina virtual e as imagens, os tipos e os pools de
    instâncias a partir dos quais elas são criadas. Abrange todo o ciclo de vida
    da instância: iniciar, parar, reiniciar, redimensionar e reinstalar.
  contact:
    name: Basaltic Support
    email: ping@basaltic.sh
  license:
    name: Proprietary
    url: https://basaltic.sh/terms
servers:
  - url: https://compute.{region}.basaltic.sh
    description: Endpoint de API regional
    variables:
      region:
        default: sa-saopaulo-1
        description: Código de região
security:
  - BearerAuth: []
paths:
  /v1/instances:
    post:
      tags:
        - Compute
      summary: Criar uma instância
      description: Criar uma nova instância de computação
      operationId: createInstance
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceCreateRequest'
      responses:
        '202':
          description: Criação de instância iniciada
          content:
            application/json:
              schema:
                type: object
                properties:
                  instance:
                    $ref: '#/components/schemas/Instance'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - BearerAuth: []
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      description: >-
        Chave opcional gerada pelo cliente que torna uma criação segura para
        reprodução. A reintentar uma solicitação com a mesma chave retorna o
        resultado original literalmente em vez de criar um recurso duplicado. A
        reutilização de uma chave com um corpo de solicitação diferente é
        rejeitada (422); uma solicitação cuja chave ainda está sendo processada
        retorna 409. Os registros são honrados por 24 horas. Use um UUID ou
        token exclusivo semelhante.
      required: false
      schema:
        type: string
        maxLength: 255
      example: 550e8400-e29b-41d4-a716-446655440000
  schemas:
    InstanceCreateRequest:
      type: object
      additionalProperties: false
      required:
        - name
        - flavor
        - networks
      properties:
        name:
          description: >-
            Os nomes de recursos não devem começar com o prefixo literal crn: ou
            ser UUIDs (formas canônicas, compactas, entre colchetes ou
            urn:uuid:, em qualquer caso).
          type: string
          minLength: 1
          maxLength: 255
          example: web-01
        description:
          type: string
          maxLength: 1000
          example: Primary web server
        flavor:
          type: string
          description: Referência de tipo de instância regional (UUID, CRN ou nome exato)
          example: 550e8400-e29b-41d4-a716-446655440000
        architecture:
          type: string
          default: amd64
          description: >-
            Arquitetura para nomes de imagem e tags name:version (padrão amd64);
            um CRN fixa sua própria arquitetura e versão.
        image:
          type: string
          description: >
            Imagem para clonar o disco de inicialização. Obrigatório a menos que
            volumes contenha um volume de inicialização existente; não pode ser
            combinado com um volume de inicialização existente. Quatro formas
            são aceitas: uma imagem
            completa/nome/arquitetura/arquitetura/versão/versão CRN; um id de
            imagem; `name:version`, que fixa uma compilação e é como você opta
            por sair da tag movendo-se sob você; ou um `name` nu, que segue a
            tag para qualquer compilação que seja atual quando a instância é
            criada. Os nomes preferem uma compilação utilizável de propriedade
            do chamador sobre uma compilação de catálogo de plataformas marcada
            para a arquitetura solicitada (padrão amd64). Um CRN identifica o
            proprietário, o nome, a arquitetura e a versão. A resolução nunca
            retenta outro tipo de referência; respostas e modelos armazenados
            retêm o UUID da imagem resolvida.
          example: debian-13
        networks:
          type: array
          items:
            $ref: '#/components/schemas/NetworkConfig'
          description: >
            Interfaces para anexar, pelo menos uma. índice 0 é a NIC primária.


            Necessário porque uma instância sem interface inicializa sem rede e
            nada dentro dela pode adicionar uma depois.
          minItems: 1
        volumes:
          type: array
          items:
            $ref: '#/components/schemas/InstanceLaunchVolume'
          description: >
            Discos novos ou existentes ligados com a instância, o disco de
            inicialização incluído — marque-o com `boot: true`. No máximo, uma
            entrada pode.


            Omita a entrada de inicialização para usar o tamanho mínimo da
            imagem e a camada padrão da região.
        metadata:
          $ref: '#/components/schemas/Metadata'
        tags:
          $ref: '#/components/schemas/Tags'
        user_data:
          type: string
          format: byte
          description: Dados de usuário codificados em Base64 (cloud-init)
          example: I2Nsb3VkLWNvbmZpZwpwYWNrYWdlczoKICAtIG5naW54Cg==
        iam_role:
          type: string
          example: f47ac10b-58cc-4372-a567-0e02b2c3d479
          description: >
            Anexe uma função do IAM da mesma conta por UUID, CRN ou nome exato.
            A política de confiança da função deve permitir
            `crn:compute:*:*:instance/*` (ou o CRN da instância específica). O
            endpoint IMDS da instância (169.254.169.254) mantém as credenciais
            STS de curta duração para essa função dentro da VM.
    Instance:
      type: object
      required:
        - faults
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          example: 550e8400-e29b-41d4-a716-446655440000
        crn:
          type: string
          readOnly: true
          description: Nome do recurso da nuvem
          example: crn:compute:sa-saopaulo-1:my-account:instance/web-01
        name:
          description: >-
            Os nomes de recursos não devem começar com o prefixo literal crn: ou
            ser UUIDs (formas canônicas, compactas, entre colchetes ou
            urn:uuid:, em qualquer caso).
          type: string
          example: web-server-01
        description:
          type: string
          example: Primary web server
        task_state:
          type: string
          nullable: true
          description: Transição em andamento, se houver; nulo quando resolvido.
          example: null
        flavor:
          allOf:
            - $ref: '#/components/schemas/Flavor'
          description: >-
            Resolveu o tipo de instância (tamanho de cálculo) em que a instância
            é executada. Omitida se a linha de tipo de instância referenciada
            tiver sido aposentada.
        image:
          allOf:
            - $ref: '#/components/schemas/Image'
          description: >-
            Resolveu a imagem de origem da qual a instância inicializou. Omitida
            para uma inicialização somente de volume ou se a linha de imagem
            referenciada desaparecer.
        user_data:
          type: string
          description: >-
            Dados de usuário cloud-init codificados em Base64 fornecidos no
            lançamento.
        iam_role:
          allOf:
            - $ref: '#/components/schemas/InstanceRole'
          description: >-
            Resumo da função do IAM anexada, visível com acesso de leitura de
            instância sem iam:GetRole. Omitida quando nenhuma função está
            anexada, a função foi excluída ou pertence a outra conta. Campos de
            função confidenciais permanecem disponíveis somente por meio da API
            do IAM.
        metadata:
          $ref: '#/components/schemas/Metadata'
        tags:
          $ref: '#/components/schemas/Tags'
        faults:
          type: array
          description: >-
            Falhas ativas ordenadas por last_at descendente, em seguida, o
            histórico interno id descendente para um desempate estável. Recursos
            saudáveis retornam [].
          items:
            $ref: '#/components/schemas/Fault'
        created_at:
          type: string
          format: date-time
          readOnly: true
          example: '2024-01-15T10:30:00Z'
        updated_at:
          type: string
          format: date-time
          readOnly: true
          example: '2024-01-15T10:30:00Z'
        launched_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          example: '2026-01-15T09:31:12Z'
        terminated_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          example: null
        desired_state:
          type: string
          enum:
            - running
            - stopped
            - deleted
          example: running
          description: >
            O que foi pedido. Apenas três valores, porque há apenas três coisas
            que você pode pedir para uma instância ser: Create/Start/Reboot para
            execução, Stop para parada, Delete para exclusão.
        current_state:
          $ref: '#/components/schemas/CurrentState'
          example: running
          description: >
            Leia este para responder "is it up" — os estados de transição vivem
            aqui, não em desired\_state, porque ninguém pede para eles serem
            criados. `stopping`.


            desired_state=running com current_state=stopped é uma instância que
            foi solicitada para iniciar e ainda não foi exibida.
    NetworkConfig:
      type: object
      additionalProperties: false
      required:
        - subnet
      properties:
        subnet:
          type: string
          description: >-
            UUID de sub-rede ou CRN completo de VPC/sub-rede. Nomes nulos exigem
            um pai de VPC e são rejeitados aqui.
          example: 9b2e4f1a-3c5d-4e6f-8a90-1b2c3d4e5f60
        mac:
          type: string
          description: >
            Endereço MAC opcional. Deve ser administrado localmente (`X2:`,
            `X6:`, `XA:`, `XE:` no primeiro octet). Gerado quando omitido.
          example: 02:1a:2b:3c:4d:5e
        security_groups:
          type: array
          items:
            type: string
            example: c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f
          description: >
            Referências de grupo de segurança com escopo de conta (UUID, CRN ou
            nome) para anexar a esta NIC. Cada um deve ser de propriedade da
            mesma conta. Lista vazia = sem ACLs por NIC (o padrão de permissão
            da plataforma permanece em vigor).
        floating_ip_assignment:
          type: string
          enum:
            - none
            - ipv4
            - ipv6
            - dual_stack
            - auto
          default: none
          description: >-
            Aloque IPs flutuantes públicos para esta NIC no lançamento. Famílias
            explícitas exigem endereços de hóspedes e rotas de internet
            correspondentes. O desligamento deixa o FIP reservado. Não existe um
            mapeamento IPv4 público comum.
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressRequest'
    InstanceLaunchVolume:
      type: object
      description: >
        Crie um novo disco, opcionalmente com desempenho provisionado, ou anexe
        um volume disponível existente nesta conta e região usando `volume`. Os
        volumes existentes mantêm seu conteúdo, desempenho e agendamentos de
        snapshot; eles são retidos após falha de inicialização ou exclusão de
        instância. Requer compute:AttachVolume para discos existentes. Um volume
        só pode ocorrer uma vez. Um disco de inicialização existente deve ser
        inicializável e substitui a imagem de nível superior.
      properties:
        boot:
          type: boolean
          default: false
          description: >-
            Selecione o disco de inicialização. Os discos de inicialização não
            podem especificar mount_path ou fstype.
        volume:
          type: string
          minLength: 1
          description: >-
            UUID, nome ou CRN do volume disponível existente. Exclusivo mútuo
            com configurações de novo disco.
          example: crn:storage:sa-saopaulo-1:my-account:volume/data
        size_gb:
          type: integer
          minimum: 1
          description: >-
            Nova capacidade de disco. Necessário para novos discos de dados; os
            discos de inicialização são padrão para o mínimo da imagem.
          example: 20
        volume_type:
          type: string
          enum:
            - ssd
            - nvme
          description: Nova camada de disco; omitida usa a região padrão.
        performance:
          $ref: '#/components/schemas/VolumePerformanceRequest'
        mount_path:
          type: string
          description: >-
            Caminho opcional de montagem do disco de dados. O agente convidado
            formata apenas discos em branco.
          example: /data
        fstype:
          type: string
          description: >-
            Sistema de arquivos opcional para discos de dados em branco; padrão
            é ext4.
          example: ext4
        delete_on_termination:
          type: boolean
          description: >-
            Padrões true para novos discos. Os discos existentes exigem false ou
            omissão e são retidos.
        snapshot_schedules:
          type: array
          maxItems: 16
          description: >
            Programações independentes para um novo disco. Os nomes devem ser
            exclusivos na conta e neste lançamento. Requer
            armazenamento:CreateSnapshotPolicy. Os discos existentes mantêm as
            suas agendas e não podem especificar este campo.
          items:
            $ref: '#/components/schemas/SnapshotScheduleSettings'
      oneOf:
        - required:
            - volume
          properties:
            delete_on_termination:
              enum:
                - false
          not:
            anyOf:
              - required:
                  - size_gb
              - required:
                  - volume_type
              - required:
                  - performance
              - required:
                  - snapshot_schedules
        - not:
            required:
              - volume
    Metadata:
      type: object
      additionalProperties:
        type: string
      example:
        environment: production
        team: backend
    Tags:
      type: object
      additionalProperties:
        type: string
      example:
        environment: production
        team: backend
    Flavor:
      type: object
      description: >-
        Um tamanho de computação (vCPU + RAM). Um flavor não carrega nenhum
        tamanho de disco — o disco de inicialização é um volume do cliente com o
        tamanho no lançamento, limitado pelo min_disk_gb da imagem.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
          example: 550e8400-e29b-41d4-a716-446655440000
        crn:
          type: string
          readOnly: true
          description: Nome do recurso da nuvem
          example: crn:compute:sa-saopaulo-1:platform:flavor/standard-2
        name:
          description: >-
            Os nomes de recursos não devem começar com o prefixo literal crn: ou
            ser UUIDs (formas canônicas, compactas, entre colchetes ou
            urn:uuid:, em qualquer caso).
          type: string
          example: m1.medium
        description:
          type: string
          example: Medium instance with 2 vCPUs and 4GB RAM
        vcpus:
          type: integer
          description: Número de CPUs virtuais
          example: 2
        ram_mb:
          type: integer
          description: Memória RAM em MB
          example: 4096
        class:
          type: string
          description: >-
            Roteamento de pool de host. "compartilhada" sobrescrever CPU para
            maior densidade; "dedicado" pinos cada vCPU 1:1 para um núcleo
            físico.
          enum:
            - shared
            - dedicated
          example: shared
        family:
          type: string
          description: >-
            Qual produto pode reservar o tipo de instância. Os tipos de
            instância "geral" são para instâncias regulares e pools de
            instâncias; os tipos de instância "loadbalancer" e "base de dados"
            são reservados para os produtos gerenciados (seus nós são operados
            por plataforma e têm preços correspondentes) e não podem ser usados
            para instâncias regulares.
          enum:
            - general
            - loadbalancer
            - database
          example: general
        net_mbps:
          type: integer
          minimum: 1
          readOnly: true
          description: >-
            Limite agregado de transferência de rede da instância em megabits
            por segundo. Omitido quando não há limite.
          example: 10000
        cpu_baseline_pct:
          type: integer
          minimum: 1
          readOnly: true
          description: >-
            Mínimo de CPU garantido como porcentagem de cada vCPU. Omitido
            quando não há mínimo garantido.
          example: 100
        cpu_burst_pct:
          type: integer
          minimum: 1
          readOnly: true
          description: >-
            Limite de CPU como porcentagem de cada vCPU. O valor 100 ou a
            omissão do campo permite usar todas as vCPUs.
          example: 100
        status:
          type: string
          enum:
            - active
            - disabled
          example: active
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
    Image:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        crn:
          type: string
          example: >-
            crn:compute:sa-saopaulo-1:my-account:image/ubuntu-24.04/architecture/amd64/version/20260901
        name:
          description: >-
            Os nomes de recursos não devem começar com o prefixo literal crn: ou
            ser UUIDs (formas canônicas, compactas, entre colchetes ou
            urn:uuid:, em qualquer caso).
          type: string
          example: ubuntu-24.04
        description:
          type: string
          example: Ubuntu 24.04 LTS (Noble Numbat)
        os:
          type: string
          example: ubuntu
        os_version:
          type: string
          example: '24.04'
        architecture:
          type: string
          example: amd64
        version:
          type: string
          description: >
            A identidade da compilação dentro de seu nome. Único lá: um nome é
            uma tag móvel, então não pode ser também o que diz duas construções
            separadas. Carimbado como um timestamp UTC quando o carregador não
            escolheu um.
          example: '20260807'
        is_current:
          type: boolean
          description: >
            Se esta é a versão resolve-by-name retorna para o seu (nome,
            arquitetura) — i.e. o alvo de tag atual do nome.
          example: true
        eol_date:
          type: string
          format: date
          description: >
            O dia em que a versão do SO desta imagem para de receber
            atualizações de segurança gratuitas para uma instalação padrão.
            Ausente quando ninguém registrou um — o que significa desconhecido,
            não "suportado indefinidamente".


            As imagens da plataforma são retiradas do catálogo após um período
            de carência após essa data. Eles permanecem inicializáveis por id
            até então, e a data é publicada bem antes para que você possa
            planejar a mudança.
          example: '2026-08-31'
        size_bytes:
          type: integer
          format: int64
          example: 2361393152
        min_disk_gb:
          type: integer
          minimum: 0
          maximum: 16384
          example: 10
        min_ram_mb:
          type: integer
          minimum: 0
          example: 1024
        status:
          type: string
          enum:
            - pending
            - importing
            - active
            - error
            - deleting
            - withdrawn
          description: >-
            Erro exatamente enquanto uma falha de erro ativo existe; o progresso
            de importação e exclusão permanecem independentemente retentáveis.
          example: active
        withdrawal_reason:
          type: string
          description: >
            Por que esta imagem foi retirada. Presente para imagens retiradas,
            incluindo aquelas com uma falha de erro independente: end_of_life
            para retirada de lançamento de plataforma (veja eol_date), ou legado
            para uma retirada migrada cuja razão original é desconhecida. As
            imagens retiradas retêm seus dados, mas não podem ser lançadas.
          example: end_of_life
        deletion_retention:
          type: object
          readOnly: true
          description: >
            Apresentar em respostas de lista de proprietários/detalhes enquanto
            a exclusão de imagem está esperando por referências de instância
            existente, reserva de origem ou pool de instâncias. As contagens
            incluem todas as contas de referência sem divulgar suas identidades.
            Os dados de backup permanecem intactos; a limpeza retoma quando as
            referências desaparecem. Falhas independentes ainda podem definir o
            status para erro.
          required:
            - reason
            - instances
            - instance_pools
          properties:
            reason:
              type: string
              enum:
                - in_use
            instances:
              type: integer
              minimum: 0
            instance_pools:
              type: integer
              minimum: 0
        faults:
          type: array
          readOnly: true
          description: >-
            Falhas ativas, mais recentes primeiro. Vazio para uma imagem
            saudável. As falhas de erro definem o status como erro sem
            desabilitar uma reintentância de importação ou limpeza elegível.
          items:
            $ref: '#/components/schemas/Fault'
        tags:
          $ref: '#/components/schemas/Tags'
        attributes:
          type: object
          additionalProperties:
            type: string
        created_at:
          type: string
          format: date-time
          example: '2026-01-15T09:30:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-01-15T09:30:00Z'
      required:
        - id
        - crn
        - name
        - version
        - architecture
        - status
        - faults
        - created_at
        - updated_at
    InstanceRole:
      type: object
      required:
        - id
        - crn
        - name
      properties:
        id:
          type: string
          format: uuid
          example: b2c3d4e5-f6a7-8901-2345-67890abcdef1
        crn:
          type: string
          description: >-
            Identidade de função com escopo de conta, conforme usada em
            documentos de política.
          example: crn:iam::my-account:role/deploy
        name:
          type: string
          description: Nome de função imutável.
          example: deploy
    Fault:
      type: object
      required:
        - code
        - severity
        - message
        - details
        - first_at
        - last_at
        - occurrences
      properties:
        code:
          type: string
          description: >-
            Código estável legível por máquina pertencente à operação de
            relatório.
          example: BACKUP_FAILED
        severity:
          type: string
          enum:
            - error
            - warning
        message:
          type: string
          example: Backup upload failed.
        details:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Contexto estruturado; cadeias de caracteres legadas são preservadas
            em legacy_text.
        first_at:
          type: string
          format: date-time
          description: Primeira observação nesta série de ocorrências ativas.
        last_at:
          type: string
          format: date-time
          description: Última observação nesta série de ocorrências ativas.
        occurrences:
          type: integer
          minimum: 1
          example: 1
    CurrentState:
      type: string
      description: >
        Os estados de transição vivem aqui, não em desired\_state — ninguém pede
        para eles serem criados. `stopping`.
      enum:
        - pending
        - building
        - running
        - stopping
        - stopped
        - rebooting
        - migrating
        - deleting
        - deleted
        - error
        - crashed
        - paused
        - suspended
    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
    AddressRequest:
      type: object
      properties:
        family:
          type: string
          enum:
            - ipv4
            - ipv6
        address:
          type: string
          description: >-
            Endereço fixo opcional ao criar uma interface ou instância NIC. Para
            IPv6, use o primeiro endereço de um /96 alinhado dentro da sub-rede
            /64 (últimos 32 bits zero); o primeiro e o último intervalo /96 são
            reservados. Omitir para alocação automática. Nós de banco de dados
            gerenciados e a operação de adicionar endereço exigem alocação
            automática.
      required:
        - family
      additionalProperties: false
    VolumePerformanceRequest:
      type: object
      additionalProperties: false
      description: >
        Desempenho de leitura/gravação combinado total sustentado de
        provisionamento independente. As dimensões omitidas mantêm seu valor
        atual (incluído na criação). O SSD permite até 8000 IOPS e 250 MiB/s; o
        NVMe até 12000 e 500 MiB/s. O mínimo é a cota incluída do volume; cotas
        maiores permanecem disponíveis gratuitamente. O rendimento é inteiro
        MiB/s, exceto uma fração exata de permissão de legado pode ser
        selecionada para remover o complemento pago. Os aumentos exigem cota de
        conta, capacidade regional e armazenamento saudável. Fatura de extras
        aplicados por duração decorrido, incluindo enquanto desligado ou parado.
      properties:
        iops:
          type: integer
          minimum: 1
          example: 6000
        throughput_mib_s:
          type: number
          minimum: 0
          example: 250
    SnapshotScheduleSettings:
      type: object
      required:
        - name
        - interval_minutes
        - retention_count
      description: Configurações de agendamento para um novo volume de instância.
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 128
          description: >-
            Nome de política de instantâneo exclusivo da conta, sujeito à
            validação de nome de recurso.
        description:
          type: string
        interval_minutes:
          $ref: '#/components/schemas/SnapshotIntervalMinutes'
        retention_count:
          $ref: '#/components/schemas/SnapshotRetentionCount'
        retention_days:
          $ref: '#/components/schemas/SnapshotRetentionDays'
        enabled:
          type: boolean
          default: true
        tags:
          $ref: '#/components/schemas/Tags'
    SnapshotIntervalMinutes:
      type: integer
      minimum: 1
      maximum: 43200
      description: >
        Minutos entre instantâneos — um intervalo mínimo, não uma cadência
        exata. Uma passagem periódica leva o que foi devido e re-baseia a
        próxima execução de cada política no momento em que foi executada, então
        um snapshot aterrissa em ou após `interval_minutes` e nunca antes, e
        pode aterrissar um minuto ou dois depois quando a passagem está ocupada.
        Uma janela que o passe perde custa um instantâneo em vez de produzir uma
        explosão de recuperação depois.


        O limite mínimo é de um minuto, porque é esse tempo que avalia o
        calendário e nada mais fino pode ser honrado; o limite máximo é de 30
        dias. Intervalos sub-horais multiplicam o churn de snapshots e contam
        contra a cota de `snapshots`, então escolha o maior intervalo que atenda
        ao seu objetivo de ponto de recuperação.
      example: 1440
    SnapshotRetentionCount:
      type: integer
      minimum: 1
      maximum: 256
      description: >
        Quantos instantâneos dessa política devem ser mantidos. Quando um
        incêndio leva a contagem além disso, o mais velho vai primeiro.
      example: 7
    SnapshotRetentionDays:
      type: integer
      minimum: 0
      maximum: 3650
      default: 0
      description: >
        Limite de idade opcional, aplicado em cima de `retention_count`: um
        instantâneo fora da janela EITHER é colhido. 0 significa sem idade
        limitada. O único snapshot mais recente está isento do limite de idade,
        portanto, um volume que não pode ser capturado por mais tempo do que a
        janela nunca perde todo o seu histórico.
      example: 30
  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
    Conflict:
      description: Conflito de recursos (por exemplo, já existe, estado inválido)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: CONFLICT
              message: Resource with this name already exists
              request_id: 550e8400-e29b-41d4-a716-446655440000
    UnprocessableEntity:
      description: >
        A solicitação está bem formada, mas não pode ser processada conforme
        enviada. Nas operações que aceitam `Idempotency-Key` este é o caso de
        reutilização de chave: a chave foi vista pela primeira vez com uma carga
        de solicitação diferente, então reproduzir o resultado armazenado
        responderia a uma pergunta que o chamador não fez.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: IDEMPOTENCY_KEY_REUSED
              message: >-
                This Idempotency-Key was already used with a different request
                payload
              request_id: 550e8400-e29b-41d4-a716-446655440000
    InternalServerError:
      description: Erro interno do servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_ERROR
              message: An internal error occurred
              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.