code: function ClientRequest(client, opts, endpoint, head, body, date, callback, middlewares) {
      this.client = client;
      this.opts = opts;
      this.endpoint = endpoint;
      this.head = head;
      this.body = body;
      this.date = date || Date;
      this.callback = callback;
      this.id = uuid.v4();
      this.isCanceled = false;
      this.state = ClientRequestStates.initialized;
      this.timestamp = this.date.now();
      this.middlewareStack = new middleware.MiddlewareStack(middlewares || []);
  }
docs: /* jshint maxparams: 8