public BaseReader define_request(String path, Type response_type) {
     Uri uri = new Uri(String.Format("{0}/v{1}/{2}.json", endpoint, API_VERSION, path));
     if (_uri != uri) {
         _response_type = response_type;
         last_meta = null;
     }
     _uri = uri;
     return this;
 }
        public BaseResponse read_next_page() {
            if (!has_next_page()) {
                return null;
            }

            parameter("page", next_page());
            if (_per_page != 0) {
                parameter("per_page", _per_page);
            }

            var session = new OAuthSession(oath_context(), _uri, _uri, _uri);
            var request = session.Request().Get().ForUri(parameterize_uri());
            BaseResponse response = (BaseResponse)JsonConvert.DeserializeObject(request.ToString(), _response_type, json_settings());
            if (response.meta.status_code != 200) {
                throw new Exception("Error talking to StorEdge: " + response.meta.status_message);
            }
            last_meta = response.meta;
            return response;
        }
 public void reset() {
     last_meta = null;
 }
 public BaseReader per_page(int per_page) {
     _per_page = per_page;
     last_meta = null;
     return this;
 }