Source: bemap-services-v2/acl/bemap-geoserver-service-info.js

/**
 * BeNomad BeMap JavaScript API - GeoServerServiceInfo
 *
 * One entry in `GeoServerInfoResponse.servicesInfo[]`. Describes a single
 * service available for the selected geoserver. Mirrors the server DTO
 * `ServiceInfoFront`:
 *
 *   {
 *     "fieldName":   "routingService",
 *     "serviceName": "Routing",
 *     "title":       "Routing",
 *     "description": "Allow to perform routing computation"
 *   }
 *
 * @since 1.5.0
 * @public
 * @constructor
 */
bemap.GeoServerServiceInfo = function(options) {
    var opts = options || {};
    this.fieldName = opts.fieldName || null;
    this.serviceName = opts.serviceName || null;
    this.title = opts.title || null;
    this.description = opts.description || null;
};

/** Java field name (e.g. `"routingService"`). */
bemap.GeoServerServiceInfo.prototype.getFieldName = function() { return this.fieldName; };
/** Short identifier (e.g. `"Routing"`, `"Geocoding"`, `"NearPoi"`). */
bemap.GeoServerServiceInfo.prototype.getServiceName = function() { return this.serviceName; };
/** Human-readable title. */
bemap.GeoServerServiceInfo.prototype.getTitle = function() { return this.title; };
/** Human-readable description. */
bemap.GeoServerServiceInfo.prototype.getDescription = function() { return this.description; };

bemap.GeoServerServiceInfo.fromJson = function(raw) {
    if (!raw) return new bemap.GeoServerServiceInfo();
    return new bemap.GeoServerServiceInfo({
        fieldName: raw.fieldName,
        serviceName: raw.serviceName,
        title: raw.title,
        description: raw.description
    });
};