API Reference
Get punchplatform.properties file.
Response
Status
| Status Code |
Reason |
| 200 |
Successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/platform/properties'
Get tenant used by the gateway.
Response
Body
| Field |
Description |
| tenant |
Tenant set in Gateway settings |
Status
| Status Code |
Reason |
| 200 |
Successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/platform/tenant'
Example response
POST /v1/puncher/{operator}
Execute a punchlet which using the given operator
Request
Path variable
| Field |
Description |
| operator |
Operator to use ("grok", "dissect" or "punchlet") |
| Field |
Description |
| input |
File containing log samples |
| pattern |
File contaning the pattern |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 500 |
Invalid input or pattern |
Example request
curl --location --request POST 'http://localhost:4242/v1/puncher/dissect' \
--form 'input=@/my_dissect_folder/input' \
--form 'pattern=@/my_dissect_folder/pattern'
DELETE /v1/{tenant}/archives
Delete all existing archives for a tenant
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request DELETE 'http://localhost:4242/v1/mytenant/archives'
GET /v1/{tenant}/archives/{id}
Download an archive generated by a punchline
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Archive id to download |
Response
HTTP Status
| Status Code |
Reason |
| 200 |
Successful download |
| 404 |
Archive not found |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/archives/my_archive'
DELETE /v1/{tenant}/archives/{id}
Delete an archive
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Archive id to delete |
Response
Status
| Status Code |
Reason |
| 200 |
Successful download |
| 404 |
Archive not found |
Example request
curl --location --request DELETE 'http://localhost:4242/v1/mytenant/archives/my_archive'
GET /v1/{tenant}/channels
Get all tenant channels status
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Body
| Field |
Description |
| children |
Array of valid channels |
| children[].name |
Name of the channel |
| children[].status |
Status of the channel |
| errors |
Array of invalid channels |
| errors[].name |
Name of the channel |
| errors[].status |
Status of the channel |
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/channels'
Example response
{
"children": [
{
"name": "logstash",
"status": "STOPPED"
},
{
"name": "admin",
"status": "STOPPED"
},
{
"name": "apache_httpd",
"status": "STOPPED"
}
],
"errors": []
}
GET /v1/{tenant}/channels/{channel}
Get status of a specific channel
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| channel |
Channel name |
Response
Body
| Field |
Description |
| status |
Channel status |
| jobs |
List of jobs of the channel |
| jobs[].cluster |
Job cluster name |
| jobs[].name |
Job name |
| jobs[].runtimeId |
Job related path |
| jobs[].status |
Job status |
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 404 |
Channel not found |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/channels/admin'
Example response
{
"status": "ACTIVE",
"jobs": [
{
"cluster": "common",
"name": "admin/common/elasticsearch-housekeeping",
"runtimeId": "punchplatform/mytenant/channels/admin/elasticsearch-housekeeping",
"status": "ACTIVE"
},
{
"cluster": "common",
"name": "admin/common/archives-housekeeping",
"runtimeId": "punchplatform/mytenant/channels/admin/archives-housekeeping",
"status": "ACTIVE"
},
{
"cluster": "common",
"name": "admin/common/channels-monitoring",
"runtimeId": "punchplatform/mytenant/channels/admin/channels-monitoring",
"status": "ACTIVE"
}
]
}
POST /v1/{tenant}/channels/{channel}/{action}
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| channel |
Channel name |
| action |
Action to operate on the channel ("start" or "stop") |
Response
Status
| Status Code |
Reason |
| 201 |
Successful action |
| 404 |
Channel doesn't exist |
Example request
curl --location --request POST 'http://localhost:4242/v1/mytenant/channels/admin/start'
GET /v1/{tenant}/conf
List all tenant related files and directories in configuration folder
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Body
| Field |
Description |
| PATH.parent |
Parent folder name |
| PATH.path |
Relative path |
| PATH.size |
Folder/File size |
| PATH.isFile |
true if PATH is a file, else false |
| PATH.canRead |
Able to read file/folder content |
| PATH.children |
Map of subfile / subfolder content |
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/conf'
Example response
{
"tenants": {
"parent": "/conf",
"path": "/tenants",
"size": 4096,
"isFile": false,
"canRead": true,
"children": {
"mytenant": {
"parent": "/conf/tenants",
"path": "/tenants/mytenant",
"size": 4096,
"isFile": false,
"canRead": true,
"children": {
"test_file": {
"parent": "/conf/tenants/mytenant",
"path": "/tenants/mytenant/test_file",
"size": 162,
"isFile": true,
"canRead": true,
"children": {}
}
}
}
}
}
}
GET /v1/{tenant}/conf/{path}
Get a file from configuration folder
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| path |
Path to file |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 400 |
"path" given is a directory |
| 404 |
File not found |
Example request
curl --location --request GET \
'http://localhost:4242/v1/mytenant/conf/tenants/mytenant/test_file'
Create extraction
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Body
| Field |
Description |
| description |
Extraction description |
| format |
Extraction format ("csv", "json") |
| index |
Elasticsearch index |
| fields |
List of fields to extract |
| fields[].name |
Field name |
| fields[].type |
Field type |
| filters |
Elastic filters to apply |
| tenant |
Tenant name |
| ### Response |
|
| #### Status |
|
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request POST 'http://localhost:4242/v1/mytenant/extraction' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--header 'Content-Type: application/json' \
--data-raw \
'{
"description": "log-extraction",
"format": "csv",
"index": "platform-logs-*",
"fields": [
{
"name": "@timestamp",
"type": "date"
},
{
"name": "content.message",
"type": "string"
}
],
"filters": {},
"tenant": "mytenant"
}'
GET /v1/{tenant}/punchline
List punchlines saved.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Body
| Field |
Description |
| [].id |
Punchline ID |
| [].punchline |
Punchline file content |
| [].version |
Punchline version |
| [].platformId |
Punchline platform ID |
| [].@timestamp |
Punchline save timestamp |
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline'
Example response
[
{
"id": "BtDHgnEByFYZVYsBXB30",
"punchline": {
"runtime_id": "BtDHgnEByFYZVYsBXB30",
"metrics": {
"reporters": [
{
"http_hosts": [
{
"port": 9200,
"host": "localhost"
}
],
"type": "elasticsearch",
"index_name": "mytenant-metrics"
}
]
},
"job": [
{
"settings": {
"input_data": [
{
"name": "phil",
"musician": false,
"age": 21,
"friends": [
"alice"
]
},
{
"name": "alice",
"musician": true,
"age": 23,
"friends": [
"dimi"
]
},
{
"name": "dimi",
"musician": true,
"age": 53,
"friends": [
"phil",
"alice"
]
}
]
},
"component": "input",
"publish": [
{
"stream": "data"
}
],
"description": "The batch_input node simply generates some data.\nYou simply write your data inline, it convert it as Dataset<Row>",
"type": "dataset_generator"
},
{
"settings": {
"truncate": false
},
"component": "show",
"subscribe": [
{
"component": "input",
"stream": "data"
}
],
"type": "show"
}
],
"type": "spark",
"tenant": "mytenant"
},
"version": -1,
"platformId": "my-unique-platform-id",
"@timestamp": "2020-04-12T11:37:15.766Z"
}
]
GET /v1/{tenant}/punchline/executions
Get all tenant related punchlines executions.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Body
| Field |
Description |
| id |
Execution ID |
| timestamp |
Last event timestamp |
| duration |
Execution duration |
| tenant |
Tenant name |
| event |
Execution last event |
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET \
'http://localhost:4242/v1/mytenant/punchline/executions'
Example response
[
{
"id": "wc2Yh3EBnOslsCeb6UAg-1587117889508",
"timestamp": "2020-04-17T10:04:55.320Z",
"duration": 229,
"tenant": "mytenant",
"event": "spark.application.start"
}
]
GET /v1/{tenant}/punchline/executions/{id}/events
List all events of a specific execution.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Execution ID |
Response
Body
| Field |
Description |
| [].timestamp |
Event timestamp |
| [].tenant |
Tenant name |
| [].event |
Execution event |
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 404 |
Execution not found |
Example request
curl --location --request GET \
'http://localhost:4242/v1/mytenant/punchline/executions/wc2Yh3EBnOslsCeb6UAg-1587117889508/events'
Example response
[
{
"timestamp": "2020-04-17T10:04:58.247Z",
"tenant": "mytenant",
"event": "spark.application.end"
},
{
"timestamp": "2020-04-17T10:04:58.241Z",
"tenant": "mytenant",
"event": "spark.application.end"
},
{
"timestamp": "2020-04-17T10:04:58.217Z",
"tenant": "mytenant",
"event": "spark.application.end"
},
...
]
GET /v1/{tenant}/punchline/executions/{id}/output
Get output of a specific execution.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Execution ID |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 404 |
Execution not found |
Example request
curl --location --request GET \
'http://localhost:4242/v1/mytenant/punchline/executions/wc2Yh3EBnOslsCeb6UAg-1587117889508/output'
GET /v1/{tenant}/punchline/executions/{id}
Get executions for a specific punchline.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Punchline ID |
Response
Body
| Field |
Description |
| [].id |
Execution ID |
| [].timestamp |
Last event timestamp |
| [].duration |
Execution duration |
| [].tenant |
Tenant name |
| [].event |
Execution last event |
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 404 |
Punchline not found |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline/executions/wc2Yh3EBnOslsCeb6UAg'
Example Response
[
{
"id": "wc2Yh3EBnOslsCeb6UAg-1587117889508",
"timestamp": "2020-04-17T10:04:58.247Z",
"duration": 3156,
"tenant": "mytenant",
"event": "spark.application.end"
}
]
POST /v1/{tenant}/punchline/save
Save a punchline
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| Field |
Description |
| file |
Punchline file |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request POST 'http://localhost:4242/v1/mytenant/punchline/save' \
--form 'file=@/data/punchlines/dataset_generator.pml'
GET /v1/{tenant}/punchline/scan/analytics
Get all nodes available for Spark punchline.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline/scan/analytics'
GET /v1/{tenant}/punchline/scan/pyspark
Get all nodes available for Pyspark punchline.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline/scan/pyspark'
GET /v1/{tenant}/punchline/scan/storm
Get all nodes available for Storm punchline.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline/scan/storm'
DELETE /v1/{tenant}/punchline/scan/reset
Force the reset of the scanner cache
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Response
Status
| Status Code |
Reason |
| 200 |
successful operation |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline/scan'
GET /v1/{tenant}/punchline/{id}
Get punchline.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Punchline id |
Response
Body
| Field |
Description |
| index |
Elasticsearch index where punchline is stored |
| id |
Punchline id |
| source |
Punchline file content |
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 404 |
Punchline not found |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/punchline/wc2Yh3EBnOslsCeb6UAg'
Example response
{
"index": "mytenant-applications",
"id": "wc2Yh3EBnOslsCeb6UAg",
"source": {
"@timestamp": "2020-04-17T10:04:37.537Z",
"platform_id": "my-unique-platform-id",
"dag": "{\"runtime_id\":\"wc2Yh3EBnOslsCeb6UAg\",\"metrics\":{\"reporters\":[{\"http_hosts\":[{\"port\":9200,\"host\":\"localhost\"}],\"type\":\"elasticsearch\",\"index_name\":\"mytenant-metrics\"}]},\"job\":[{\"settings\":{\"input_data\":[{\"name\":\"phil\",\"musician\":false,\"age\":21,\"friends\":[\"alice\"]},{\"name\":\"alice\",\"musician\":true,\"age\":23,\"friends\":[\"dimi\"]},{\"name\":\"dimi\",\"musician\":true,\"age\":53,\"friends\":[\"phil\",\"alice\"]}]},\"component\":\"input\",\"publish\":[{\"stream\":\"data\"}],\"description\":\"The batch_input node simply generates some data.\\nYou simply write your data inline, it convert it as Dataset<Row>\",\"type\":\"dataset_generator\"},{\"settings\":{\"truncate\":false},\"component\":\"show\",\"subscribe\":[{\"component\":\"input\",\"stream\":\"data\"}],\"type\":\"show\"}],\"type\":\"spark\",\"tenant\":\"mytenant\"}",
"tenant": "mytenant"
}
}
POST /v1/{tenant}/punchline/{id}
Execute a saved punchline
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Punchline id |
Response
Body
| Field |
Description |
| id |
Execution generated id |
Status
| Status Code |
Reason |
| 200 |
successful operation |
| 404 |
Punchline not found |
Example request
curl --location --request POST 'http://localhost:4242/v1/mytenant/punchline/wc2Yh3EBnOslsCeb6UAg'
Example response
{
"id": "wc2Yh3EBnOslsCeb6UAg-1587117889508"
}
DELETE /v1/{tenant}/punchline/{id}
Delete a saved punchline.
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| id |
Punchline id |
Response
Status
| Status Code |
Reason |
| 201 |
successful operation |
| 404 |
Punchline not found |
Example request
curl --location --request DELETE 'http://localhost:4242/v1/mytenant/punchline/wc2Yh3EBnOslsCeb6UAg'
GET /v1/{tenant}/resources/list
List resources
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
Parameters
| Field |
Description |
| all |
true or false. If false, list the last version of each resource. If true, list all resources versions. Default is false |
| pattern |
Exact resource name, or a name pattern with wildcard |
| simplify |
true or false. If true, the list contains only the name, the version and the timestamp of each resource. Default is false |
| filter |
key=value filter on resource properties. Can be repeated for multiple filters |
Response
Body
| Field |
Description |
| metadata |
List of resources metadata |
| name |
Name pattern requested |
| message |
Response description |
| tenant |
The tenant of the resource manager |
Status
| Status Code |
Reason |
| 200 |
Resourcce listed |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/resources/list?all=true&pattern=tests/*&simplify=true&filter=test=true&filter=description=hello'
Example response
{
"metadata": [
{
"schema": "V1",
"@timestamp": "2020-07-06T13:33:10.487Z",
"size": 4806,
"name": "tests/test.jpg",
"storage": {
"type": "file",
"url": "/tmp/punchplatform/manager/resources/mytenant/tests/0/test.jpg"
},
"version": 0,
"tenant": "mytenant",
"properties": {}
},
{
"schema": "V1",
"@timestamp": "2020-07-06T13:42:19.402Z",
"size": 4806,
"name": "tests/test.jpg",
"storage": {
"type": "file",
"url": "/tmp/punchplatform/manager/resources/mytenant/tests/1/test.jpg"
},
"version": 1,
"tenant": "mytenant",
"properties": {}
}
],
"name": "tests/*",
"message": "List resources",
"tenant": "mytenant"
}
PUT /v1/{tenant}/resources/upload/{name}
Upload a resource
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| name |
Future name of the resource inside the data storage |
| Field |
Description |
| input |
Input file to upload |
| properties |
key=value custom resource property. Can be repeated for multiple resources |
| version |
Force a version to upload. If not provided, automatically detect the last version to upload |
| embedded |
true or false. If true, embed the resource data content inside the metadata |
Response
Body
| Field |
Description |
| metadata |
Uploaded resource details |
| name |
Name inside the data storage |
| message |
Response description |
| tenant |
The tenant of the resource manager |
Status
| Status Code |
Reason |
| 201 |
Resource uploaded and metadata successfully stored |
| 504 |
Data storage or metadata storage cannot be reached |
Example request
curl --location --request PUT 'http://localhost:4242/v1/mytenant/resources/upload/tests/test.jpg' \
--form 'input=@/home/lca/Pictures/kerbal_wall_1.jpeg' \
--form 'properties={"description":"hello world, and aliens","test":true}' \
--form 'version=42'
Example response
{
"metadata": [
{
"schema": "V1",
"@timestamp": "2020-07-06T14:37:55.855Z",
"size": 4806,
"name": "tests/test.jpg",
"storage": {
"type": "file",
"url": "/tmp/punchplatform/manager/resources/mytenant/tests/42/test.jpg"
},
"version": 42,
"tenant": "mytenant",
"properties": {
"test": true,
"description": "hello world, and aliens"
}
}
],
"name": "tests/test.jpg",
"message": "Upload resources",
"tenant": "mytenant"
}
GET /v1/{tenant}/resources/download/{name}
Download a resource
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| name |
Name of the resource inside the data storage |
Parameters
| Field |
Description |
| output |
If provided, also write the resource content into this output file path |
| version |
Specific version to download. If not provided, download the last version of the resource (equals to the highest version number) |
Response
Status
| Status Code |
Reason |
| 200 |
Resource downloaded |
| 404 |
Resource not found |
Example request
curl --location --request GET 'http://localhost:4242/v1/mytenant/resources/download/tests/test.jpg?output=/tmp/output.jpg&version=3'
Example response
Response is the resource data content
DELETE /v1/{tenant}/resources/delete/{name}
Delete a resource
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| name |
Name of the resource inside the data storage |
Parameters
| Field |
Description |
| version |
If provided, only delete this version |
| recursive |
true or false. If true, the name of the resource can be a incomplete path. All sub-resources will be deleted inside this path. Default is false |
Response
Body
| Field |
Description |
| delete |
Deleted resources details |
| name |
Name inside the data storage |
| message |
Response description |
| tenant |
The tenant of the resource manager |
Status
| Status Code |
Reason |
| 200 |
Resource deleted |
| 404 |
Resource not found |
Example request
curl --location --request DELETE 'http://localhost:4242/v1/mytenant/resources/delete/tests/test.jpg?version=42'
Example response
{
"name": "tests/test.jpg",
"message": "Delete resources",
"delete": [
{
"@timestamp": "2020-07-03T15:47:08.140Z",
"name": "tests/test.jpg",
"version": 0
}
],
"tenant": "mytenant"
}
PUT /v1/{tenant}/resources/copy/{name}
Copy a resource
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| name |
Name of the resource inside the data storage |
| Field |
Description |
| destination |
Copy location of the resource inside the data storage |
| version |
If provided, only copy this version |
| embedded |
true or false. If true, embed the resource data content inside the metadata |
Response
Body
| Field |
Description |
| metadata |
Copied resources details |
| name |
Name inside the data storage |
| message |
Response description |
| tenant |
The tenant of the resource manager |
Status
| Status Code |
Reason |
| 201 |
Resource copied |
| 404 |
Original resource not found |
| 504 |
Data storage or metadata storage cannot be reached |
Example request
curl --location --request PUT 'http://localhost:4242/v1/mytenant/resources/copy/tests/test.jpg' \
--form 'destination=copies/test.jpg' \
--form 'version=1'
Example response
{
"metadata": [
{
"schema": "V1",
"@timestamp": "2020-07-06T14:07:21.288Z",
"size": 4806,
"name": "copies/test.jpg",
"storage": {
"type": "file",
"url": "/tmp/punchplatform/manager/resources/mytenant/copies/0/test.jpg"
},
"version": 0,
"tenant": "mytenant",
"properties": {}
}
],
"name": "tests/test.jpg",
"message": "Copy resources",
"tenant": "mytenant"
}
PUT /v1/{tenant}/resources/move/{name}
Copy a resource
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| name |
Name of the resource inside the data storage |
| Field |
Description |
| destination |
New location of the resource inside the data storage |
| version |
If provided, only move this version |
| embedded |
true or false. If true, embed the resource data content inside the metadata |
Response
Body
| Field |
Description |
| metadata |
Moved resources details |
| name |
Name inside the data storage |
| message |
Response description |
| tenant |
The tenant of the resource manager |
Status
| Status Code |
Reason |
| 201 |
Resource copied |
| 404 |
Resource not found |
| 504 |
Data storage or metadata storage cannot be reached |
Example request
curl --location --request PUT 'http://localhost:4242/v1/mytenant/resources/move/tests/test.jpg' \
--form 'destination=moves/test.jpg' \
--form 'version=1'
Example response
{
"metadata": [
{
"schema": "V1",
"@timestamp": "2020-07-06T14:16:59.678Z",
"size": 4806,
"name": "moves/test.jpg",
"storage": {
"type": "file",
"url": "/tmp/punchplatform/manager/resources/mytenant/moves/0/test.jpg"
},
"version": 0,
"tenant": "mytenant",
"properties": {}
}
],
"name": "tests/test.jpg",
"message": "Move resources",
"tenant": "mytenant"
}
PUT /v1/{tenant}/resources/register/{name}
Register the metadata of an existing resource
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| name |
Name of the resource inside the data storage |
| Field |
Description |
| version |
Version of the resource to register |
| url |
Exact location of the resource inside the data storage |
| size |
Size of the resource to register |
| properties |
Custom properties of the resource to register |
| compression |
Compression type of the resource, if needed |
| encoding |
Encoding type of the data content |
Response
Body
| Field |
Description |
| metadata |
Registered resource details |
| name |
Name inside the data storage |
| message |
Response description |
| tenant |
The tenant of the resource manager |
Status
| Status Code |
Reason |
| 200 |
Resource registered |
| 404 |
Resource not found |
| 422 |
If the resource version already exists |
Example request
curl --location --request PUT 'http://localhost:4242/v1/mytenant/resources/register/tests/test.jpg' \
--form 'version=3' \
--form 'url=/tmp/punchplatform/manager/resources/mytenant/tests/0/test.jpg' \
--form 'properties={"description":"hello world, and aliens","test":true}' \
--form 'size=42' \
--form 'compression=gzip' \
--form 'encoding=UTF8'
Example response
{
"metadata": [
{
"schema": "V1",
"@timestamp": "2020-07-06T14:21:58.716Z",
"size": 3,
"name": "tests/test.jpg",
"storage": {
"type": "file",
"encoding": "UTF8",
"compression": "gzip",
"url": "/tmp/punchplatform/manager/resources/mytenant/tests/0/nomods.png"
},
"version": 3,
"tenant": "mytenant",
"properties": {
"test": true,
"description": "hello world, and aliens"
}
}
],
"name": "tests/test.jpg",
"message": "Register resource",
"tenant": "mytenant"
}
GET /v1/{tenant}/documentation/{page}
Display the documentation page content
Request
Path variables
| Field |
Description |
| tenant |
Tenant name |
| page |
Path of the documentation page |
Response
Status
| Status Code |
Reason |
| 200 |
Page content |
| 404 |
Page not found |
Example request
curl --location --request GET 'http://localhost:4242/v1/documentation/index.html'