All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.heroku.api.HerokuAPI Maven / Gradle / Ivy
package com.heroku.api;
import com.heroku.api.connection.Connection;
import com.heroku.api.connection.ConnectionFactory;
import com.heroku.api.request.addon.AddonInstall;
import com.heroku.api.request.addon.AddonList;
import com.heroku.api.request.addon.AddonRemove;
import com.heroku.api.request.addon.AppAddonsList;
import com.heroku.api.request.app.*;
import com.heroku.api.request.config.ConfigAdd;
import com.heroku.api.request.config.ConfigList;
import com.heroku.api.request.config.ConfigRemove;
import com.heroku.api.request.key.KeyAdd;
import com.heroku.api.request.key.KeyList;
import com.heroku.api.request.key.KeyRemove;
import com.heroku.api.request.log.Log;
import com.heroku.api.request.log.LogStreamResponse;
import com.heroku.api.request.ps.ProcessList;
import com.heroku.api.request.ps.Restart;
import com.heroku.api.request.ps.Scale;
import com.heroku.api.request.releases.ListReleases;
import com.heroku.api.request.releases.ReleaseInfo;
import com.heroku.api.request.releases.Rollback;
import com.heroku.api.request.run.Run;
import com.heroku.api.request.run.RunResponse;
import com.heroku.api.request.sharing.CollabList;
import com.heroku.api.request.sharing.SharingAdd;
import com.heroku.api.request.sharing.SharingRemove;
import com.heroku.api.request.sharing.SharingTransfer;
import java.util.List;
import java.util.Map;
public class HerokuAPI {
final Connection connection;
public static String obtainApiKey(String username, String password) {
return ConnectionFactory.get(username, password).getApiKey();
}
public HerokuAPI(String apiKey) {
this(ConnectionFactory.get(apiKey));
}
public HerokuAPI(Connection connection) {
this.connection = connection;
}
public Connection getConnection() {
return connection;
}
public String getApiKey() {
return connection.getApiKey();
}
public void addKey(String sshKey) {
connection.execute(new KeyAdd(sshKey));
}
public void removeKey(String sshKey) {
connection.execute(new KeyRemove(sshKey));
}
public List listKeys() {
return connection.execute(new KeyList());
}
public List listApps() {
return connection.execute(new AppList());
}
public App getApp(String name) {
return connection.execute(new AppInfo(name));
}
public App createApp() {
return connection.execute(new AppCreate(new App().on(Heroku.Stack.Cedar)));
}
public App createApp(App app) {
return connection.execute(new AppCreate(app));
}
public String renameApp(String appName, String newName) {
return connection.execute(new AppRename(appName, newName)).getName();
}
public void destroyApp(String appName) {
connection.execute(new AppDestroy(appName));
}
public AddonChange addAddon(String appName, String addonName) {
return connection.execute(new AddonInstall(appName, addonName));
}
public List listAllAddons() {
return connection.execute(new AddonList());
}
public List listAppAddons(String appName) {
return connection.execute(new AppAddonsList(appName));
}
public AddonChange removeAddon(String appName, String addonName) {
return connection.execute(new AddonRemove(appName, addonName));
}
// TODO: need addon upgrade/downgrade
public void scaleProcess(String appName, String processType, int quantity) {
connection.execute(new Scale(appName, processType, quantity));
}
public List listProcesses(String appName) {
return connection.execute(new ProcessList(appName));
}
public List listReleases(String appName) {
return connection.execute(new ListReleases(appName));
}
public String rollback(String appName, String releaseName) {
return connection.execute(new Rollback(appName, releaseName));
}
public Release getReleaseInfo(String appName, String releaseName) {
return connection.execute(new ReleaseInfo(appName, releaseName));
}
public List listCollaborators(String appName) {
return connection.execute(new CollabList(appName));
}
public void addCollaborator(String appName, String collaborator) {
connection.execute(new SharingAdd(appName, collaborator));
}
public void removeCollaborator(String appName, String collaborator) {
connection.execute(new SharingRemove(appName, collaborator));
}
public void addConfig(String appName, Map config) {
String jsonConfig = "{";
String separator = "";
for (Map.Entry configEntry : config.entrySet()) {
jsonConfig = jsonConfig.concat(String.format("%s \"%s\":\"%s\"", separator, configEntry.getKey(), configEntry.getValue()));
separator = ",";
}
jsonConfig = jsonConfig.concat("}");
connection.execute(new ConfigAdd(appName, jsonConfig));
}
public Map listConfig(String appName) {
return connection.execute(new ConfigList(appName));
}
public Map removeConfig(String appName, String configVarName) {
return connection.execute(new ConfigRemove(appName, configVarName));
}
public void transferApp(String appName, String to) {
connection.execute(new SharingTransfer(appName, to));
}
public LogStreamResponse getLogs(String appName) {
return connection.execute(new Log(appName));
}
public LogStreamResponse getLogs(Log.LogRequestBuilder logRequest) {
return connection.execute(new Log(logRequest));
}
public void run(String appName, String command) {
connection.execute(new Run(appName, command));
}
public RunResponse runAttached(String appName, String command) {
return connection.execute(new Run(appName, command, true));
}
public void restart(String appName) {
connection.execute(new Restart(appName));
}
public void restartProcessByType(String appName, String type) {
connection.execute(new Restart.ProcessTypeRestart(appName, type));
}
public void restartProcessByName(String appName, String procName) {
connection.execute(new Restart.NamedProcessRestart(appName, procName));
}
}