\label{doc_usecases_specification_array-specification_md_md_doc_usecases_specification_array_specification}%
\Hypertarget{doc_usecases_specification_array-specification_md_md_doc_usecases_specification_array_specification}%
 \hypertarget{doc_usecases_specification_array-specification_md_autotoc_md4864}{}\doxysection{Summary}\label{doc_usecases_specification_array-specification_md_autotoc_md4864}

\begin{DoxyItemize}
\item {\bfseries{Scope\+:}} {\ttfamily spec}
\item {\bfseries{Level\+:}} Developer Goal
\item {\bfseries{Actors\+:}} Dev-\/\+Ops Engineer
\item {\bfseries{Brief\+:}} This use case introduces an array specification for a part of the dockerd configuration file (daemon.\+json).
\end{DoxyItemize}\hypertarget{doc_usecases_specification_array-specification_md_autotoc_md4865}{}\doxysection{Scenarios}\label{doc_usecases_specification_array-specification_md_autotoc_md4865}

\begin{DoxyItemize}
\item {\bfseries{Precondition\+:}} The Dev-\/\+Ops Engineer has a working setup for {\ttfamily docker} for and the daemon {\ttfamily dockerd}.
\item {\bfseries{Main success scenario\+:}}
\begin{DoxyItemize}
\item The Dev-\/\+Ops Engineer wants to write a specification for the {\ttfamily storage options} in the {\ttfamily dockerd} configuration file.
\item The array specification configuration key is {\ttfamily storage/opts/\#}.
\item The configuration uses {\ttfamily array/min} and {\ttfamily description} as metakeys.
\item The array is defined by the wildcard character {\ttfamily \#}.
\item The keys are all stored for the {\ttfamily spec} namespace.
\end{DoxyItemize}
\item {\bfseries{Alternative scenario\+:}}
\begin{DoxyItemize}
\item Define the storage type with an underline specification.
\item The array specification configuration key is {\ttfamily storage/opts/\+\_\+}.
\item The configuration uses {\ttfamily array/min} and {\ttfamily description} as metakeys.
\end{DoxyItemize}
\item {\bfseries{Error scenario\+:}}
\begin{DoxyItemize}
\item Wrong metakeys are used (yielded as error to the user).
\end{DoxyItemize}
\item {\bfseries{Postcondition\+:}} The keys are all stored for the {\ttfamily spec} namespace.
\item {\bfseries{Non-\/functional Constraints\+:}} None.
\end{DoxyItemize}\hypertarget{doc_usecases_specification_array-specification_md_autotoc_md4866}{}\doxysection{Example}\label{doc_usecases_specification_array-specification_md_autotoc_md4866}
The {\ttfamily storage options} configuration for the {\ttfamily dockerd} could look like\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{[storage/opts/\#]}
\DoxyCodeLine{meta:/array/min = 0}
\DoxyCodeLine{meta:/description = Storage driver options}

\end{DoxyCode}


For the full specification of the {\ttfamily dockerd} configuration file see \href{/home/jenkins/workspace/libelektra-release/examples/spec/dockerd.ini}{\texttt{ dockerd-\/spec}}. 