...
Code Block |
---|
language | js |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/rb/{rb-name}/{rb-version}
RETURN STATUS: 200
RETURN BODY:
{
"rb-name": "test-rbdef",
"rb-version": "v1",
"description": "testing resource bundle definition api"
}
DELETE
URL: /v2/project/{project-name}/rb/{rb-name}/{rb-version}
RETURN STATUS: 204 |
Profile API
The Profile API is now keyed off the new rb API based on projects
Profile names are unique within a resource bundle and version.
Changes with respect to V1 API:
- rb-name, rb-version is removed as it is part of the path
- release-name is removed as profile-name will be used
- kubernetes-version is removed as that is no longer in the scope of the profile
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/project/{project-name}/rb/{rb-name}/{rb-version}/profile
POST BODY:
{
"profile-name": "test-rbdef",
"namespace": "onap", //Kubernetes namespace to install the charts in
"description": "testing resource bundle definition api",
}
RETURN STATUS: 201
RETURN BODY:
{
"rb-name": "test-rbdef",
"rb-version": "v1",
"profile-name": "test-rbdef",
"namespace": "v1",
"description": "testing resource bundle definition api"
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/rb/{rb-name}/{rb-version}/profile/{profile-name}
RETURN STATUS: 200
RETURN BODY:
{
"rb-name": "test-rbdef",
"rb-version": "v1",
"profile-name": "test-rbdef",
"namespace": "v1",
"description": "testing resource bundle definition api"
}
DELETE
URL: /v2/project/{project-name}/rb/{rb-name}/{rb-version}/profile/{profile-name}
RETURN STATUS: 204 |
...
There is a main Intent API that allows you to create a Parent Intent and any SUB Intents are forwarded to their respective handlers.
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/project/{project-name}/rb/{rb-name}/{version}/intent
POST BODY:
{
"intent-name": "test-rbdef",
"description": "testing resource bundle definition api"
}
RETURN STATUS: 201
RETURN BODY:
{
"intent-name": "test-rbdef",
"description": "testing resource bundle definition api"
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/rb/{rb-name}/{version}/intent/{intent-name}
RETURN STATUS: 200
RETURN BODY:
{
"intent-name": "test-rbdef",
"description": "testing resource bundle definition api"
}
DELETE
URL: /v2/project/{project-name}/rb/{rb-name}/{version}/intent/{intent-name}
RETURN STATUS: 204
|
...
Sub Intents are handled by Adapters that are installed in k8splugin.
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/project/{project-name}/rb/{rb-name}/{version}/intent/{intent-name}/{sub-intent}/...The remaining URL is forwarded to the POST Handler of the Sub Intent AdapterPOST BODY:
{
// Defined by the sub intent and forwarded to and handled by it
}
RETURN STATUS: 201
RETURN BODY:
{
// Defined by the sub intent and handled by it
} |
...
Code Block |
---|
language | c# |
---|
title | Code Fragment |
---|
linenumbers | true |
---|
|
router.HandleFunc("/{pr-name}/rb/{rb-name}/{rb-version}/intent/{intent-name}/{sub-intent-name}", adapterMgr.GetAdapter(sub-intent-name).HandlePost).Methods("POST")
router.HandleFunc(`/{pr-name}/rb/{rb-name}/{rb-version}/intent/{intent-name}/{sub-intent-name}/{rest:[a-zA-Z0-9=\-\/]+}`, adapterMgr.GetAdapter(sub-intent-name).HandlePost).Methods("POST")
//HandlePost will then figure out if it needs the “rest” or just r.body is enough.
//json.Unmarshal will happen in the HandlePost preventing any map[string]interface{} casts.
|
GET, DELETE
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/rb/{rb-name}/{version}/intent/{intent-name}/{sub-intent}/...
RETURN STATUS: 200
RETURN BODY:
{
// Defined by the sub intent and handled by it
}
DELETE
URL: /v2/project/{project-name}/rb/{rb-name}/{version}/intent/{intent-name}/{sub-intent}
RETURN STATUS: 204 |
...