c.Apps.Snapshots:List(ctx, appID),Create(ctx, appID),Restore(ctx, appID, name, versionID)c.Databases.Snapshots:List(ctx, databaseID),Create(ctx, databaseID),Restore(ctx, databaseID, name, versionID)
main e execute o goimports (veja Executando os exemplos).
Listando snapshots
Criando um snapshot
Create aguarda o snapshot (sem um prazo no ctx, pelo menos 2 minutos antes de expirar). Um snapshot grande pode não terminar a tempo: a API então responde 202 e o SDK retorna um SnapshotCreated com Pending definido como true e um erro nil. O snapshot continua sendo gerado e aparece em List sozinho, geralmente em até 2 minutos.
Restaurando um snapshot
Restore(ctx, id, name, versionID) recebe o Name e o VersionID de um snapshot listado.
Baixando um snapshot
c.DownloadSnapshot(ctx, url, w) transmite um arquivo de snapshot a partir da sua url assinada (de List ou Create) para qualquer io.Writer. Ele não chama a API: a chave de API nunca é enviada ao host de armazenamento, e a URL nunca aparece no erro retornado. Nada é armazenado em memória, e não há prazo padrão (limite-o ou cancele-o com o ctx). Um erro de rede antes da resposta é tentado novamente como qualquer GET.
*APIError com o status HTTP do host de armazenamento e UNKNOWN_ERROR. Uma URL que não pode ser interpretada e um erro do seu io.Writer são retornados como erros simples.
Snapshots da conta
c.Account.Snapshots(ctx, scope) lista todos os snapshots da conta. Passe "" para todos eles, ou squarecloud.SnapshotScopeApplications ou squarecloud.SnapshotScopeDatabases. Requer um plano ativo e compartilha o rate limit dos endpoints de rede (429 RATE_LIMITED).
Limites
Createé limitado a uma chamada a cada 180 segundos e a uma cota diária que depende do plano: ultrapassar a cota resulta em 429DAILY_SNAPSHOTS_LIMIT_REACHED.- Enquanto uma restauração está em andamento, excluir a aplicação ou iniciar o banco de dados resulta em 403
RESTORE_IN_PROGRESS.
Próximos passos
Bancos de dados
Crie e gerencie bancos de dados.
Referência da API de snapshots
Os endpoints REST por trás destes métodos.
Snapshots pela CLI
As mesmas ações pelo terminal.

