Parar Projeto

Pausa a execução do projeto.

Permissões necessárias

Parar o projeto exige project.stop em project:<project-id>. Retomar exige project.resume no mesmo projeto. owner tem acesso completo; assistant, member e API Keys da organização precisam do scope da ação.

PATCH /v1/project/:id/stop

Parâmetros de Path

ParâmetroTipoDescrição
idstringID do projeto

Headers

HeaderObrigatórioDescrição
x-api-key ou AuthorizationSimAPI Key da organização ou token de usuário
x-organization-idCom token de usuárioOrganização ativa do projeto. Dispensável com API Key da organização

Resposta

{
  "status": "success",
  "message": "stopped project with success"
}

Só um projeto em execução (running) pode ser parado. Ao parar:

  • a aplicação fica com 0 instâncias e deixa de ser acessível;
  • no pagamento por hora, a cobrança de processamento é fechada no momento da parada e não há cobrança de processamento enquanto o projeto estiver parado; o armazenamento persistente continua sendo cobrado;
  • em contratos mensais e anuais, parar não altera o valor do contrato;
  • a Zenifra guarda a quantidade de instâncias que o projeto tinha, usada na retomada.

Erros

StatusCódigoQuando ocorre
404—Projeto não encontrado
409PROJECT_OPERATION_IN_PROGRESSOutra operação está em andamento no projeto, como outra parada, uma retomada, uma troca de plano, uma alteração de armazenamento ou a renovação de credenciais
409PROJECT_STATE_CONFLICTO projeto não está em execução (por exemplo, já está parado)

Limite de requisições: 30 por minuto (contado por IP de origem).


Retomar Projeto

Retoma a execução de um projeto que está parado.

PATCH /v1/project/:id/resume

A retomada é assíncrona: a API aceita o pedido e o projeto passa para o status resuming até voltar a running. Consulte GET /v1/project/:id para acompanhar.

Só um projeto parado (stopped) pode ser retomado. Ele volta com a quantidade de instâncias que tinha no momento da parada. Aplicações HTTP com auto-scaling voltam com o mínimo configurado, e bancos Analytics e serviços Valkey voltam com as instâncias definidas pelo plano. No pagamento por hora, a cobrança de processamento recomeça na retomada.

Parâmetros de Path

ParâmetroTipoDescrição
idstringID do projeto

Resposta

{
  "status": "success",
  "message": "project resume accepted"
}

Erros

StatusCódigoQuando ocorre
402ORGANIZATION_BILLING_BLOCKEDA organização está bloqueada por pagamentos pendentes
404—Projeto não encontrado
409PROJECT_STATE_CONFLICTO projeto não está parado (por exemplo, já está em execução)
409PROJECT_OPERATION_IN_PROGRESSA retomada ou outra operação já está em andamento no projeto
409INSUFFICIENT_PLAN_CAPACITYA capacidade solicitada está indisponível no plano
409FREE_PLAN_INSTANCE_LIMIT_REACHEDO limite de instâncias do plano Free foi atingido
503PLAN_CAPACITY_TEMPORARILY_UNAVAILABLEA capacidade do projeto está temporariamente indisponível; tente novamente em instantes

Limite de requisições: 30 por minuto (contado por IP de origem).


Conflitos e bloqueio de cobrança

As operações que mudam o estado ou a cobrança do projeto (parar, retomar, excluir, trocar de plano, alterar instâncias e alterar armazenamento) são executadas uma de cada vez por projeto. Quando a operação não pode ser feita, a API recusa o pedido antes de qualquer alteração ou cobrança, com um corpo padronizado:

{
  "status": "failed",
  "code": "PROJECT_OPERATION_IN_PROGRESS",
  "message": "Another operation is in progress for this project"
}
StatuscodemessageO que fazer
409PROJECT_OPERATION_IN_PROGRESSAnother operation is in progress for this projectEspere a operação atual terminar e tente de novo
409PROJECT_STATE_CONFLICTThis operation is not available while the project is in its current stateConfira o status em GET /v1/project/:id; por exemplo, retome o projeto antes de alterar instâncias
402ORGANIZATION_BILLING_BLOCKEDThis organization has pending paymentsQuite os valores em aberto em Gestão de pagamentos
422PROJECT_OPERATION_NOT_SUPPORTEDThis operation is not available for this project typeA operação não existe para esse tipo de projeto

Uma organização bloqueada por pagamentos pendentes não pode aumentar o gasto: criar projetos, retomar, trocar para um plano maior, aumentar instâncias e aumentar armazenamento respondem 402. Parar, excluir, reduzir instâncias e trocar para um plano menor continuam disponíveis.

Repetir uma parada ou uma exclusão depois de uma falha de rede não gera cobrança em dobro: o período cobrado é fechado uma única vez.


Exemplos

Parar Projeto

curl -X PATCH "https://api.zenifra.com/v1/project/507f1f77bcf86cd799439011/stop" \
  -H "x-api-key: sua-api-key" \
  -H "x-organization-id: sua-organization-id"

Retomar Projeto

curl -X PATCH "https://api.zenifra.com/v1/project/507f1f77bcf86cd799439011/resume" \
  -H "x-api-key: sua-api-key" \
  -H "x-organization-id: sua-organization-id"

Python

import requests

API_KEY = "sua-api-key"
ORGANIZATION_ID = "sua-organization-id"
PROJECT_ID = "507f1f77bcf86cd799439011"

headers = {"x-api-key": API_KEY, "x-organization-id": ORGANIZATION_ID}

# Parar projeto
stop_response = requests.patch(
    f"https://api.zenifra.com/v1/project/{PROJECT_ID}/stop",
    headers=headers
).json()
print(stop_response)

# Retomar projeto
resume_response = requests.patch(
    f"https://api.zenifra.com/v1/project/{PROJECT_ID}/resume",
    headers=headers
).json()
print(resume_response)

Casos de Uso

  • Manutenção: Pause o projeto durante manutenção programada
  • Economia: Pause projetos que não precisam estar rodando continuamente
  • Testes: Pause ambientes de teste quando não estiverem em uso

Última atualização em

Nessa página