/*!
\defgroup XDevAPI X DevAPI
NoSQL-like Database API to use MySQL as a Document Store.

\defgroup ShellAPI ShellAPI
Shell API and backward compatibility API for MySQL Servers not supporting the X DevAPI.

\defgroup AdminAPI AdminAPI
API for setting up and managing InnoDB Clusters, InnoDB ReplicaSets, and InnoDB ClusterSets.

*/
/*!
\mainpage
\if DOXYGEN_JS
This document covers the JavaScript APIs available in the MySQL Shell:
\elseif DOXYGEN_PY
This document covers the Python APIs available in the MySQL Shell:
\endif

  - \ref XDevAPI - NoSQL Database API for MySQL and the MySQL Document Store.
  - \ref ShellAPI - Shell API and backward compatibility API for MySQL Servers not supporting the X DevAPI.
  - \ref AdminAPI - API for setting up and managing InnoDB Clusters, InnoDB ReplicaSets, and InnoDB ClusterSets.

The functionality of the APIs is exposed through modules and global objects which are automatically available when the MySQL Shell starts.

  - The \ref mysqlx module contains a complete development API to interact with MySQL Servers using a session through the X Protocol.
  - The \ref mysql module contains a lightweight development API to interact with MySQL Servers using a classic session.
  - The <a class ="el" href="classmysqlsh_1_1dba_1_1_dba.html">dba</a> global object enables you to administer InnoDB clusters using the AdminAPI.
  - The <a class ="el" href="classmysqlsh_1_1_shell.html">shell</a> global object gives access to general purpose functions and properties.
  - The <b>session</b><sup>1</sup> global object is available when a global session is established.
  - The <a class ="el" href="classmysqlsh_1_1mysqlx_1_1_schema.html">db</a> global object is available when the global session is established through the X protocol using a default database.
  - The \ref util global object that groups miscellaneous tools like upgrade checker and JSON import.
\if DOXYGEN_JS
  - The <a class ="el" href="classmysqlsh_1_1_os.html">os</a> global object gives access to functions which allow to interact with the operating system.
  - The <a class ="el" href="classmysqlsh_1_1_sys.html">sys</a> global object gives access to system specific parameters.
\endif

<sup>1</sup> The <b>session</b> global object might be either a <a class ="el" href="classmysqlsh_1_1mysql_1_1_classic_session.html">ClassicSession</a> or a <a class ="el" href="classmysqlsh_1_1mysqlx_1_1_session.html">Session</a> object depending on whether the global session was established using classic MySQL protocol or X protocol respectively.
For additional details look at the connect function in the <a class ="el" href="classmysqlsh_1_1_shell.html">shell</a> object.

For more information on the functionality these APIs provide see the following documentation:

  - The <a class ="el" href="http://dev.mysql.com/doc/refman/en/document-store.html">Using MySQL as a Document Store</a> documentation explains how to use X DevAPI to achieve a NoSQL-like MySQL database.
  - The <a class ="el" href="http://dev.mysql.com/doc/x-devapi-userguide/en/">X DevAPI user guide</a> provides details about and usage examples of the X DevAPI.
  - The <a class ="el" href="http://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-innodb-cluster.html">InnoDB Cluster user guide</a> explains how to use MySQL Shell and AdminAPI to set up and administer a highly available InnoDB Cluster.
  - The <a class ="el" href="http://dev.mysql.com/doc/refman/en/group-replication.html">Group Replication</a> documentation provides detailed documentation on the replication group which InnoDB Cluster utilizes.
*/
