http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.html ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.html b/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.html new file mode 100644 index 0000000..d7b2668 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.html @@ -0,0 +1,1636 @@ +<!DOCTYPE HTML> +<html> +<head><title>Kubernetes API documentation</title> + <meta http-equiv=X-UA-Compatible content="IE=edge"> + <meta http-equiv=Content-Type content="text/html; charset=utf-8"> + <meta name=generator content="https://github.com/kevinrenskers/raml2html 0.30.0"> + <link rel=stylesheet href=http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css> + <link rel=stylesheet href=http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/styles/default.min.css> + <script type=text/javascript src=http://code.jquery.com/jquery-1.11.0.min.js></script> + <script type=text/javascript src=http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js></script> + <script type=text/javascript src=http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/highlight.min.js></script> + <script type=text/javascript> + $(document).ready(function () { + $('.page-header pre code, .top-resource-description pre code').each(function (i, block) { + hljs.highlightBlock(block); + }); + + $('[data-toggle]').click(function () { + var selector = $(this).data('target') + ' pre code'; + $(selector).each(function (i, block) { + hljs.highlightBlock(block); + }); + }); + }); + </script> + <style> + .hljs { + background: transparent; + } + + .parent { + color: #999; + } + + .list-group-item > .badge { + float: none; + margin-right: 6px; + } + + .panel-title > .methods { + float: right; + } + + .badge { + border-radius: 0; + text-transform: uppercase; + width: 70px; + font-weight: normal; + color: #f3f3f6; + line-height: normal; + } + + .badge_get { + background-color: #63a8e2; + } + + .badge_post { + background-color: #6cbd7d; + } + + .badge_put { + background-color: #22bac4; + } + + .badge_delete { + background-color: #d26460; + } + + .list-group, .panel-group { + margin-bottom: 0; + } + + .panel-group .panel + .panel-white { + margin-top: 0; + } + + .panel-group .panel-white { + border-bottom: 1px solid #F5F5F5; + border-radius: 0; + } + + .panel-white:last-child { + border-bottom-color: white; + -webkit-box-shadow: none; + box-shadow: none; + } + + .panel-white .panel-heading { + background: white; + } + + .tab-pane ul { + padding-left: 2em; + } + + .tab-pane h2 { + font-size: 1.2em; + padding-bottom: 4px; + border-bottom: 1px solid #ddd; + } + + .tab-pane h3 { + font-size: 1.1em; + } + + .tab-content { + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; + border-bottom: 1px solid #ddd; + padding: 10px; + } + + #sidebar { + margin-top: 30px; + } + + .top-resource-description { + border-bottom: 1px solid #ddd; + background: #fcfcfc; + padding: 15px 15px 0 15px; + margin: -15px -15px 10px -15px; + } + + .resource-description { + border-bottom: 1px solid #fcfcfc; + background: #fcfcfc; + padding: 15px 15px 0 15px; + margin: -15px -15px 10px -15px; + } + + .panel > .panel-body > .panel-group > .panel:first-child .resource-description { + display: none; + } + + .list-group .badge { + float: left; + } + + .method_description { + margin-left: 85px; + } + + .method_description p:last-child { + margin: 0; + } + </style> +</head> +<body data-spy=scroll data-target=#sidebar> +<div class=container> + <div class=row> + <div class=col-md-9 role=main> + <div class=page-header> + <h1>Kubernetes API documentation + <small>version v1beta1</small> + </h1> + <p>http://server/api/v1beta1</p> + + <h3 id=Overview><a href=#Overview>Overview</a></h3> + + <p>The Kubernetes API currently manages 3 main resources: <code>pods</code>, <code>replicationControllers</code>, + and <code>services</code>. Pods correspond to colocated groups of <a href=http://docker.io>Docker + containers</a> with shared volumes, as supported by <a + href=https://developers.google.com/compute/docs/containers>Google Cloud Platform's container-vm + images</a>. Singleton pods can be created directly via the <code>/pods</code> endpoint. Sets of pods may + created, maintained, and scaled using replicationControllers. Services create load-balanced targets for sets + of pods.</p> + + <h3 id=Resource-identifiers><a href=#Resource-identifiers>Resource identifiers</a></h3> + + <p>Each resource has a string <code>id</code> and list of key-value <code>labels</code>. The <code>id</code> is + generated by the system and is guaranteed to be unique in space and time across all resources. + <code>labels</code> is a map of string (key) to string (value). Each resource may have at most one label with + a particular key. Individual labels are used to specify identifying metadata that can be used to define sets + of resources by specifying required labels. Examples of typical pod label keys include <code>stage</code>, + <code>service</code>, <code>name</code>, <code>tier</code>, <code>partition</code>, and <code>track</code>, + but you are free to develop your own conventions.</p> + + <h3 id=Creation-semantics><a href=#Creation-semantics>Creation semantics</a></h3> + + <p>Creation is currently not idempotent. We plan to add a modification token to each resource. A unique value + for the token should be provided by the user during creation. If the user specifies a duplicate token at + creation time, the system should return an error with a pointer to the existing resource with that token. In + this way a user can deterministically recover from a dropped connection during a resource creation + request.</p> + + <h3 id=Update-semantics><a href=#Update-semantics>Update semantics</a></h3> + + <p>Custom verbs are minimized and are used only for 'edge triggered' actions such as a reboot. Resource + descriptions are generally set up with <code>desiredState</code> for the user provided parameters and <code>currentState</code> + for the actual system state. While consistent terminology is used across these two stanzas they do not match + member for member.</p> + + <p>When a new version of a resource is PUT the <code>desiredState</code> is updated and available immediately. + Over time the system will work to bring the <code>currentState</code> into line with the + <code>desiredState</code>. The system will drive toward the most recent <code>desiredState</code> regardless + of previous versions of that stanza. In other words, if a value is changed from 2 to 5 in one PUT and then + back down to 3 in another PUT the system isn't required to 'touch base' at 5 before making 3 the + <code>currentState</code>.</p> + + <p>When doing an update, we assume that the entire <code>desiredState</code> stanza is specified. If a field is + omitted it is assumed that the user is looking to delete that field. It is viable for a user to GET the + resource, modify what they like in the <code>desiredState</code> or labels stanzas and then PUT it back. If + the <code>currentState</code> is included in the PUT it will be silently ignored.</p> + + <p>While currently unspecified, it is intended that concurrent modification should be accomplished with + optimistic locking of resources. We plan to add a modification token to each resource. If this is included + with the PUT operation the system will verify that there haven't been other successful mutations to the + resource during a read/modify/write cycle. The correct client action at this point is to GET the resource + again, apply the changes afresh and try submitting again.</p> + + <p>Note that updates currently only work for replicationControllers and services, but not for pods. Label + updates have not yet been implemented, either.</p></div> + <div class="panel panel-default"> + <div class=panel-heading><h3 id=_pods class=panel-title>/pods</h3></div> + <div class=panel-body> + <div class=panel-group> + <div class="panel panel-white"> + <div class=panel-heading><h4 class=panel-title><a class=collapsed data-toggle=collapse + href=#panel__pods><span class=parent></span>/pods</a> + <span class=methods><a href=# data-toggle=modal data-target=#_pods_get><span + class="badge badge_get">get</span></a> <a href=# data-toggle=modal data-target=#_pods_post><span + class="badge badge_post">post</span></a></span></h4></div> + <div id=panel__pods class="panel-collapse collapse"> + <div class=panel-body> + <div class=list-group><a href=# data-toggle=modal data-target=#_pods_get class=list-group-item><span + class="badge badge_get">get</span> + + <div class=method_description><p>List all pods on this cluster</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_pods_post class=list-group-item><span + class="badge badge_post">post</span> + + <div class=method_description><p>Create a new pod. currentState is ignored if present.</p></div> + <div class=clearfix></div> + </a></div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_pods_get> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_get">get</span> <span + class=parent></span>/pods</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>List all pods on this cluster</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_pods_get_request data-toggle=tab>Request</a></li> + <li><a href=#_pods_get_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_pods_get_request></div> + <div class=tab-pane id=_pods_get_response><h2>HTTP status code <a href=http://httpstatus.es/200 + target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "PodList", + "apiVersion": "v1beta1", + "items": [ + { + "id": "my-pod-1", + "labels": { + "name": "testRun", + "replicationController": "testRun" + }, + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "my-pod-1", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{ + "hostPort": 8080, + "containerPort": 80 + }] + }] + } + }, + "currentState": { + "host": "host-1" + } + }, + { + "id": "my-pod-2", + "labels": { + "name": "testRun", + "replicationController": "testRun" + }, + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "my-pod-2", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{ + "hostPort": 8080, + "containerPort": 80 + }] + }] + } + }, + "currentState": { + "host": "host-2" + } + } + ] + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_pods_post> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_post">post</span> <span + class=parent></span>/pods</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Create a new pod. currentState is ignored if present.</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_pods_post_request data-toggle=tab>Request</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_pods_post_request><h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Schema</strong>:<pre><code>{ + "$schema": "http://json-schema.org/draft-03/schema", + "type": "object", + "required": false, + "description": "Pod resource. A pod corresponds to a co-located group of [Docker + containers](http://docker.io).", + "properties": { + "kind": { + "type": "string", + "required": false + }, + "id": { + "type": "string", + "required": false + }, + "creationTimestamp": { + "type": "string", + "required": false + }, + "selfLink": { + "type": "string", + "required": false + }, + "desiredState": { + "type": "object", + "required": false, + "description": "The desired configuration of the pod", + "properties": { + "manifest": { + "type": "object", + "required": false, + "description": "Manifest describing group of [Docker containers](http://docker.io); + compatible with format used by [Google Cloud Platform's container-vm + images](https://developers.google.com/compute/docs/containers)" + }, + "status": { + "type": "string", + "required": false, + "description": "" + }, + "host": { + "type": "string", + "required": false, + "description": "" + }, + "hostIP": { + "type": "string", + "required": false, + "description": "" + }, + "info": { + "type": "object", + "required": false, + "description": "" + } + } + }, + "currentState": { + "type": "object", + "required": false, + "description": "The current configuration and status of the pod. Fields in common with + desiredState have the same meaning.", + "properties": { + "manifest": { + "type": "object", + "required": false + }, + "status": { + "type": "string", + "required": false + }, + "host": { + "type": "string", + "required": false + }, + "hostIP": { + "type": "string", + "required": false + }, + "info": { + "type": "object", + "required": false + } + } + }, + "labels": { + "type": "object", + "required": false + } + } + } + </code></pre> + </small> + </p> + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "Pod", + "apiVersion": "v1beta1", + "id": "php", + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "php", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{ + "containerPort": 80, + "hostPort": 8080 + }], + "livenessProbe": { + "enabled": true, + "type": "http", + "initialDelaySeconds": 30, + "httpGet": { + "path": "/index.html", + "port": "8080" + } + } + }] + } + }, + "labels": { + "name": "foo" + } + } + + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="panel panel-white"> + <div class=panel-heading><h4 class=panel-title><a class=collapsed data-toggle=collapse + href=#panel__pods__podId_><span + class=parent>/pods</span>/{podId}</a> <span class=methods><a href=# data-toggle=modal + data-target=#_pods__podId__get><span + class="badge badge_get">get</span></a> <a href=# data-toggle=modal data-target=#_pods__podId__put><span + class="badge badge_put">put</span></a> <a href=# data-toggle=modal + data-target=#_pods__podId__delete><span + class="badge badge_delete">delete</span></a></span></h4></div> + <div id=panel__pods__podId_ class="panel-collapse collapse"> + <div class=panel-body> + <div class=list-group><a href=# data-toggle=modal data-target=#_pods__podId__get + class=list-group-item><span class="badge badge_get">get</span> + + <div class=method_description><p>Get a specific pod</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_pods__podId__put class=list-group-item><span + class="badge badge_put">put</span> + + <div class=method_description><p>Update a pod</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_pods__podId__delete class=list-group-item><span + class="badge badge_delete">delete</span> + + <div class=method_description><p>Delete a specific pod</p></div> + <div class=clearfix></div> + </a></div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_pods__podId__get> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_get">get</span> <span class=parent>/pods</span>/{podId} + </h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Get a specific pod</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_pods__podId__get_request data-toggle=tab>Request</a></li> + <li><a href=#_pods__podId__get_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_pods__podId__get_request><h3>URI Parameters</h3> + <ul> + <li><strong>podId</strong>: <em>required (string)</em></li> + </ul> + </div> + <div class=tab-pane id=_pods__podId__get_response><h2>HTTP status code <a + href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "Pod", + "apiVersion": "v1beta1", + "id": "php", + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "php", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{ + "containerPort": 80, + "hostPort": 8080 + }], + "livenessProbe": { + "enabled": true, + "type": "http", + "initialDelaySeconds": 30, + "httpGet": { + "path": "/index.html", + "port": "8080" + } + } + }] + } + }, + "labels": { + "name": "foo" + } + } + + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_pods__podId__put> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_put">put</span> <span class=parent>/pods</span>/{podId} + </h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Update a pod</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_pods__podId__put_request data-toggle=tab>Request</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_pods__podId__put_request><h3>URI Parameters</h3> + <ul> + <li><strong>podId</strong>: <em>required (string)</em></li> + </ul> + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Schema</strong>:<pre><code>{ + "$schema": "http://json-schema.org/draft-03/schema", + "type": "object", + "required": false, + "description": "Pod resource. A pod corresponds to a co-located group of [Docker + containers](http://docker.io).", + "properties": { + "kind": { + "type": "string", + "required": false + }, + "id": { + "type": "string", + "required": false + }, + "creationTimestamp": { + "type": "string", + "required": false + }, + "selfLink": { + "type": "string", + "required": false + }, + "desiredState": { + "type": "object", + "required": false, + "description": "The desired configuration of the pod", + "properties": { + "manifest": { + "type": "object", + "required": false, + "description": "Manifest describing group of [Docker containers](http://docker.io); + compatible with format used by [Google Cloud Platform's container-vm + images](https://developers.google.com/compute/docs/containers)" + }, + "status": { + "type": "string", + "required": false, + "description": "" + }, + "host": { + "type": "string", + "required": false, + "description": "" + }, + "hostIP": { + "type": "string", + "required": false, + "description": "" + }, + "info": { + "type": "object", + "required": false, + "description": "" + } + } + }, + "currentState": { + "type": "object", + "required": false, + "description": "The current configuration and status of the pod. Fields in common with + desiredState have the same meaning.", + "properties": { + "manifest": { + "type": "object", + "required": false + }, + "status": { + "type": "string", + "required": false + }, + "host": { + "type": "string", + "required": false + }, + "hostIP": { + "type": "string", + "required": false + }, + "info": { + "type": "object", + "required": false + } + } + }, + "labels": { + "type": "object", + "required": false + } + } + } + </code></pre> + </small> + </p> + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "Pod", + "apiVersion": "v1beta1", + "id": "php", + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "php", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{ + "containerPort": 80, + "hostPort": 8080 + }], + "livenessProbe": { + "enabled": true, + "type": "http", + "initialDelaySeconds": 30, + "httpGet": { + "path": "/index.html", + "port": "8080" + } + } + }] + } + }, + "labels": { + "name": "foo" + } + } + + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_pods__podId__delete> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_delete">delete</span> <span + class=parent>/pods</span>/{podId}</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Delete a specific pod</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_pods__podId__delete_request data-toggle=tab>Request</a></li> + <li><a href=#_pods__podId__delete_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_pods__podId__delete_request><h3>URI Parameters</h3> + <ul> + <li><strong>podId</strong>: <em>required (string)</em></li> + </ul> + </div> + <div class=tab-pane id=_pods__podId__delete_response><h2>HTTP status code <a + href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "success": true + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="panel panel-default"> + <div class=panel-heading><h3 id=_replicationControllers class=panel-title>/replicationControllers</h3></div> + <div class=panel-body> + <div class=panel-group> + <div class="panel panel-white"> + <div class=panel-heading><h4 class=panel-title><a class=collapsed data-toggle=collapse + href=#panel__replicationControllers><span + class=parent></span>/replicationControllers</a> <span class=methods><a href=# data-toggle=modal + data-target=#_replicationControllers_get><span + class="badge badge_get">get</span></a> <a href=# data-toggle=modal + data-target=#_replicationControllers_post><span + class="badge badge_post">post</span></a></span></h4></div> + <div id=panel__replicationControllers class="panel-collapse collapse"> + <div class=panel-body> + <div class=list-group><a href=# data-toggle=modal data-target=#_replicationControllers_get + class=list-group-item><span class="badge badge_get">get</span> + + <div class=method_description><p>List all replicationControllers on this cluster</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_replicationControllers_post class=list-group-item><span + class="badge badge_post">post</span> + + <div class=method_description><p>Create a new controller. currentState is ignored if present.</p> + </div> + <div class=clearfix></div> + </a></div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_replicationControllers_get> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_get">get</span> <span + class=parent></span>/replicationControllers</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>List all replicationControllers on this cluster</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_replicationControllers_get_request data-toggle=tab>Request</a></li> + <li><a href=#_replicationControllers_get_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_replicationControllers_get_request></div> + <div class=tab-pane id=_replicationControllers_get_response><h2>HTTP status code <a + href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "ReplicationControllerList", + "apiVersion": "v1beta1", + "items": [ + { + "id": "testRun", + "desiredState": { + "replicas": 2, + "replicaSelector": { + "name": "testRun" + }, + "podTemplate": { + "desiredState": { + "manifest": { + "version": "v1beta1", + "image": "dockerfile/nginx", + "networkPorts": [ + { + "hostPort": 8080, + "containerPort": 80 + } + ] + } + }, + "labels": { + "name": "testRun" + } + } + }, + "labels": { + "name": "testRun" + } + } + ] + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_replicationControllers_post> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_post">post</span> <span + class=parent></span>/replicationControllers</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Create a new controller. currentState is ignored if present.</p> + </div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_replicationControllers_post_request data-toggle=tab>Request</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_replicationControllers_post_request><h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Schema</strong>:<pre><code>{ + "$schema": "http://json-schema.org/draft-03/schema", + "type": "object", + "required": false, + "description": "A replicationController resource. A replicationController helps to create + and manage a set of pods. It acts as a factory to create new pods based on a template. It + ensures that there are a specific number of pods running. If fewer pods are running than + `replicas` then the needed pods are generated using `podTemplate`. If + more pods are running than `replicas`, then excess pods are deleted.", + "properties": { + "kind": { + "type": "string", + "required": false + }, + "id": { + "type": "string", + "required": false + }, + "creationTimestamp": { + "type": "string", + "required": false + }, + "selfLink": { + "type": "string", + "required": false + }, + "desiredState": { + "type": "object", + "required": false, + "description": "The desired configuration of the replicationController", + "properties": { + "replicas": { + "type": "number", + "required": false, + "description": "Number of pods desired in the set" + }, + "replicaSelector": { + "type": "object", + "required": false, + "description": "Required labels used to identify pods in the set" + }, + "podTemplate": { + "type": "object", + "required": false, + "description": "Template from which to create new pods, as necessary. Identical to pod + schema." + } + } + }, + "labels": { + "type": "object", + "required": false + } + } + } + </code></pre> + </small> + </p> + <p> + <small><strong>Example</strong>:<pre><code> { + "id": "nginxController", + "apiVersion": "v1beta1", + "kind": "ReplicationController", + "desiredState": { + "replicas": 2, + "replicaSelector": {"name": "nginx"}, + "podTemplate": { + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "nginxController", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{"containerPort": 80, "hostPort": 8080}] + }] + } + }, + "labels": {"name": "nginx"} + }}, + "labels": {"name": "nginx"} + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="panel panel-white"> + <div class=panel-heading><h4 class=panel-title><a class=collapsed data-toggle=collapse + href=#panel__replicationControllers__controllerId_><span + class=parent>/replicationControllers</span>/{controllerId}</a> <span class=methods><a href=# + data-toggle=modal + data-target=#_replicationControllers__controllerId__get><span + class="badge badge_get">get</span></a> <a href=# data-toggle=modal + data-target=#_replicationControllers__controllerId__put><span + class="badge badge_put">put</span></a> <a href=# data-toggle=modal + data-target=#_replicationControllers__controllerId__delete><span + class="badge badge_delete">delete</span></a></span></h4></div> + <div id=panel__replicationControllers__controllerId_ class="panel-collapse collapse"> + <div class=panel-body> + <div class=list-group><a href=# data-toggle=modal + data-target=#_replicationControllers__controllerId__get + class=list-group-item><span class="badge badge_get">get</span> + + <div class=method_description><p>Get a specific controller</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_replicationControllers__controllerId__put + class=list-group-item><span class="badge badge_put">put</span> + + <div class=method_description><p>Update a controller</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_replicationControllers__controllerId__delete + class=list-group-item><span class="badge badge_delete">delete</span> + + <div class=method_description><p>Delete a specific controller</p></div> + <div class=clearfix></div> + </a></div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_replicationControllers__controllerId__get> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_get">get</span> <span class=parent>/replicationControllers</span>/{controllerId} + </h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Get a specific controller</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_replicationControllers__controllerId__get_request data-toggle=tab>Request</a> + </li> + <li><a href=#_replicationControllers__controllerId__get_response data-toggle=tab>Response</a> + </li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_replicationControllers__controllerId__get_request><h3>URI + Parameters</h3> + <ul> + <li><strong>controllerId</strong>: <em>required (string)</em></li> + </ul> + </div> + <div class=tab-pane id=_replicationControllers__controllerId__get_response><h2>HTTP status code + <a href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code> { + "id": "nginxController", + "apiVersion": "v1beta1", + "kind": "ReplicationController", + "desiredState": { + "replicas": 2, + "replicaSelector": {"name": "nginx"}, + "podTemplate": { + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "nginxController", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{"containerPort": 80, "hostPort": 8080}] + }] + } + }, + "labels": {"name": "nginx"} + }}, + "labels": {"name": "nginx"} + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_replicationControllers__controllerId__put> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_put">put</span> <span class=parent>/replicationControllers</span>/{controllerId} + </h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Update a controller</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_replicationControllers__controllerId__put_request data-toggle=tab>Request</a> + </li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_replicationControllers__controllerId__put_request><h3>URI + Parameters</h3> + <ul> + <li><strong>controllerId</strong>: <em>required (string)</em></li> + </ul> + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Schema</strong>:<pre><code>{ + "$schema": "http://json-schema.org/draft-03/schema", + "type": "object", + "required": false, + "description": "A replicationController resource. A replicationController helps to create + and manage a set of pods. It acts as a factory to create new pods based on a template. It + ensures that there are a specific number of pods running. If fewer pods are running than + `replicas` then the needed pods are generated using `podTemplate`. If + more pods are running than `replicas`, then excess pods are deleted.", + "properties": { + "kind": { + "type": "string", + "required": false + }, + "id": { + "type": "string", + "required": false + }, + "creationTimestamp": { + "type": "string", + "required": false + }, + "selfLink": { + "type": "string", + "required": false + }, + "desiredState": { + "type": "object", + "required": false, + "description": "The desired configuration of the replicationController", + "properties": { + "replicas": { + "type": "number", + "required": false, + "description": "Number of pods desired in the set" + }, + "replicaSelector": { + "type": "object", + "required": false, + "description": "Required labels used to identify pods in the set" + }, + "podTemplate": { + "type": "object", + "required": false, + "description": "Template from which to create new pods, as necessary. Identical to pod + schema." + } + } + }, + "labels": { + "type": "object", + "required": false + } + } + } + </code></pre> + </small> + </p> + <p> + <small><strong>Example</strong>:<pre><code> { + "id": "nginxController", + "apiVersion": "v1beta1", + "kind": "ReplicationController", + "desiredState": { + "replicas": 2, + "replicaSelector": {"name": "nginx"}, + "podTemplate": { + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "nginxController", + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{"containerPort": 80, "hostPort": 8080}] + }] + } + }, + "labels": {"name": "nginx"} + }}, + "labels": {"name": "nginx"} + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_replicationControllers__controllerId__delete> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_delete">delete</span> <span + class=parent>/replicationControllers</span>/{controllerId}</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Delete a specific controller</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_replicationControllers__controllerId__delete_request data-toggle=tab>Request</a> + </li> + <li><a href=#_replicationControllers__controllerId__delete_response data-toggle=tab>Response</a> + </li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_replicationControllers__controllerId__delete_request><h3>URI + Parameters</h3> + <ul> + <li><strong>controllerId</strong>: <em>required (string)</em></li> + </ul> + </div> + <div class=tab-pane id=_replicationControllers__controllerId__delete_response><h2>HTTP status + code <a href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "success": true + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="panel panel-default"> + <div class=panel-heading><h3 id=_services class=panel-title>/services</h3></div> + <div class=panel-body> + <div class=panel-group> + <div class="panel panel-white"> + <div class=panel-heading><h4 class=panel-title><a class=collapsed data-toggle=collapse + href=#panel__services><span class=parent></span>/services</a> + <span class=methods><a href=# data-toggle=modal data-target=#_services_get><span + class="badge badge_get">get</span></a> <a href=# data-toggle=modal + data-target=#_services_post><span + class="badge badge_post">post</span></a></span></h4></div> + <div id=panel__services class="panel-collapse collapse"> + <div class=panel-body> + <div class=list-group><a href=# data-toggle=modal data-target=#_services_get + class=list-group-item><span class="badge badge_get">get</span> + + <div class=method_description><p>List all services on this cluster</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_services_post class=list-group-item><span + class="badge badge_post">post</span> + + <div class=method_description><p>Create a new service</p></div> + <div class=clearfix></div> + </a></div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_services_get> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_get">get</span> <span + class=parent></span>/services</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>List all services on this cluster</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_services_get_request data-toggle=tab>Request</a></li> + <li><a href=#_services_get_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_services_get_request></div> + <div class=tab-pane id=_services_get_response><h2>HTTP status code <a + href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "ServiceList", + "apiVersion": "v1beta1", + "items": [ + { + "id": "example1", + "port": 8000, + "labels": { + "name": "nginx" + }, + "selector": { + "name": "nginx" + } + }, + { + "id": "example2", + "port": 8080, + "labels": { + "env": "prod", + "name": "jetty" + }, + "selector": { + "env": "prod", + "name": "jetty" + } + } + ] + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_services_post> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_post">post</span> <span + class=parent></span>/services</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Create a new service</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_services_post_request data-toggle=tab>Request</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_services_post_request><h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Schema</strong>:<pre><code>{ + "$schema": "http://json-schema.org/draft-03/schema", + "type": "object", + "required": false, + "description": "A service resource.", + "properties": { + "kind": { + "type": "string", + "required": false + }, + "id": { + "type": "string", + "required": false + }, + "creationTimestamp": { + "type": "string", + "required": false + }, + "selfLink": { + "type": "string", + "required": false + }, + "name": { + "type": "string", + "required": false + }, + "port": { + "type": "number", + "required": false + }, + "containerPort": { + "type": "string", + "required": false + }, + "labels": { + "type": "object", + "required": false + }, + "selector": { + "type": "object", + "required": false + } + } + } + </code></pre> + </small> + </p> + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "Service", + "apiVersion": "v1beta1", + "id": "example", + "port": 8000, + "labels": { + "name": "nginx" + }, + "selector": { + "name": "nginx" + } + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="panel panel-white"> + <div class=panel-heading><h4 class=panel-title><a class=collapsed data-toggle=collapse + href=#panel__services__serviceId_><span class=parent>/services</span>/{serviceId}</a> + <span class=methods><a href=# data-toggle=modal data-target=#_services__serviceId__get><span + class="badge badge_get">get</span></a> <a href=# data-toggle=modal + data-target=#_services__serviceId__put><span + class="badge badge_put">put</span></a> <a href=# data-toggle=modal + data-target=#_services__serviceId__delete><span + class="badge badge_delete">delete</span></a></span></h4></div> + <div id=panel__services__serviceId_ class="panel-collapse collapse"> + <div class=panel-body> + <div class=list-group><a href=# data-toggle=modal data-target=#_services__serviceId__get + class=list-group-item><span class="badge badge_get">get</span> + + <div class=method_description><p>Get a specific service</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_services__serviceId__put class=list-group-item><span + class="badge badge_put">put</span> + + <div class=method_description><p>Update a service</p></div> + <div class=clearfix></div> + </a> <a href=# data-toggle=modal data-target=#_services__serviceId__delete class=list-group-item><span + class="badge badge_delete">delete</span> + + <div class=method_description><p>Delete a specific service</p></div> + <div class=clearfix></div> + </a></div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_services__serviceId__get> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_get">get</span> <span class=parent>/services</span>/{serviceId} + </h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Get a specific service</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_services__serviceId__get_request data-toggle=tab>Request</a></li> + <li><a href=#_services__serviceId__get_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_services__serviceId__get_request><h3>URI Parameters</h3> + <ul> + <li><strong>serviceId</strong>: <em>required (string)</em></li> + </ul> + </div> + <div class=tab-pane id=_services__serviceId__get_response><h2>HTTP status code <a + href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "Service", + "apiVersion": "v1beta1", + "id": "example", + "port": 8000, + "labels": { + "name": "nginx" + }, + "selector": { + "name": "nginx" + } + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_services__serviceId__put> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_put">put</span> <span class=parent>/services</span>/{serviceId} + </h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Update a service</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_services__serviceId__put_request data-toggle=tab>Request</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_services__serviceId__put_request><h3>URI Parameters</h3> + <ul> + <li><strong>serviceId</strong>: <em>required (string)</em></li> + </ul> + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Schema</strong>:<pre><code>{ + "$schema": "http://json-schema.org/draft-03/schema", + "type": "object", + "required": false, + "description": "A service resource.", + "properties": { + "kind": { + "type": "string", + "required": false + }, + "id": { + "type": "string", + "required": false + }, + "creationTimestamp": { + "type": "string", + "required": false + }, + "selfLink": { + "type": "string", + "required": false + }, + "name": { + "type": "string", + "required": false + }, + "port": { + "type": "number", + "required": false + }, + "containerPort": { + "type": "string", + "required": false + }, + "labels": { + "type": "object", + "required": false + }, + "selector": { + "type": "object", + "required": false + } + } + } + </code></pre> + </small> + </p> + <p> + <small><strong>Example</strong>:<pre><code>{ + "kind": "Service", + "apiVersion": "v1beta1", + "id": "example", + "port": 8000, + "labels": { + "name": "nginx" + }, + "selector": { + "name": "nginx" + } + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="modal fade" tabindex=0 id=_services__serviceId__delete> + <div class=modal-dialog> + <div class=modal-content> + <div class=modal-header> + <button type=button class=close data-dismiss=modal aria-hidden=true>×</button> + <h4 class=modal-title id=myModalLabel><span class="badge badge_delete">delete</span> <span + class=parent>/services</span>/{serviceId}</h4></div> + <div class=modal-body> + <div class="alert alert-info"><p>Delete a specific service</p></div> + <ul class="nav nav-tabs"> + <li class=active><a href=#_services__serviceId__delete_request data-toggle=tab>Request</a></li> + <li><a href=#_services__serviceId__delete_response data-toggle=tab>Response</a></li> + </ul> + <div class=tab-content> + <div class="tab-pane active" id=_services__serviceId__delete_request><h3>URI Parameters</h3> + <ul> + <li><strong>serviceId</strong>: <em>required (string)</em></li> + </ul> + </div> + <div class=tab-pane id=_services__serviceId__delete_response><h2>HTTP status code <a + href=http://httpstatus.es/200 target=_blank>200</a></h2> + + <h3>Body</h3> + + <p><strong>Type: application/json</strong></p> + + <p> + <small><strong>Example</strong>:<pre><code>{ + "success": true + } + </code></pre> + </small> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class=col-md-3> + <div id=sidebar class="hidden-print affix" role=complementary> + <ul class="nav nav-pills nav-stacked"> + <li><a href=#_pods>/pods</a></li> + <li><a href=#_replicationControllers>/replicationControllers</a></li> + <li><a href=#_services>/services</a></li> + </ul> + </div> + </div> + </div> +</div> +</body> +</html> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.raml ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.raml b/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.raml new file mode 100644 index 0000000..6cf25c4 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/main/kubernetes/api/kubernetes.raml @@ -0,0 +1,185 @@ +#%RAML 0.8 +baseUri: http://server/api/{version} +title: Kubernetes +version: v1beta1 +mediaType: application/json +documentation: + - title: Overview + content: | + The Kubernetes API currently manages 3 main resources: `pods`, + `replicationControllers`, and `services`. Pods correspond to + colocated groups of [Docker containers](http://docker.io) with + shared volumes, as supported by [Google Cloud Platform's + container-vm + images](https://developers.google.com/compute/docs/containers). + Singleton pods can be created directly via the `/pods` + endpoint. Sets of pods may created, maintained, and scaled using + replicationControllers. Services create load-balanced targets + for sets of pods. + + - title: Resource identifiers + content: | + Each resource has a string `id` and list of key-value + `labels`. The `id` is generated by the system and is guaranteed + to be unique in space and time across all resources. `labels` + is a map of string (key) to string (value). Each resource may + have at most one label with a particular key. Individual labels + are used to specify identifying metadata that can be used to + define sets of resources by specifying required labels. Examples + of typical pod label keys include `stage`, `service`, `name`, + `tier`, `partition`, and `track`, but you are free to develop + your own conventions. + + - title: Creation semantics + content: | + Creation is currently not idempotent. We plan to add a + modification token to each resource. A unique value for the token + should be provided by the user during creation. If the user + specifies a duplicate token at creation time, the system should + return an error with a pointer to the existing resource with that + token. In this way a user can deterministically recover from a + dropped connection during a resource creation request. + + - title: Update semantics + content: | + Custom verbs are minimized and are used only for 'edge triggered' + actions such as a reboot. Resource descriptions are generally set + up with `desiredState` for the user provided parameters and + `currentState` for the actual system state. While consistent + terminology is used across these two stanzas they do not match + member for member. + + When a new version of a resource is PUT the `desiredState` is + updated and available immediately. Over time the system will work + to bring the `currentState` into line with the `desiredState`. The + system will drive toward the most recent `desiredState` regardless + of previous versions of that stanza. In other words, if a value + is changed from 2 to 5 in one PUT and then back down to 3 in + another PUT the system isn't required to 'touch base' at 5 before + making 3 the `currentState`. + + When doing an update, we assume that the entire `desiredState` + stanza is specified. If a field is omitted it is assumed that the + user is looking to delete that field. It is viable for a user to + GET the resource, modify what they like in the `desiredState` or + labels stanzas and then PUT it back. If the `currentState` is + included in the PUT it will be silently ignored. + + While currently unspecified, it is intended that concurrent + modification should be accomplished with optimistic locking of + resources. We plan to add a modification token to each resource. If + this is included with the PUT operation the system will verify + that there haven't been other successful mutations to the + resource during a read/modify/write cycle. The correct client + action at this point is to GET the resource again, apply the + changes afresh and try submitting again. + + Note that updates currently only work for replicationControllers + and services, but not for pods. Label updates have not yet been + implemented, either. + +/pods: + get: + description: List all pods on this cluster + responses: + 200: + body: + example: !include examples/pod-list.json + post: + description: Create a new pod. currentState is ignored if present. + body: + schema: !include doc/pod-schema.json + example: !include examples/pod.json + + /{podId}: + get: + description: Get a specific pod + responses: + 200: + body: + example: !include examples/pod.json + put: + description: Update a pod + body: + schema: !include doc/pod-schema.json + example: !include examples/pod.json + delete: + description: Delete a specific pod + responses: + 200: + body: + example: | + { + "success": true + } + +/replicationControllers: + get: + description: List all replicationControllers on this cluster + responses: + 200: + body: + example: !include examples/controller-list.json + post: + description: Create a new controller. currentState is ignored if present. + body: + schema: !include doc/controller-schema.json + example: !include examples/controller.json + + /{controllerId}: + get: + description: Get a specific controller + responses: + 200: + body: + example: !include examples/controller.json + put: + description: Update a controller + body: + schema: !include doc/controller-schema.json + example: !include examples/controller.json + delete: + description: Delete a specific controller + responses: + 200: + body: + example: | + { + "success": true + } + +/services: + get: + description: List all services on this cluster + responses: + 200: + body: + example: !include examples/service-list.json + post: + description: Create a new service + body: + schema: !include doc/service-schema.json + example: !include examples/service.json + + /{serviceId}: + get: + description: Get a specific service + responses: + 200: + body: + example: !include examples/service.json + put: + description: Update a service + body: + schema: !include doc/service-schema.json + example: !include examples/service.json + delete: + description: Delete a specific service + responses: + 200: + body: + example: | + { + "success": true + } +
