@gridscale/api
Version:
gridscale API Wrapper
71 lines (55 loc) • 1.88 kB
text/typescript
import { APIClass, ApiResult, GenericApiResult, RequestOptions, VoidApiResult } from '../api';
import * as models from './../Specs';
class ObjectStorage {
// Naming
public _api: APIClass;
/**
* Create Object Endpoint
*
*
* @param _api API Class Instance
* @param _path Path to the Object
*/
constructor(_api: APIClass) {
this._api = _api;
}
/**
* List Access Keys
*
*
* @param _options
* @param _callback
* @returns {Promise<ApiResult<models.AccessKeysGetResponse>>}
*/
accessKeys(_options: RequestOptions, _callback?: (response: Response, result: ApiResult<GenericApiResult>) => void): Promise<ApiResult<models.AccessKeysGetResponse>> {
return this._api.get( '/objects/objectstorages/access_keys', _options, _callback);
}
/**
* Get Single Object by UUID
*
* @param _uuid
* @param _callback
*/
accessKey(_access_key: string, _callback?: Function): Promise<ApiResult<models.AccessKeyGetResponse>> {
return this._api.get( '/objects/objectstorages/access_keys/' + _access_key, _callback);
}
/**
* Remove Access Key
*
* @param _uuid
* @param _callback
*/
removeAccessKey(_access_key: string, _callback?: (response: Response, result: ApiResult<GenericApiResult>) => void): Promise<ApiResult<VoidApiResult>> {
return this._api.remove( '/objects/objectstorages/access_keys/' + _access_key, _callback);
}
/**
* Creates new Access Key
*
* @param _callback
* @returns {Promise<ApiResult<models.AccessKeyCreateResponse>>}
*/
createAccessKey(_callback?: Function): Promise<ApiResult<models.AccessKeyCreateResponse>> {
return this._api.post( '/objects/objectstorages/access_keys' , _callback);
}
}
export { ObjectStorage };