////////////////////////////////////////////////////////////////////////////////
/// @brief over the wire protocol
///
/// @file
///
/// DISCLAIMER
///
/// Copyright 2012 triagens GmbH, Cologne, Germany
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
/// Copyright holder is triAGENS GmbH, Cologne, Germany
///
/// @author Jan Steemann
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @page HttpImportTOC
///
///
/// - @ref HttpImport
///
/// - @ref HttpImportSelfContained
///
/// - @ref HttpImportHeaderData
///
///
///
///
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @page HttpImport HTTP Interface for bulk imports
///
/// ArangoDB provides an HTTP interface to import multiple documents at once
/// into a collection. This is known as a bulk import.
///
/// @EMBEDTOC{HttpImportTOC}
///
/// The data uploaded must be provided in JSON format. There are two mechanisms
/// to import the data:
/// - self-contained documents: in this case, each document contains all
/// attribute names and values. Attribute names may be completely different
/// among the documents uploaded
/// - attribute names plus document data: in this case, the first document must
/// be a JSON list containing the attribute names of the documents that follow.
/// The following documents must be lists containing only the document data.
/// Data will be mapped to the attribute names by attribute positions.
///
/// The endpoint address is @LIT{/_api/import} for both input mechanisms.
/// Data must be sent to this URL using an HTTP POST request. The data to import
/// must be contained in the body of the POST request.
///
/// The @LIT{collection} URL parameter must be used to specify the target collection
/// for the import. The optional URL parameter @LIT{createCollection} can be used
/// to create a non-existing collection during the import. If not used, importing
/// data into a non-existing collection will produce an error.
///
/// @section HttpImportSelfContained Importing self-contained documents
///////////////////////////////////////////////////////////////////////
///
/// This import method allows uploading self-contained JSON documents. The
/// documents must be uploaded in the body of the HTTP POST request. Each line
/// of the body will be interpreted as one stand-alone document. Empty lines
/// in the body are allowed and will be skipped.
///
/// To use this method, the @LIT{type} URL parameter should be set to @LIT{documents}.
///
/// @EXAMPLES
///
/// @verbinclude api-import-documents
///
/// The server will respond with an HTTP 201 if everything went well. The number
/// of documents imported will be returned in the @LIT{created} attribute of
/// the response. If any documents were skipped or incorrectly formatted, this
/// will be returned in the @LIT{errors} attribute.
///
/// @section HttpImportHeaderData Importing headers and values
//////////////////////////////////////////////////////////////
///
/// When using this type of import, the attribute names of the documents to be
/// imported are specified separate from the actual document value data.
/// The first line of the HTTP POST request body must be a JSON list containing
/// the attribute names for the documents that follow.
/// The following lines are interpreted as the document data. Each document must
/// be a JSON list of values. No attribute names are needed or allowed in this
/// data section.
///
/// @EXAMPLES
///
/// @verbinclude api-import-headers
///
/// The server will again respond with an HTTP 201 if everything went well. The
/// number of documents imported will be returned in the @LIT{created} attribute of
/// the response. If any documents were skipped or incorrectly formatted, this
/// will be returned in the @LIT{errors} attribute.
////////////////////////////////////////////////////////////////////////////////
// Local Variables:
// mode: c++
// mode: outline-minor
// outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)"
// End: