package com.baidubce.services.tsdb;
import com.baidubce.BceClientConfiguration;
import com.baidubce.http.HttpMethodName;
import com.baidubce.internal.InternalRequest;
import com.baidubce.services.tsdb.model.CreateDatabaseRequest;
import com.baidubce.services.tsdb.model.CreateDatabaseResponse;
import com.baidubce.services.tsdb.model.DeleteDatabaseRequest;
import com.baidubce.services.tsdb.model.DeleteDatabaseResponse;
import com.baidubce.services.tsdb.model.GetDatabaseRequest;
import com.baidubce.services.tsdb.model.GetDatabaseResponse;
import com.baidubce.services.tsdb.model.ListDatabaseRequest;
import com.baidubce.services.tsdb.model.ListDatabaseResponse;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Provides the client for accessing the Tsdb(Time series database) admin api.
*/
public class TsdbAdminClient extends AbstractTsdbBceClient {
private static final String DATABASE = "database";
private static final String CLIENT_TOKEN = "clientToken";
public TsdbAdminClient(BceClientConfiguration config) {
super(config, TSDB_HANDLERS);
}
public CreateDatabaseResponse createDatabase(CreateDatabaseRequest createDatabaseRequest, String clientToken) {
checkNotNull(createDatabaseRequest, "request should not be null.");
InternalRequest internalRequest = createRequest(createDatabaseRequest, HttpMethodName.POST, DATABASE);
internalRequest.addParameter(CLIENT_TOKEN, clientToken);
fillInHeadAndBody(createDatabaseRequest, internalRequest);
return this.invokeHttpClient(internalRequest, CreateDatabaseResponse.class);
}
public DeleteDatabaseResponse deleteDatabase(String databaseId) {
checkNotNull(databaseId, "database id should not be null.");
return deleteDatabase(new DeleteDatabaseRequest().withDatabaseId(databaseId));
}
public DeleteDatabaseResponse deleteDatabase(DeleteDatabaseRequest deleteDatabaseRequest) {
checkNotNull(deleteDatabaseRequest, "request should not be null.");
InternalRequest internalRequest = createRequest(deleteDatabaseRequest, HttpMethodName.DELETE, DATABASE,
deleteDatabaseRequest.getDatabaseId());
return this.invokeHttpClient(internalRequest, DeleteDatabaseResponse.class);
}
public GetDatabaseResponse getDatabase(String databaseId) {
checkNotNull(databaseId, "database id should not be null.");
return getDatabase(new GetDatabaseRequest().withDatabaseId(databaseId));
}
public GetDatabaseResponse getDatabase(GetDatabaseRequest getDatabaseRequest) {
checkNotNull(getDatabaseRequest, "request should not be null.");
InternalRequest internalRequest = createRequest(getDatabaseRequest, HttpMethodName.GET, DATABASE,
getDatabaseRequest.getDatabaseId());
return this.invokeHttpClient(internalRequest, GetDatabaseResponse.class);
}
public ListDatabaseResponse listDatabase() {
return listDatabase(new ListDatabaseRequest());
}
public ListDatabaseResponse listDatabase(ListDatabaseRequest listDatabaseRequest) {
checkNotNull(listDatabaseRequest, "request should not be null.");
InternalRequest internalRequest = createRequest(listDatabaseRequest, HttpMethodName.GET, DATABASE);
return this.invokeHttpClient(internalRequest, ListDatabaseResponse.class);
}
}