Activated usage tracking
This commit is contained in:
parent
c65ef9e6a8
commit
471f8d4454
10 changed files with 106 additions and 12 deletions
|
@ -106,7 +106,7 @@ App::get('/v1/functions/:functionId')
|
||||||
$function = $projectDB->getDocument($functionId);
|
$function = $projectDB->getDocument($functionId);
|
||||||
|
|
||||||
if (empty($function->getId()) || Database::SYSTEM_COLLECTION_FUNCTIONS != $function->getCollection()) {
|
if (empty($function->getId()) || Database::SYSTEM_COLLECTION_FUNCTIONS != $function->getCollection()) {
|
||||||
throw new Exception('function not found', 404);
|
throw new Exception('Function not found', 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$response->json($function->getArrayCopy());
|
$response->json($function->getArrayCopy());
|
||||||
|
@ -116,6 +116,7 @@ App::get('/v1/functions/:functionId/usage')
|
||||||
->desc('Get Function Usage')
|
->desc('Get Function Usage')
|
||||||
->groups(['api', 'functions'])
|
->groups(['api', 'functions'])
|
||||||
->label('scope', 'functions.read')
|
->label('scope', 'functions.read')
|
||||||
|
->label('sdk.platform', [APP_PLATFORM_CONSOLE])
|
||||||
->label('sdk.namespace', 'functions')
|
->label('sdk.namespace', 'functions')
|
||||||
->label('sdk.method', 'getUsage')
|
->label('sdk.method', 'getUsage')
|
||||||
->param('functionId', '', function () { return new UID(); }, 'Function unique ID.')
|
->param('functionId', '', function () { return new UID(); }, 'Function unique ID.')
|
||||||
|
@ -130,7 +131,7 @@ App::get('/v1/functions/:functionId/usage')
|
||||||
$function = $projectDB->getDocument($functionId);
|
$function = $projectDB->getDocument($functionId);
|
||||||
|
|
||||||
if (empty($function->getId()) || Database::SYSTEM_COLLECTION_FUNCTIONS != $function->getCollection()) {
|
if (empty($function->getId()) || Database::SYSTEM_COLLECTION_FUNCTIONS != $function->getCollection()) {
|
||||||
throw new Exception('function not found', 404);
|
throw new Exception('Function not found', 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$period = [
|
$period = [
|
||||||
|
@ -188,7 +189,7 @@ App::get('/v1/functions/:functionId/usage')
|
||||||
|
|
||||||
foreach ($points as $point) {
|
foreach ($points as $point) {
|
||||||
$compute[] = [
|
$compute[] = [
|
||||||
'value' => (!empty($point['value'])) ? $point['value'] : 0,
|
'value' => (!empty($point['value'])) ? $point['value'] / 60000 : 0, // minutes
|
||||||
'date' => \strtotime($point['time']),
|
'date' => \strtotime($point['time']),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -208,7 +209,7 @@ App::get('/v1/functions/:functionId/usage')
|
||||||
}, $compute)),
|
}, $compute)),
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
}, ['response', 'consoleDB', 'projectDB', 'register']);
|
}, ['response', 'project', 'projectDB', 'register']);
|
||||||
|
|
||||||
App::put('/v1/functions/:functionId')
|
App::put('/v1/functions/:functionId')
|
||||||
->groups(['api', 'functions'])
|
->groups(['api', 'functions'])
|
||||||
|
|
15
app/sdks/console-web/docs/examples/functions/get-usage.md
Normal file
15
app/sdks/console-web/docs/examples/functions/get-usage.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
let sdk = new Appwrite();
|
||||||
|
|
||||||
|
sdk
|
||||||
|
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
|
||||||
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
|
;
|
||||||
|
|
||||||
|
let promise = sdk.functions.getUsage('[FUNCTION_ID]');
|
||||||
|
|
||||||
|
promise.then(function (response) {
|
||||||
|
console.log(response); // Success
|
||||||
|
}, function (error) {
|
||||||
|
console.log(error); // Failure
|
||||||
|
});
|
|
@ -2238,6 +2238,34 @@
|
||||||
.delete(path, {
|
.delete(path, {
|
||||||
'content-type': 'application/json',
|
'content-type': 'application/json',
|
||||||
}, payload);
|
}, payload);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Function Usage
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param {string} functionId
|
||||||
|
* @param {string} range
|
||||||
|
* @throws {Error}
|
||||||
|
* @return {Promise}
|
||||||
|
*/
|
||||||
|
getUsage: function(functionId, range = 'last30') {
|
||||||
|
if(functionId === undefined) {
|
||||||
|
throw new Error('Missing required parameter: "functionId"');
|
||||||
|
}
|
||||||
|
|
||||||
|
let path = '/functions/{functionId}/usage'.replace(new RegExp('{functionId}', 'g'), functionId);
|
||||||
|
|
||||||
|
let payload = {};
|
||||||
|
|
||||||
|
if(range) {
|
||||||
|
payload['range'] = range;
|
||||||
|
}
|
||||||
|
|
||||||
|
return http
|
||||||
|
.get(path, {
|
||||||
|
'content-type': 'application/json',
|
||||||
|
}, payload);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
4
app/sdks/console-web/src/sdk.min.js
vendored
4
app/sdks/console-web/src/sdk.min.js
vendored
|
@ -191,7 +191,9 @@ return http.post(path,{'content-type':'multipart/form-data',},payload)},getTag:f
|
||||||
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"')}
|
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"')}
|
||||||
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.get(path,{'content-type':'application/json',},payload)},deleteTag:function(functionId,tagId){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"')}
|
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.get(path,{'content-type':'application/json',},payload)},deleteTag:function(functionId,tagId){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"')}
|
||||||
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"')}
|
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"')}
|
||||||
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.delete(path,{'content-type':'application/json',},payload)}};let health={get:function(){let path='/health';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getAntiVirus:function(){let path='/health/anti-virus';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCache:function(){let path='/health/cache';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getDB:function(){let path='/health/db';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueCertificates:function(){let path='/health/queue/certificates';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueFunctions:function(){let path='/health/queue/functions';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueLogs:function(){let path='/health/queue/logs';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueTasks:function(){let path='/health/queue/tasks';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueUsage:function(){let path='/health/queue/usage';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueWebhooks:function(){let path='/health/queue/webhooks';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getStorageLocal:function(){let path='/health/storage/local';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getTime:function(){let path='/health/time';let payload={};return http.get(path,{'content-type':'application/json',},payload)}};let locale={get:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getContinents:function(){let path='/locale/continents';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getLanguages:function(){let path='/locale/languages';let payload={};return http.get(path,{'content-type':'application/json',},payload)}};let projects={list:function(search='',limit=25,offset=0,orderType='ASC'){let path='/projects';let payload={};if(search){payload.search=search}
|
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.delete(path,{'content-type':'application/json',},payload)},getUsage:function(functionId,range='last30'){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"')}
|
||||||
|
let path='/functions/{functionId}/usage'.replace(new RegExp('{functionId}','g'),functionId);let payload={};if(range){payload.range=range}
|
||||||
|
return http.get(path,{'content-type':'application/json',},payload)}};let health={get:function(){let path='/health';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getAntiVirus:function(){let path='/health/anti-virus';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCache:function(){let path='/health/cache';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getDB:function(){let path='/health/db';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueCertificates:function(){let path='/health/queue/certificates';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueFunctions:function(){let path='/health/queue/functions';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueLogs:function(){let path='/health/queue/logs';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueTasks:function(){let path='/health/queue/tasks';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueUsage:function(){let path='/health/queue/usage';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getQueueWebhooks:function(){let path='/health/queue/webhooks';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getStorageLocal:function(){let path='/health/storage/local';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getTime:function(){let path='/health/time';let payload={};return http.get(path,{'content-type':'application/json',},payload)}};let locale={get:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getContinents:function(){let path='/locale/continents';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json',},payload)},getLanguages:function(){let path='/locale/languages';let payload={};return http.get(path,{'content-type':'application/json',},payload)}};let projects={list:function(search='',limit=25,offset=0,orderType='ASC'){let path='/projects';let payload={};if(search){payload.search=search}
|
||||||
if(limit){payload.limit=limit}
|
if(limit){payload.limit=limit}
|
||||||
if(offset){payload.offset=offset}
|
if(offset){payload.offset=offset}
|
||||||
if(orderType){payload.orderType=orderType}
|
if(orderType){payload.orderType=orderType}
|
||||||
|
|
11
app/sdks/console-web/types/index.d.ts
vendored
11
app/sdks/console-web/types/index.d.ts
vendored
|
@ -767,6 +767,17 @@ declare namespace Appwrite {
|
||||||
*/
|
*/
|
||||||
deleteTag(functionId: string, tagId: string): Promise<object>;
|
deleteTag(functionId: string, tagId: string): Promise<object>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Function Usage
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param {string} functionId
|
||||||
|
* @param {string} range
|
||||||
|
* @throws {Error}
|
||||||
|
* @return {Promise}
|
||||||
|
*/
|
||||||
|
getUsage(functionId: string, range: string): Promise<object>;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Health {
|
export interface Health {
|
||||||
|
|
|
@ -244,17 +244,22 @@ $timeout = $this->getParam('timeout', 900);
|
||||||
<li data-state="/console/functions/function/usage?id={{router.params.id}}&project={{router.params.project}}">
|
<li data-state="/console/functions/function/usage?id={{router.params.id}}&project={{router.params.project}}">
|
||||||
<h2>Usage</h2>
|
<h2>Usage</h2>
|
||||||
|
|
||||||
<div class="box margin-bottom-small">
|
<div class="box margin-bottom-small"
|
||||||
|
data-service="functions.getUsage"
|
||||||
|
data-event="load"
|
||||||
|
data-name="usage"
|
||||||
|
data-param-function-id="{{router.params.id}}"
|
||||||
|
data-param-range="last30">
|
||||||
<div class="margin-start-negative-small margin-end-negative-small margin-top-negative-small margin-bottom-negative-small">
|
<div class="margin-start-negative-small margin-end-negative-small margin-top-negative-small margin-bottom-negative-small">
|
||||||
<div class="chart margin-bottom-no">
|
<div class="chart margin-bottom-no">
|
||||||
<div class="content" data-forms-chart="Requests=usage.requests.data,Network=usage.network.data" data-height="140"></div>
|
<div class="content" data-forms-chart="Executions=usage.executions.data,CPU Time (minutes)=usage.compute.data" data-height="140"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="chart-notes margin-bottom-large">
|
<ul class="chart-notes margin-bottom-large">
|
||||||
<li>Invocations</li>
|
<li>Executions</li>
|
||||||
<li>CPU Time</li>
|
<li>CPU Time (minutes)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Logs <span class="text-fade text-size-small pull-end margin-top-small" data-ls-bind="{{project-function-executions.sum}} executions found"></span></h3>
|
<h3>Logs <span class="text-fade text-size-small pull-end margin-top-small" data-ls-bind="{{project-function-executions.sum}} executions found"></span></h3>
|
||||||
|
|
|
@ -329,7 +329,7 @@ class FunctionsV1
|
||||||
->setParam('projectId', $projectId)
|
->setParam('projectId', $projectId)
|
||||||
->setParam('functionId', $function->getId())
|
->setParam('functionId', $function->getId())
|
||||||
->setParam('functionExecution', 1)
|
->setParam('functionExecution', 1)
|
||||||
->setParam('functionExecutionTime', $executionTime) // Seconds
|
->setParam('functionExecutionTime', $executionTime * 1000) // ms
|
||||||
->setParam('networkRequestSize', 0)
|
->setParam('networkRequestSize', 0)
|
||||||
->setParam('networkResponseSize', 0)
|
->setParam('networkResponseSize', 0)
|
||||||
;
|
;
|
||||||
|
|
4
public/dist/scripts/app-all.js
vendored
4
public/dist/scripts/app-all.js
vendored
|
@ -205,7 +205,9 @@ return http.post(path,{'content-type':'multipart/form-data',},payload);},getTag:
|
||||||
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
||||||
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},deleteTag:function(functionId,tagId){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"');}
|
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},deleteTag:function(functionId,tagId){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"');}
|
||||||
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
||||||
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.delete(path,{'content-type':'application/json',},payload);}};let health={get:function(){let path='/health';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getAntiVirus:function(){let path='/health/anti-virus';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCache:function(){let path='/health/cache';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getDB:function(){let path='/health/db';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueCertificates:function(){let path='/health/queue/certificates';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueFunctions:function(){let path='/health/queue/functions';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueLogs:function(){let path='/health/queue/logs';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueTasks:function(){let path='/health/queue/tasks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueUsage:function(){let path='/health/queue/usage';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueWebhooks:function(){let path='/health/queue/webhooks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getStorageLocal:function(){let path='/health/storage/local';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getTime:function(){let path='/health/time';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let locale={get:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getContinents:function(){let path='/locale/continents';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getLanguages:function(){let path='/locale/languages';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let projects={list:function(search='',limit=25,offset=0,orderType='ASC'){let path='/projects';let payload={};if(search){payload['search']=search;}
|
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.delete(path,{'content-type':'application/json',},payload);},getUsage:function(functionId,range='last30'){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"');}
|
||||||
|
let path='/functions/{functionId}/usage'.replace(new RegExp('{functionId}','g'),functionId);let payload={};if(range){payload['range']=range;}
|
||||||
|
return http.get(path,{'content-type':'application/json',},payload);}};let health={get:function(){let path='/health';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getAntiVirus:function(){let path='/health/anti-virus';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCache:function(){let path='/health/cache';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getDB:function(){let path='/health/db';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueCertificates:function(){let path='/health/queue/certificates';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueFunctions:function(){let path='/health/queue/functions';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueLogs:function(){let path='/health/queue/logs';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueTasks:function(){let path='/health/queue/tasks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueUsage:function(){let path='/health/queue/usage';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueWebhooks:function(){let path='/health/queue/webhooks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getStorageLocal:function(){let path='/health/storage/local';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getTime:function(){let path='/health/time';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let locale={get:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getContinents:function(){let path='/locale/continents';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getLanguages:function(){let path='/locale/languages';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let projects={list:function(search='',limit=25,offset=0,orderType='ASC'){let path='/projects';let payload={};if(search){payload['search']=search;}
|
||||||
if(limit){payload['limit']=limit;}
|
if(limit){payload['limit']=limit;}
|
||||||
if(offset){payload['offset']=offset;}
|
if(offset){payload['offset']=offset;}
|
||||||
if(orderType){payload['orderType']=orderType;}
|
if(orderType){payload['orderType']=orderType;}
|
||||||
|
|
4
public/dist/scripts/app-dep.js
vendored
4
public/dist/scripts/app-dep.js
vendored
|
@ -205,7 +205,9 @@ return http.post(path,{'content-type':'multipart/form-data',},payload);},getTag:
|
||||||
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
||||||
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},deleteTag:function(functionId,tagId){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"');}
|
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},deleteTag:function(functionId,tagId){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"');}
|
||||||
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
if(tagId===undefined){throw new Error('Missing required parameter: "tagId"');}
|
||||||
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.delete(path,{'content-type':'application/json',},payload);}};let health={get:function(){let path='/health';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getAntiVirus:function(){let path='/health/anti-virus';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCache:function(){let path='/health/cache';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getDB:function(){let path='/health/db';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueCertificates:function(){let path='/health/queue/certificates';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueFunctions:function(){let path='/health/queue/functions';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueLogs:function(){let path='/health/queue/logs';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueTasks:function(){let path='/health/queue/tasks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueUsage:function(){let path='/health/queue/usage';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueWebhooks:function(){let path='/health/queue/webhooks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getStorageLocal:function(){let path='/health/storage/local';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getTime:function(){let path='/health/time';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let locale={get:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getContinents:function(){let path='/locale/continents';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getLanguages:function(){let path='/locale/languages';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let projects={list:function(search='',limit=25,offset=0,orderType='ASC'){let path='/projects';let payload={};if(search){payload['search']=search;}
|
let path='/functions/{functionId}/tags/{tagId}'.replace(new RegExp('{functionId}','g'),functionId).replace(new RegExp('{tagId}','g'),tagId);let payload={};return http.delete(path,{'content-type':'application/json',},payload);},getUsage:function(functionId,range='last30'){if(functionId===undefined){throw new Error('Missing required parameter: "functionId"');}
|
||||||
|
let path='/functions/{functionId}/usage'.replace(new RegExp('{functionId}','g'),functionId);let payload={};if(range){payload['range']=range;}
|
||||||
|
return http.get(path,{'content-type':'application/json',},payload);}};let health={get:function(){let path='/health';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getAntiVirus:function(){let path='/health/anti-virus';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCache:function(){let path='/health/cache';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getDB:function(){let path='/health/db';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueCertificates:function(){let path='/health/queue/certificates';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueFunctions:function(){let path='/health/queue/functions';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueLogs:function(){let path='/health/queue/logs';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueTasks:function(){let path='/health/queue/tasks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueUsage:function(){let path='/health/queue/usage';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getQueueWebhooks:function(){let path='/health/queue/webhooks';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getStorageLocal:function(){let path='/health/storage/local';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getTime:function(){let path='/health/time';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let locale={get:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getContinents:function(){let path='/locale/continents';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json',},payload);},getLanguages:function(){let path='/locale/languages';let payload={};return http.get(path,{'content-type':'application/json',},payload);}};let projects={list:function(search='',limit=25,offset=0,orderType='ASC'){let path='/projects';let payload={};if(search){payload['search']=search;}
|
||||||
if(limit){payload['limit']=limit;}
|
if(limit){payload['limit']=limit;}
|
||||||
if(offset){payload['offset']=offset;}
|
if(offset){payload['offset']=offset;}
|
||||||
if(orderType){payload['orderType']=orderType;}
|
if(orderType){payload['orderType']=orderType;}
|
||||||
|
|
|
@ -2238,6 +2238,34 @@
|
||||||
.delete(path, {
|
.delete(path, {
|
||||||
'content-type': 'application/json',
|
'content-type': 'application/json',
|
||||||
}, payload);
|
}, payload);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Function Usage
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param {string} functionId
|
||||||
|
* @param {string} range
|
||||||
|
* @throws {Error}
|
||||||
|
* @return {Promise}
|
||||||
|
*/
|
||||||
|
getUsage: function(functionId, range = 'last30') {
|
||||||
|
if(functionId === undefined) {
|
||||||
|
throw new Error('Missing required parameter: "functionId"');
|
||||||
|
}
|
||||||
|
|
||||||
|
let path = '/functions/{functionId}/usage'.replace(new RegExp('{functionId}', 'g'), functionId);
|
||||||
|
|
||||||
|
let payload = {};
|
||||||
|
|
||||||
|
if(range) {
|
||||||
|
payload['range'] = range;
|
||||||
|
}
|
||||||
|
|
||||||
|
return http
|
||||||
|
.get(path, {
|
||||||
|
'content-type': 'application/json',
|
||||||
|
}, payload);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue