Pular para o conteúdo principal
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)
As variáveis de ambiente são modeladas como squarecloud.EnvVars, um simples map[string]string. Todos os métodos retornam o conjunto completo de variáveis após a operação — você sempre recebe um mapa atualizado de volta.
Limites: até 256 variáveis por aplicação, chaves com até 1024 caracteres e valores com até 4096 caracteres.

Listando as variáveis

envs, err := api.GetApplicationEnvs("abc123def456abc123def456")
if err != nil {
	panic(err)
}

for key, value := range envs {
	fmt.Printf("%s=%s\n", key, value)
}

Adicionando ou atualizando variáveis

api.SetApplicationEnvs(appID, envs) mescla novas variáveis ao conjunto existente. Chaves não mencionadas na chamada são preservadas.
envs, err := api.SetApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://...",
	"FEATURE_FLAG": "true",
})
if err != nil {
	panic(err)
}

Substituindo o conjunto inteiro

api.ReplaceApplicationEnvs(appID, envs) sobrescreve todas as variáveis.
Tudo que não estiver na chamada é removido. Use SetApplicationEnvs quando quiser apenas adicionar ou atualizar — ReplaceApplicationEnvs apaga todas as variáveis que você deixar de fora.
envs, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://novo-host...",
})
if err != nil {
	panic(err)
}
// FEATURE_FLAG não existe mais
Passe um mapa vazio para apagar todas as variáveis:
_, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{})

Removendo variáveis

api.DeleteApplicationEnvs(appID, keys) remove as chaves listadas. Chaves desconhecidas são ignoradas silenciosamente.
envs, err := api.DeleteApplicationEnvs("abc123def456abc123def456", []string{"FEATURE_FLAG"})
if err != nil {
	panic(err)
}