/**
* @classdesc
* Represents the current configuration of CompleteFTP server. Instances of this class should be obtained using
* {@link system.getConfig}.
*
* IMPORTANT! No changes are made to the configuration until {@link Config#applyChanges applyChanges} is called,
* otherwise you will wonder why nothing works.
*
* @class
* @hideconstructor
*/
Config = function () {
/**
* Provides the APIs for managing CompleteFTP users.
*
* @type {UserManager}
*/
this.users = null;
/**
* Provides the APIs for managing CompleteFTP folders.
*
* @type {FolderManager}
*/
this.folders = null;
/**
* Provides the APIs for managing CompleteFTP groups.
*
* @type {GroupManager}
*/
this.groups = null;
/**
* A list of all CompleteFTP sites.
*
* @type {Site[]}
*/
this.sites = null;
/**
* Contains information about the password-related settings that control how users' passwords are dealt with.
*
* @type {PasswordPolicy}
*/
this.passwordPolicy = null;
/**
* Applies changes to the CompleteFTP server.
*
* @method
*/
this.applyChanges = function () { }
}