"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.BaseResource = void 0;

require("core-js/modules/es.array.concat.js");

require("core-js/modules/es.object.define-property.js");

var _errors = require("./errors");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }

var BaseResource = /*#__PURE__*/function () {
  function BaseResource() {
    _classCallCheck(this, BaseResource);
  }

  _createClass(BaseResource, null, [{
    key: "resourceName",
    get:
    /**
     * Name of the resource.
     */
    function get() {
      throw new _errors.NotImplementedError();
    }
    /**
     * The name of the service the resource belongs to.
     */

  }, {
    key: "serviceName",
    get: function get() {
      throw new _errors.NotImplementedError();
    }
    /**
     * The path to the resource on the API server.
     */

  }, {
    key: "path",
    get: function get() {
      return "service/".concat(this.serviceName, "/").concat(this.resourceName, "/");
    }
  }]);

  return BaseResource;
}();

exports.BaseResource = BaseResource;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vYmFzZS1yZXNvdXJjZS50cyJdLCJuYW1lcyI6WyJCYXNlUmVzb3VyY2UiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwic2VydmljZU5hbWUiLCJyZXNvdXJjZU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7O0lBRWFBLFk7Ozs7Ozs7O0FBQ1g7QUFDRjtBQUNBO0FBQ0UsbUJBQXlDO0FBQ3ZDLFlBQU0sSUFBSUMsMkJBQUosRUFBTjtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7O1NBQ0UsZUFBd0M7QUFDdEMsWUFBTSxJQUFJQSwyQkFBSixFQUFOO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7Ozs7U0FDRSxlQUFpQztBQUMvQiwrQkFBa0IsS0FBS0MsV0FBdkIsY0FBc0MsS0FBS0MsWUFBM0M7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdEltcGxlbWVudGVkRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnNcIjtcblxuZXhwb3J0IGNsYXNzIEJhc2VSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHJlc291cmNlTmFtZSgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdGhlIHJlc291cmNlIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHJlc291cmNlIG9uIHRoZSBBUEkgc2VydmVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgcGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2VydmljZS8ke3RoaXMuc2VydmljZU5hbWV9LyR7dGhpcy5yZXNvdXJjZU5hbWV9L2A7XG4gIH1cbn1cbiJdfQ==