...
Code Block |
---|
language | bash |
---|
title | POST |
---|
linenumbers | true |
---|
|
POST
URL: /v2/projects
POST BODY:
{
"metadata": {
"name": "Name of Project<name>", //must be unique
"description": "<description>"
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
"name": "nameName of the project"
} Project", //must be unique
"description": "<description>"
}
} |
GET, DELETE
Code Block |
---|
language | bash |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata": {
"name": "Name of Project", //must be unique
"description": "<description>"
}
}
DELETE
URL: /v2/projects/{project-name}
RETURN STATUS: 204 |
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps
POST BODY:
{
"namemetadata": "{
"name": "<name>", //must be unique
"description": "<description>"
},
"version": "<version of the composite app>"
}
RETURN STATUS: 201
RETURN BODY: { "metadata": {
"name": "<name>",
//must be unique
"description": "<description>"
},
"version": "<version of the composite app>"} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}
RETURN STATUS: 200
RETURN BODY:
{
"namemetadata": "<name>",{
"description": "<description>"
"versionname": "<name>", //must be unique
"description": "<description>"
},
"version": "<version of the composite app>"
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}
RETURN STATUS: 204 |
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/apps
POST BODY:
{
"metadata": {
"app-name": "<name>", // Name of the application
"description": "<description>"
}
}
RETURN STATUS: 201
RETURN BODY: { "name": "<name>",
"description": "<description>"} |
...
Code Block |
---|
language | js |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/apps/{app-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata": {
"app-name": "<name>",
// Name of the application
"description": "<description>"
}
}
Multipart response containing the tar.gz of the Helm chart for the app
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/apps/{app-name}
RETURN STATUS: 204 |
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{verison}/composite-profiles
POST BODY:
{
"metadata": {
"composite-profile-name": "test",
"description": "<description>",
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
"composite-profile-name": "test",
"description": "<description>",
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/composite-profiles/{composite-profile-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata": {
"composite-profile-name": "test",
"description": "<description>",
}
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{app-name}/{app-version}/composite-profiles/{composite-profile-name}
RETURN STATUS: 204 |
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{verison}/composite-profiles/{composite-profile-name}/profiles
POST BODY:
{
"profile-namemetadata": "test",
{
"appprofile-name": "<name>test", //
Must match the name given in composite-apps/apps API "description": "<description>"
},
"descriptionapp-name": "<description>"<name>", // Must match the name given in composite-apps/apps API
}
Multipart request containg tar.gz of the profile
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
"profile-name": "test",
"app-namedescription": "<name>"<description>"
},
"descriptionapp-name": "<description><name>"
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | GET, DELETE |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/composite-profiles/{composite-profile-name}/profiles/{profile-name}
RETURN STATUS: 200
RETURN BODY:
{
"profile-namemetadata": "test",
{
"appprofile-name": "<name>test",
"description": "testing resource bundle definition api<description>"
},
"app-name": "<name>"
}
Multipart response containing the tar.gz of the profile
DELETE
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/composite-profiles/{composite-profile-name}/profiles/{profile-name}
RETURN STATUS: 204 |
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intents
POST BODY:
{
"metadata": {
"generic-placement-intent-name": "intent-1test",
"description": "<description>"
},
"logical-cloud": "logical-cloud-name" //name of logical cloud to use for instantiation. The DCM API will provide the list of clusters that are part of the logical-cloud
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
"generic-placement-intent-name": "intent-1test",
"description": "<description>"
},
"logical-cloud": "logical-cloud-name" //name of logical cloud to use for instantiation. The DCM API will provide the list of clusters that are part of the logical-cloud
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | POSTGet, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intents/{intent-name}
RETURN STATUS: 200
RETURN BODY:
{
"intent-namemetadata":"intent-1", {
"description": "<description>" "generic-placement-intent-name": "test",
"description": "<description>"
},
"logical-cloud": "logical-cloud-name" //name of logical cloud to use for instantiation. The DCM API will provide the list of clusters that are part of the logical-cloud
}
DELETE
URL: /v2/project/{project-name}/rb/{rb-name}/{rb-version}/generic-placement-intent/{intent-name}
RETURN STATUS: 204
|
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents
POST BODY:
{
"app-namemetadata": {
"intent-name": "test",
"description": "<description>"
},
"app-name":"name",
"intent":
{
"allOf":[
{
"cluster-name":"edge1"
},
{
"cluster-name":"edge2"
},
{
"anyOf":[
{
"cluster-label-name":"east-us1"
},
{
"cluster-label-name":"east-us2"
}
]
}
]
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
"appintent-name": "nametest",
"description": "<description>"
},
"app-name": "name",
"intent":
{
"allOf":[
{
"cluster-name":"edge1"
},
{
"cluster-name":"edge2"
},
{
"anyOf":[
{
"cluster-label-name":"east-us1"
},
{
"cluster-label-name":"east-us2"
}
]
}
]
}
} |
...
Code Block |
---|
language | js |
---|
title | POSTGet, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents
RETURN STATUS: 200
RETURN BODY:
{
"applications":[
{
"name":"app1",
"anyOf":[
{
"cluster-name":"edge1"
},
{
"cluster-name":"edge2"
}
]
},
{
"name":"app2",
"allOf":[
{
"cluster-name":"edge1"
},
{
"cluster-name":"edge2"
}
]
},
{
"name":"app3",
"allOf":[
{
"cluster-name":"edge1"
},
{
"cluster-name":"edge2"
},
{
"anyOf":[
{
"cluster-label-name":"east-us1"
},
{
"cluster-label-name":"east-us2"
}
]
}
]
}
]
}
GET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents/{appsintent-name}
RETURN STATUS: 200
RETURN BODY:
{
"appmetadata": {
"intent-name": "nametest",
"description": "<description>"
},
"app-name": "name",
"intent":
{
"allOf":[
{
"cluster-name":"edge1"
},
{
"cluster-name":"edge2"
},
{
"anyOf":[
{
"cluster-label-name":"east-us1"
},
{
"cluster-label-name":"east-us2"
}
]
}
]
}
}
DELETE
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/apps-intents/{appsintent-name}
RETURN STATUS: 204
|
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups
POST BODY:
{
"metadata": {
"deployment-intent-group-name": "test",
"description": "<intent-group-name>"<description>"
},
"profile": "<profile-name>",
"version": "<version of the deployment>"
"description": "<description>",
//override//override-values overrides values from the helm charts and allows for instantiation time
//variable overrides.
"override-values": [
{"app-name":[{"imageRepository":"registry.hub.docker.com"}]},
{"app-name":[{"imageRepository":"registry.hub.docker.com"}]}
]
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
"deployment-intent-group-name": "<intent-group-name>test",
"description": "<description>"
} |
...
...
"profile": "<profile-name>",
"version": "<version of the deployment>"
//override-values overrides values from the helm charts and allows for instantiation time
//variable overrides.
"override-values": [
{"app-name":[{"imageRepository":"registry.hub.docker.com"}]},
{"app-name":[{"imageRepository":"registry.hub.docker.com"}]}
]
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}
RETURN STATUS: 200
RETURN BODY:
{
"deployment-intent-group-name":"<intent-group-name>",
"profile": "<profile-name>",
"version": "<version of the deployment>"
"description": "<description>"
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}
RETURN STATUS: 204
|
Adding intents to an Intent group
...
Code Block |
---|
language | js |
---|
title | POSTGet, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents
POST
RETURN STATUS: 200
RETURN BODY:
{
"intent-namemetadata":"<name>", {
"description" "deployment-intent-group-name": "<description>"
"intent":
{
test",
"genericdescription":"xyz-generic-placement-intent "<description>"
}
}
RETURN STATUS: 201
RETURN BODY:
{
"intent-name},
"profile": "intent<profile-group-1name>",
"descriptionversion": "Intent<version Groupof forthe Customer1deployment>"
"intent":
{
"generic":"xyz-generic-placement-intent"//override-values overrides values from the helm charts and allows for instantiation time
//variable overrides.
"override-values": [
{"app-name":[{"imageRepository":"registry.hub.docker.com"}]},
}
} |
...
{"app-name":[{"imageRepository":"registry.hub.docker.com"}]}
]
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}
RETURN STATUS: 204
|
Adding intents to an Intent group
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents/{intent-name}
{
"intent
POST BODY:
{
"metadata": {
"intent-name": "intent-group-1test",
"description": "<description>"Intent
Group for Customer1"},
"intent":
{
"generic":"xyz-generic-placement-intent"
}
}
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents
RETURN STATUS: 200201
RETURN BODY:
{
"intentmetadata":[
{
"genericintent-placement-intentname":"generic-placement-intent-name"
},
{ "test",
"hpa-placement-intent"description":"hpa-placement-intent-name "<description>"
},
},"intent":
{
"traffic-intentgeneric":"trafficxyz-generic-placement-intent-name"
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
]
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents/{intent-name}
{
RETURN STATUS"metadata": 204
|
Instantiation, Destroy, Status API
Instantiation API to instantiate composite app based on intent-group. Destroy API deletes the app and Status API returns the resources
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{
"intent-name": "test",
"description": "<description>"
},
"intent":
{
"generic":"xyz-generic-placement-intent"
}
}
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/initantiateintents
POSTRETURN BODYSTATUS: 200
RETURN BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/status
POST BODY:
RETURN STATUS: 201
RETURN BODY:
{
"name": "<name>",
"composite-app-name": "test-rbdef",
"composite-app-version": "v1",
"profile-name": "test-rbdef",
"intent-group": "intent-group-1"
"namespace": "testinstallns",
"resources": [
{
"GVK": {
"Group": "",
"Version": "v1",
"Kind": "Service"
},
"cluster-name": "cluster1",
"Name": "mongo",
"status": "Running"
},
{
"GVK": {
"Group": "",
"intent":[
{
"generic-placement-intent":"generic-placement-intent-name"
},
{
"hpa-placement-intent":"hpa-placement-intent-name"
},
{
"traffic-intent":"traffic-intent-name"
}
]
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents/{intent-name}
RETURN STATUS: 204
|
Instantiation, Destroy, Status API
Instantiation API to instantiate composite app based on intent-group. Destroy API deletes the app and Status API returns the resources
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/initantiate
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/status
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
"name": "<name>",
"composite-app-name": "test-rbdef",
"composite-app-version": "v1",
"profile-name": "test-rbdef",
"intent-group": "intent-group-1"
"namespace": "testinstallns",
"resources": [
{
"GVK": {
"Group": "",
"Version": "v1",
"Kind": "Service"
},
"cluster-name": "cluster1",
"Name": "mongo",
"status": "Running"
},
{
"GVK": {
"Group": "",
"Version": "v1",
"Kind": "Service"
},
"cluster-name": "cluster2",
"Name": "mongo-read",
"status": "Terminated"
}
]
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/destroy
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
} |
Cluster Registration API
API to support Reachability for a Kubernetes Cloud. This API will be used to upload configuration information for the cluster
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers
POST BODY:
{
"metadata": {
“provider-name” : “<name>”, // Must be unique
"description": <description>
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata": {
“provider-name” : “<name>”, // Must be unique
"Versiondescription": "v1",<description>
"Kind": "Service"
},
"cluster-name": "cluster2",
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata": {
“provider-name” : “<name>”, "Name": "mongo-read",
"statusdescription": "Terminated"<description>
}
]
}
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-groupcluster-providers/{provider-name}/destroy
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
} |
Cluster Registration API
API to support Reachability for a Kubernetes Cloud. This API will be used to upload configuration information for the cluster
...
POST
This POST is a multipart POST. With the POST body containing the data about the cluster and the kubeconfig uploaded in multipart form.
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers/{provider-name}/clusters
POST BODY:
{
"metadata": {
“cluster “cluster-name” : “<name>”, // Must be unique
"description": <description>
}
}
RETURN STATUS: 201
RETURN BODY:
{
“cluster-name” : “<name>”, // Must be unique
"descriptionmetadata": <description>
} |
This is a multipart upload and here is how you do the POST for this.
#Using a json file containing content as above;
...
{
“cluster-name” : “<name>”,
"description": <description>
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | POSTGet, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}
RETURN STATUS: 200
RETURN BODY:
{
“cluster-name” : “<name>”, // Must be unique across
"description": <description>
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}
RETURN STATUS: 204
|
Add Label to a cluster
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-registrationproviders/{provider-name}/clusters/{cluster-name}/labels
POST BODY:
{
“label-name” : “<label>”
}
RETURN STATUS: 201
RETURN BODY:
{
“label-name” : “<label>”
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | POSTGet, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 200
RETURN BODY:
{
“label-name” : “<label>”
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 204
|
...
Add property to a cluster without the need for change to the API.
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs
POST BODY:
{
"name: "<name>","metadata": {
“name” : “<name>”, // Must be unique
"description": "<description>"
},
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
}
RETURN STATUS: 201
RETURN BODY: 201
RETURN BODY:
{
"name: "<name>",
{
"metadata": {
“name” : “<name>”, // Must be unique
"description": "<description>"
},
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | POSTGet, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 200
RETURN BODY:
{
"metadata": {
“name” "name: "<name>",
“<name>”, // Must be unique
"description": "<description>"
},
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 204
|
...