code: function Client (config) {
      this.token = null
      this.public_key = config.public_key
      this.secret_key = config.secret_key
  
      this.baseUrl = 'https://api.marketcloud.it'
  
      // Marketcloud's api is versioned by URL
      // for instance, the current api is api.marketcloud.it/v0/<endpoint>
      this.apiVersion = 'v0'
  
      // If this is true, then api responses with status code >= 400
      //  are rejected as errors.
      //  If set to false all responses from server are resolved
      //
      //  In both cases, "failures" are rejected.
      this.rejectApiErrors = config.rejectApiErrors || true
  
      // When the client is unable to re-authenticate for a number of times that
      // exceeds MAX_RETRIES
      this.throwErrorWhenOutOfRetries = config.throwErrorWhenOutOfRetries || true
  
      // Creating resources instances
      for (var endpointName in endpoints) {
        var e = new endpoints[endpointName](this)
        this[e.name] = e
      }
  
      this.RETRIES = 0
      this.MAX_RETRIES = 2
  
      // This is the property that will hold a reference to the last
      // request's configuration.
      this.LAST_REQUEST = null
    }
docs: /*
  
  [Client The client's instance]
  
  @param {string} config.public_key The application's public key
  @param {string} config.secret_key The application's secret key