Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
titlePOST
linenumberstrue
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
languagebash
titleGET, DELETE
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titleGET, DELETE
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titleGET, DELETE
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titleGET, DELETE
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titleGET, DELETE
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOSTGet, Delete
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOSTGet, Delete
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOSTGet, Delete
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titleGet, Delete
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titleGet, Delete
linenumberstrue
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

...

204

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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOSTGet, Delete
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOSTGet, Delete
linenumberstrue
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
languagejs
titlePOST
linenumberstrue
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
languagejs
titlePOSTGet, Delete
linenumberstrue
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

...