% Generated by Sphinx.
\def\sphinxdocclass{report}
\documentclass[letterpaper,10pt,english]{sphinxmanual}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{times}
\usepackage[Bjarne]{fncychap}
\usepackage{longtable}
\usepackage{sphinx}
\usepackage{multirow}


\title{GNS3 Documentation}
\date{January 14, 2015}
\release{1.3.dev1}
\author{GNS3 Team}
\newcommand{\sphinxlogo}{}
\renewcommand{\releasename}{Release}
\makeindex

\makeatletter
\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax%
    \let\PYG@ul=\relax \let\PYG@tc=\relax%
    \let\PYG@bc=\relax \let\PYG@ff=\relax}
\def\PYG@tok#1{\csname PYG@tok@#1\endcsname}
\def\PYG@toks#1+{\ifx\relax#1\empty\else%
    \PYG@tok{#1}\expandafter\PYG@toks\fi}
\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{%
    \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}}
\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}}

\expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}}
\expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
\expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
\expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
\expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}}
\expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}}
\expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}}
\expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}}
\expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
\expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
\expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
\expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
\expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
\expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}
\expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
\expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
\expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
\expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
\expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
\expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
\expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
\expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}}
\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}}
\expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
\expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}}
\expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
\expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}}
\expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf}
\expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}}
\expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}}
\expandafter\def\csname PYG@tok@mb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
\expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
\expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit}
\expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}}

\def\PYGZbs{\char`\\}
\def\PYGZus{\char`\_}
\def\PYGZob{\char`\{}
\def\PYGZcb{\char`\}}
\def\PYGZca{\char`\^}
\def\PYGZam{\char`\&}
\def\PYGZlt{\char`\<}
\def\PYGZgt{\char`\>}
\def\PYGZsh{\char`\#}
\def\PYGZpc{\char`\%}
\def\PYGZdl{\char`\$}
\def\PYGZhy{\char`\-}
\def\PYGZsq{\char`\'}
\def\PYGZdq{\char`\"}
\def\PYGZti{\char`\~}
% for compatibility with earlier versions
\def\PYGZat{@}
\def\PYGZlb{[}
\def\PYGZrb{]}
\makeatother

\renewcommand\PYGZsq{\textquotesingle}

\begin{document}

\maketitle
\tableofcontents
\phantomsection\label{index::doc}



\chapter{Errors}
\label{general::doc}\label{general:welcome-to-api-documentation}\label{general:errors}
In case of error a standard HTTP error is raise and you got a
JSON like that

\begin{Verbatim}[commandchars=\\\{\}]
\PYG{p}{\PYGZob{}}
    \PYG{n+nt}{\PYGZdq{}status\PYGZdq{}}\PYG{p}{:} \PYG{l+m+mi}{409}\PYG{p}{,}
    \PYG{n+nt}{\PYGZdq{}message\PYGZdq{}}\PYG{p}{:} \PYG{l+s+s2}{\PYGZdq{}Conflict\PYGZdq{}}
\PYG{p}{\PYGZcb{}}
\end{Verbatim}


\chapter{Development}
\label{development::doc}\label{development:development}

\section{Code convention}
\label{development:code-convention}
You should respect all the PEP8 convention except the
rule about max line length.


\section{Documentation}
\label{development:documentation}

\subsection{Build doc}
\label{development:build-doc}
In the project root folder:

\begin{Verbatim}[commandchars=\\\{\}]
./documentation.sh
\end{Verbatim}

The output is available inside \emph{docs/\_build/html}


\section{Tests}
\label{development:tests}

\subsection{Run tests}
\label{development:run-tests}
\begin{Verbatim}[commandchars=\\\{\}]
py.test \PYGZhy{}v
\end{Verbatim}


\chapter{API Endpoints}
\label{index:api-endpoints}

\section{/sleep}
\label{api/sleep::doc}\label{api/sleep:sleep}\setbox0\vbox{
\begin{minipage}{0.95\linewidth}
\textbf{Contents}

\medskip

\begin{itemize}
\item {} 
{\hyperref[api/sleep:sleep]{/sleep}}
\begin{itemize}
\item {} 
{\hyperref[api/sleep:get-sleep]{GET /sleep}}
\begin{itemize}
\item {} 
{\hyperref[api/sleep:response-status-codes]{Response status codes}}

\end{itemize}

\end{itemize}

\end{itemize}
\end{minipage}}
\begin{center}\setlength{\fboxsep}{5pt}\shadowbox{\box0}\end{center}


\subsection{GET /sleep}
\label{api/sleep:get-sleep}

\subsubsection{Response status codes}
\label{api/sleep:response-status-codes}\begin{itemize}
\item {} 
\textbf{200}: OK

\end{itemize}


\section{/stream}
\label{api/stream::doc}\label{api/stream:stream}\setbox0\vbox{
\begin{minipage}{0.95\linewidth}
\textbf{Contents}

\medskip

\begin{itemize}
\item {} 
{\hyperref[api/stream:stream]{/stream}}
\begin{itemize}
\item {} 
{\hyperref[api/stream:get-stream]{GET /stream}}
\begin{itemize}
\item {} 
{\hyperref[api/stream:response-status-codes]{Response status codes}}

\end{itemize}

\end{itemize}

\end{itemize}
\end{minipage}}
\begin{center}\setlength{\fboxsep}{5pt}\shadowbox{\box0}\end{center}


\subsection{GET /stream}
\label{api/stream:get-stream}

\subsubsection{Response status codes}
\label{api/stream:response-status-codes}\begin{itemize}
\item {} 
\textbf{200}: OK

\end{itemize}


\section{/version}
\label{api/version::doc}\label{api/version:version}\setbox0\vbox{
\begin{minipage}{0.95\linewidth}
\textbf{Contents}

\medskip

\begin{itemize}
\item {} 
{\hyperref[api/version:version]{/version}}
\begin{itemize}
\item {} 
{\hyperref[api/version:get-version]{GET /version}}
\begin{itemize}
\item {} 
{\hyperref[api/version:response-status-codes]{Response status codes}}

\item {} 
{\hyperref[api/version:output]{Output}}

\item {} 
{\hyperref[api/version:sample-session]{Sample session}}

\end{itemize}

\end{itemize}

\end{itemize}
\end{minipage}}
\begin{center}\setlength{\fboxsep}{5pt}\shadowbox{\box0}\end{center}


\subsection{GET /version}
\label{api/version:get-version}
Retrieve server version number


\subsubsection{Response status codes}
\label{api/version:response-status-codes}\begin{itemize}
\item {} 
\textbf{200}: OK

\end{itemize}


\subsubsection{Output}
\label{api/version:output}

\subsubsection{Sample session}
\label{api/version:sample-session}
\begin{Verbatim}[commandchars=\\\{\}]
curl \PYGZhy{}i \PYGZhy{}xGET \PYGZsq{}http://localhost:8000/version\PYGZsq{}

GET /version HTTP/1.1



HTTP/1.1 200
CONNECTION: close
CONTENT\PYGZhy{}LENGTH: 29
CONTENT\PYGZhy{}TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 aiohttp/0.13.1
X\PYGZhy{}ROUTE: /version

\PYGZob{}
    \PYGZdq{}version\PYGZdq{}: \PYGZdq{}1.3.dev1\PYGZdq{}
\PYGZcb{}
\end{Verbatim}


\section{/vpcs}
\label{api/vpcs::doc}\label{api/vpcs:vpcs}\setbox0\vbox{
\begin{minipage}{0.95\linewidth}
\textbf{Contents}

\medskip

\begin{itemize}
\item {} 
{\hyperref[api/vpcs:vpcs]{/vpcs}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcs:post-vpcs]{POST /vpcs}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcs:parameters]{Parameters}}

\item {} 
{\hyperref[api/vpcs:response-status-codes]{Response status codes}}

\item {} 
{\hyperref[api/vpcs:input]{Input}}

\item {} 
{\hyperref[api/vpcs:output]{Output}}

\item {} 
{\hyperref[api/vpcs:sample-session]{Sample session}}

\end{itemize}

\end{itemize}

\end{itemize}
\end{minipage}}
\begin{center}\setlength{\fboxsep}{5pt}\shadowbox{\box0}\end{center}


\subsection{POST /vpcs}
\label{api/vpcs:post-vpcs}
Create a new VPCS and return it


\subsubsection{Parameters}
\label{api/vpcs:parameters}\begin{itemize}
\item {} 
\textbf{vpcs\_id}: Id of VPCS instance

\end{itemize}


\subsubsection{Response status codes}
\label{api/vpcs:response-status-codes}\begin{itemize}
\item {} 
\textbf{201}: Success of creation of VPCS

\item {} 
\textbf{409}: Conflict

\end{itemize}


\subsubsection{Input}
\label{api/vpcs:input}

\subsubsection{Output}
\label{api/vpcs:output}

\subsubsection{Sample session}
\label{api/vpcs:sample-session}
\begin{Verbatim}[commandchars=\\\{\}]
curl \PYGZhy{}i \PYGZhy{}xPOST \PYGZsq{}http://localhost:8000/vpcs\PYGZsq{} \PYGZhy{}d \PYGZsq{}\PYGZob{}\PYGZdq{}name\PYGZdq{}: \PYGZdq{}PC TEST 1\PYGZdq{}\PYGZcb{}\PYGZsq{}

POST /vpcs HTTP/1.1
\PYGZob{}
    \PYGZdq{}name\PYGZdq{}: \PYGZdq{}PC TEST 1\PYGZdq{}
\PYGZcb{}


HTTP/1.1 200
CONNECTION: close
CONTENT\PYGZhy{}LENGTH: 66
CONTENT\PYGZhy{}TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 aiohttp/0.13.1
X\PYGZhy{}ROUTE: /vpcs

\PYGZob{}
    \PYGZdq{}console\PYGZdq{}: 4242,
    \PYGZdq{}name\PYGZdq{}: \PYGZdq{}PC TEST 1\PYGZdq{},
    \PYGZdq{}vpcs\PYGZus{}id\PYGZdq{}: 1
\PYGZcb{}
\end{Verbatim}


\section{/vpcs/\{vpcs\_id\}}
\label{api/vpcsvpcsid::doc}\label{api/vpcsvpcsid:vpcs-vpcs-id}\setbox0\vbox{
\begin{minipage}{0.95\linewidth}
\textbf{Contents}

\medskip

\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsid:vpcs-vpcs-id]{/vpcs/\{vpcs\_id\}}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsid:get-vpcs-vpcs-id]{GET /vpcs/\{vpcs\_id\}}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsid:parameters]{Parameters}}

\item {} 
{\hyperref[api/vpcsvpcsid:response-status-codes]{Response status codes}}

\item {} 
{\hyperref[api/vpcsvpcsid:output]{Output}}

\end{itemize}

\item {} 
{\hyperref[api/vpcsvpcsid:put-vpcs-vpcs-id]{PUT /vpcs/\{vpcs\_id\}}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsid:id1]{Parameters}}

\item {} 
{\hyperref[api/vpcsvpcsid:id2]{Response status codes}}

\item {} 
{\hyperref[api/vpcsvpcsid:input]{Input}}

\item {} 
{\hyperref[api/vpcsvpcsid:id3]{Output}}

\end{itemize}

\end{itemize}

\end{itemize}
\end{minipage}}
\begin{center}\setlength{\fboxsep}{5pt}\shadowbox{\box0}\end{center}


\subsection{GET /vpcs/\{vpcs\_id\}}
\label{api/vpcsvpcsid:get-vpcs-vpcs-id}
Get informations about a VPCS


\subsubsection{Parameters}
\label{api/vpcsvpcsid:parameters}\begin{itemize}
\item {} 
\textbf{vpcs\_id}: Id of VPCS instance

\end{itemize}


\subsubsection{Response status codes}
\label{api/vpcsvpcsid:response-status-codes}\begin{itemize}
\item {} 
\textbf{200}: OK

\end{itemize}


\subsubsection{Output}
\label{api/vpcsvpcsid:output}

\subsection{PUT /vpcs/\{vpcs\_id\}}
\label{api/vpcsvpcsid:put-vpcs-vpcs-id}
Update VPCS informations


\subsubsection{Parameters}
\label{api/vpcsvpcsid:id1}\begin{itemize}
\item {} 
\textbf{vpcs\_id}: Id of VPCS instance

\end{itemize}


\subsubsection{Response status codes}
\label{api/vpcsvpcsid:id2}\begin{itemize}
\item {} 
\textbf{200}: OK

\end{itemize}


\subsubsection{Input}
\label{api/vpcsvpcsid:input}

\subsubsection{Output}
\label{api/vpcsvpcsid:id3}

\section{/vpcs/\{vpcs\_id\}/nio}
\label{api/vpcsvpcsidnio::doc}\label{api/vpcsvpcsidnio:vpcs-vpcs-id-nio}\setbox0\vbox{
\begin{minipage}{0.95\linewidth}
\textbf{Contents}

\medskip

\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsidnio:vpcs-vpcs-id-nio]{/vpcs/\{vpcs\_id\}/nio}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsidnio:post-vpcs-vpcs-id-nio]{POST /vpcs/\{vpcs\_id\}/nio}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsidnio:parameters]{Parameters}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:response-status-codes]{Response status codes}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:input]{Input}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsidnio:types]{Types}}
\begin{itemize}
\item {} 
{\hyperref[api/vpcsvpcsidnio:ethernet]{Ethernet}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:linuxethernet]{LinuxEthernet}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:null]{NULL}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:tap]{TAP}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:udp]{UDP}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:unix]{UNIX}}

\item {} 
{\hyperref[api/vpcsvpcsidnio:vde]{VDE}}

\end{itemize}

\item {} 
{\hyperref[api/vpcsvpcsidnio:body]{Body}}

\end{itemize}

\item {} 
{\hyperref[api/vpcsvpcsidnio:sample-session]{Sample session}}

\end{itemize}

\end{itemize}

\end{itemize}
\end{minipage}}
\begin{center}\setlength{\fboxsep}{5pt}\shadowbox{\box0}\end{center}


\subsection{POST /vpcs/\{vpcs\_id\}/nio}
\label{api/vpcsvpcsidnio:post-vpcs-vpcs-id-nio}
ADD NIO to a VPCS


\subsubsection{Parameters}
\label{api/vpcsvpcsidnio:parameters}\begin{itemize}
\item {} 
\textbf{vpcs\_id}: Id of VPCS instance

\end{itemize}


\subsubsection{Response status codes}
\label{api/vpcsvpcsidnio:response-status-codes}\begin{itemize}
\item {} 
\textbf{201}: Success of creation of NIO

\item {} 
\textbf{409}: Conflict

\end{itemize}


\subsubsection{Input}
\label{api/vpcsvpcsidnio:input}

\paragraph{Types}
\label{api/vpcsvpcsidnio:types}

\subparagraph{Ethernet}
\label{api/vpcsvpcsidnio:ethernet}
Generic Ethernet Network Input/Output


\subparagraph{LinuxEthernet}
\label{api/vpcsvpcsidnio:linuxethernet}
Linux Ethernet Network Input/Output


\subparagraph{NULL}
\label{api/vpcsvpcsidnio:null}
NULL Network Input/Output


\subparagraph{TAP}
\label{api/vpcsvpcsidnio:tap}
TAP Network Input/Output


\subparagraph{UDP}
\label{api/vpcsvpcsidnio:udp}
UDP Network Input/Output


\subparagraph{UNIX}
\label{api/vpcsvpcsidnio:unix}
UNIX Network Input/Output


\subparagraph{VDE}
\label{api/vpcsvpcsidnio:vde}
VDE Network Input/Output


\paragraph{Body}
\label{api/vpcsvpcsidnio:body}

\subsubsection{Sample session}
\label{api/vpcsvpcsidnio:sample-session}
\begin{Verbatim}[commandchars=\\\{\}]
curl \PYGZhy{}i \PYGZhy{}xPOST \PYGZsq{}http://localhost:8000/vpcs/\PYGZob{}vpcs\PYGZus{}id\PYGZcb{}/nio\PYGZsq{} \PYGZhy{}d \PYGZsq{}\PYGZob{}\PYGZdq{}id\PYGZdq{}: 42, \PYGZdq{}nio\PYGZdq{}: \PYGZob{}\PYGZdq{}local\PYGZus{}file\PYGZdq{}: \PYGZdq{}/tmp/test\PYGZdq{}, \PYGZdq{}remote\PYGZus{}file\PYGZdq{}: \PYGZdq{}/tmp/remote\PYGZdq{}, \PYGZdq{}type\PYGZdq{}: \PYGZdq{}nio\PYGZus{}unix\PYGZdq{}\PYGZcb{}, \PYGZdq{}port\PYGZdq{}: 0, \PYGZdq{}port\PYGZus{}id\PYGZdq{}: 0\PYGZcb{}\PYGZsq{}

POST /vpcs/\PYGZob{}vpcs\PYGZus{}id\PYGZcb{}/nio HTTP/1.1
\PYGZob{}
    \PYGZdq{}id\PYGZdq{}: 42,
    \PYGZdq{}nio\PYGZdq{}: \PYGZob{}
        \PYGZdq{}local\PYGZus{}file\PYGZdq{}: \PYGZdq{}/tmp/test\PYGZdq{},
        \PYGZdq{}remote\PYGZus{}file\PYGZdq{}: \PYGZdq{}/tmp/remote\PYGZdq{},
        \PYGZdq{}type\PYGZdq{}: \PYGZdq{}nio\PYGZus{}unix\PYGZdq{}
    \PYGZcb{},
    \PYGZdq{}port\PYGZdq{}: 0,
    \PYGZdq{}port\PYGZus{}id\PYGZdq{}: 0
\PYGZcb{}


HTTP/1.1 200
CONNECTION: close
CONTENT\PYGZhy{}LENGTH: 62
CONTENT\PYGZhy{}TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 aiohttp/0.13.1
X\PYGZhy{}ROUTE: /vpcs/\PYGZob{}vpcs\PYGZus{}id\PYGZcb{}/nio

\PYGZob{}
    \PYGZdq{}console\PYGZdq{}: 4242,
    \PYGZdq{}name\PYGZdq{}: \PYGZdq{}PC 2\PYGZdq{},
    \PYGZdq{}vpcs\PYGZus{}id\PYGZdq{}: 42
\PYGZcb{}
\end{Verbatim}



\renewcommand{\indexname}{Index}
\printindex
\end{document}
