(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{136:function(n,e,t){"use strict";t.d(e,"a",(function(){return b})),t.d(e,"b",(function(){return d}));var a=t(0),r=t.n(a);function c(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function o(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,a)}return t}function p(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?o(Object(t),!0).forEach((function(e){c(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function i(n,e){if(null==n)return{};var t,a,r=function(n,e){if(null==n)return{};var t,a,r={},c=Object.keys(n);for(a=0;a<c.length;a++)t=c[a],e.indexOf(t)>=0||(r[t]=n[t]);return r}(n,e);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(a=0;a<c.length;a++)t=c[a],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var l=r.a.createContext({}),m=function(n){var e=r.a.useContext(l),t=e;return n&&(t="function"==typeof n?n(e):p(p({},e),n)),t},b=function(n){var e=m(n.components);return r.a.createElement(l.Provider,{value:e},n.children)},s={inlineCode:"code",wrapper:function(n){var e=n.children;return r.a.createElement(r.a.Fragment,{},e)}},u=r.a.forwardRef((function(n,e){var t=n.components,a=n.mdxType,c=n.originalType,o=n.parentName,l=i(n,["components","mdxType","originalType","parentName"]),b=m(t),u=a,d=b["".concat(o,".").concat(u)]||b[u]||s[u]||c;return t?r.a.createElement(d,p(p({ref:e},l),{},{components:t})):r.a.createElement(d,p({ref:e},l))}));function d(n,e){var t=arguments,a=e&&e.mdxType;if("string"==typeof n||a){var c=t.length,o=new Array(c);o[0]=u;var p={};for(var i in e)hasOwnProperty.call(e,i)&&(p[i]=e[i]);p.originalType=n,p.mdxType="string"==typeof n?n:a,o[1]=p;for(var l=2;l<c;l++)o[l]=t[l];return r.a.createElement.apply(null,o)}return r.a.createElement.apply(null,t)}u.displayName="MDXCreateElement"},75:function(n,e,t){"use strict";t.r(e),t.d(e,"frontMatter",(function(){return o})),t.d(e,"metadata",(function(){return p})),t.d(e,"toc",(function(){return i})),t.d(e,"default",(function(){return m}));var a=t(3),r=t(7),c=(t(0),t(136)),o={title:"Environment REST API"},p={unversionedId:"api/environment",id:"api/environment",isDocsHomePage:!1,title:"Environment REST API",description:"\x3c!--",source:"@site/docs/api/environment.md",slug:"/api/environment",permalink:"/docs/api/environment",editUrl:"https://github.com/apache/submarine/edit/master/website/docs/api/environment.md",version:"current",sidebar:"api",next:{title:"Experiment REST API",permalink:"/docs/api/experiment"}},i=[{value:"Create Environment",id:"create-environment",children:[{value:"List environment",id:"list-environment",children:[]},{value:"Get environment",id:"get-environment",children:[]},{value:"Patch environment",id:"patch-environment",children:[]},{value:"Delete environment",id:"delete-environment",children:[]}]}],l={toc:i};function m(n){var e=n.components,t=Object(r.a)(n,["components"]);return Object(c.b)("wrapper",Object(a.a)({},l,t,{components:e,mdxType:"MDXLayout"}),Object(c.b)("blockquote",null,Object(c.b)("p",{parentName:"blockquote"},"Note: The Environment API is in the alpha stage which is subjected to incompatible changes in\nfuture releases.")),Object(c.b)("h2",{id:"create-environment"},"Create Environment"),Object(c.b)("p",null,Object(c.b)("inlineCode",{parentName:"p"},"POST /api/v1/environment")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Request")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-sh"},'curl -X POST -H "Content-Type: application/json" -d \'\n{\n  "name": "my-submarine-env",\n  "dockerImage" : "continuumio/anaconda3",\n  "kernelSpec" : {\n    "name" : "team_default_python_3.7",\n    "channels" : ["defaults"],\n    "condaDependencies" : \n      ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n      "alabaster=0.7.12=py37_0",\n      "anaconda=2020.02=py37_0",\n      "anaconda-client=1.7.2=py37_0",\n      "anaconda-navigator=1.9.12=py37_0"],\n    "pipDependencies" : \n      ["apache-submarine==0.5.0",\n      "pyarrow==0.17.0"]\n  }\n}\n\' http://127.0.0.1:32080/api/v1/environment\n')),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Response:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-json"},'{\n  "status": "OK",\n  "code": 200,\n  "result": {\n    "environmentId": "environment_1586156073228_0001",\n    "environmentSpec": {\n      "name": "my-submarine-env",\n      "dockerImage" : "continuumio/anaconda3",\n      "kernelSpec" : {\n        "name" : "team_default_python_3.7",\n        "channels" : ["defaults"],\n        "condaDependencies" : \n          ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n          "alabaster=0.7.12=py37_0",\n          "anaconda=2020.02=py37_0",\n          "anaconda-client=1.7.2=py37_0",\n          "anaconda-navigator=1.9.12=py37_0"],\n        "pipDependencies" : \n          ["apache-submarine==0.5.0",\n          "pyarrow==0.17.0"]\n      }\n    }\n  }\n}\n')),Object(c.b)("h3",{id:"list-environment"},"List environment"),Object(c.b)("p",null,Object(c.b)("inlineCode",{parentName:"p"},"GET /api/v1/environment")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Request:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-sh"},"curl -X GET http://127.0.0.1:32080/api/v1/environment\n")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Response:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-json"},'{\n  "status": "OK",\n  "code": 200,\n  "result": [\n  {\n    "environmentId": "environment_1586156073228_0001",\n    "environmentSpec": {\n      "name": "my-submarine-env",\n      "dockerImage" : "continuumio/anaconda3",\n      "kernelSpec" : {\n        "name" : "team_default_python_3.7",\n        "channels" : ["defaults"],\n        "condaDependencies" : \n          ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n          "alabaster=0.7.12=py37_0",\n          "anaconda=2020.02=py37_0",\n          "anaconda-client=1.7.2=py37_0",\n          "anaconda-navigator=1.9.12=py37_0"],\n        "pipDependencies" : \n          ["apache-submarine==0.5.0",\n          "pyarrow==0.17.0"]\n      }\n    }\n  },\n  {\n    "environmentId": "environment_1586156073228_0002",\n    "environmentSpec": {\n      "name": "my-submarine-env-2",\n      "dockerImage" : "continuumio/miniconda",\n      "kernelSpec" : {\n        "name" : "team_miniconda_python_3.7",\n        "channels" : ["defaults"],\n        "condaDependencies" : \n          ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0"],\n        "pipDependencies" : \n          [],\n      }\n    }\n  }\n  ]\n}\n')),Object(c.b)("h3",{id:"get-environment"},"Get environment"),Object(c.b)("p",null,Object(c.b)("inlineCode",{parentName:"p"},"GET /api/v1/environment/{name}")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Request:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-sh"},"curl -X GET http://127.0.0.1:32080/api/v1/environment/my-submarine-env\n")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Response:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-json"},'{\n  "status": "OK",\n  "code": 200,\n  "result": {\n    "environmentId": "environment_1586156073228_0001",\n    "environmentSpec": {\n      "name": "my-submarine-env",\n      "dockerImage" : "continuumio/anaconda3",\n      "kernelSpec" : {\n        "name" : "team_default_python_3.7",\n        "channels" : ["defaults"],\n        "condaDependencies" : \n          ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n          "alabaster=0.7.12=py37_0",\n          "anaconda=2020.02=py37_0",\n          "anaconda-client=1.7.2=py37_0",\n          "anaconda-navigator=1.9.12=py37_0"],\n        "pipDependencies" : \n          ["apache-submarine==0.5.0",\n          "pyarrow==0.17.0"]\n      }\n    }\n  }\n}\n')),Object(c.b)("h3",{id:"patch-environment"},"Patch environment"),Object(c.b)("p",null,Object(c.b)("inlineCode",{parentName:"p"},"PATCH /api/v1/environment/{name}")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Request:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-sh"},'curl -X PATCH -H "Content-Type: application/json" -d \'\n{\n  "name": "my-submarine-env",\n  "dockerImage" : "continuumio/anaconda3",\n  "kernelSpec" : {\n    "name" : "team_default_python_3.7_updated",\n    "channels" : ["defaults"],\n    "condaDependencies" : \n      ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n      "alabaster=0.7.12=py37_0"],\n    "pipDependencies" : \n      []\n  }\n}\n\' http://127.0.0.1:32080/api/v1/environment/my-submarine-env\n')),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Response:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-json"},'{\n  "status": "OK",\n  "code": 200,\n  "success": true,\n  "result": {\n    "environmentId": "environment_1586156073228_0001",\n    "environmentSpec": {\n      "name": "my-submarine-env",\n      "dockerImage" : "continuumio/anaconda3",\n      "kernelSpec" : {\n        "name" : "team_default_python_3.7_updated",\n        "channels" : ["defaults"],\n        "condaDependencies" : \n          ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n          "alabaster=0.7.12=py37_0"],\n        "pipDependencies" :\n          []\n      }\n    }\n  }\n}\n')),Object(c.b)("blockquote",null,Object(c.b)("p",{parentName:"blockquote"},'dockerImage, "name" (of kernelSpec), "channels", "condaDependencies", "pipDependencies" etc can be updated using this API.\n"name" of EnvironmentSpec is not supported.')),Object(c.b)("h3",{id:"delete-environment"},"Delete environment"),Object(c.b)("p",null,Object(c.b)("inlineCode",{parentName:"p"},"GET /api/v1/environment/{name}")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Request:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-sh"},"curl -X DELETE http://127.0.0.1:32080/api/v1/environment/my-submarine-env\n")),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Example Response:")),Object(c.b)("pre",null,Object(c.b)("code",{parentName:"pre",className:"language-json"},'{\n  "status": "OK",\n  "code": 200,\n  "result": {\n    "environmentId": "environment_1586156073228_0001",\n    "environmentSpec": {\n      "name": "my-submarine-env",\n      "dockerImage" : "continuumio/anaconda3",\n      "kernelSpec" : {\n        "name" : "team_default_python_3.7_updated",\n        "channels" : ["defaults"],\n        "condaDependencies" : \n          ["_ipyw_jlab_nb_ext_conf=0.1.0=py37_0",\n          "alabaster=0.7.12=py37_0"],\n        "pipDependencies" :\n          []\n      }\n    }\n  }\n}\n')))}m.isMDXComponent=!0}}]);