Not intended to be called directly, ["exec\_request" in GitLab::API](https://metacpan.org/pod/GitLab::API#exec_request) constructs the instance itself.
Arguments:
- `$api`
The [GitLab::API](https://metacpan.org/pod/GitLab::API) instance that will be used to issue calls.
- `$url`
[URI](https://metacpan.org/pod/URI) instance for the call.
- `%extra`
Extra arguments.
Currently only `per_page` is used, which controls how many entities in a page can the iterator request.
- next()
Returns the next element or `undef` if there are no elements left.
Automatically downloads next page from API if required.
- reset()
$iterator->reset
Resets the iterator to the original state that can be reused.
Clears all data and error flags, so that the requests can be issued again.
- rewind()
$iterator->rewind
Resets the iterator to the position before the first element, so that the call to `next` will return the first element.
Note that this will **not** cause the iterator to re-download all pages.
Use `reset` for this purpose.
- all()
my @items = @{ $iterator->all };
Downloads all pages and returns an arrayref of all elements.
## Internal methods
- next\_block()
Tries to download the next page from the GitLab API.
Returns false if no page left or an error occured.
# AUTHOR
Roman Lacko <[xlacko1@fi.muni.cz](https://metacpan.org/pod/xlacko1@fi.muni.cz)>