Provided by: libgitlab-api-v4-perl_0.04-2_all bug

NAME

       GitLab::API::v4 - A complete GitLab API v4 client.

SYNOPSIS

           use GitLab::API::v4;

           my $api = GitLab::API::v4->new(
               url           => $v4_api_url,
               private_token => $token,
           );

           my $branches = $api->branches( $project_id );

DESCRIPTION

       This module provides a one-to-one interface with the GitLab API v4.  Much is not
       documented here as it would just be duplicating GitLab's own API Documentation
       <http://doc.gitlab.com/ce/api/README.html>.

       Note that this distribution also includes the gitlab-api-v4 command-line interface (CLI).

   UPGRADING
       If you are upgrading from GitLab::API::v3 make sure you read:

       <https://docs.gitlab.com/ce/api/v3_to_v4.html>

       Also, review the "Changes" file included in the distribution as it outlines the changes
       made to convert the v3 module to v4:

       <https://github.com/bluefeet/GitLab-API-v4/blob/master/Changes>

       Finally, be aware that many methods were added, removed, renamed, and/or altered.  If you
       want to review exactly what was changed you can use GitHub's compare tool:

       <https://github.com/bluefeet/GitLab-API-v4/compare/72e384775c9570f60f8ef68dee3a1eecd347fb69...master>

       Or clone the repo and run this command:

       "git diff 72e384775c9570f60f8ef68dee3a1eecd347fb69..HEAD -- author/sections/"

   CREDENTIALS
       Authentication credentials may be defined by setting either the "access_token" or
       "private_token" arguments.

       If no credentials are supplied then the client will be anonymous and greatly limited in
       what it can do with the API.

   CONSTANTS
       The GitLab API, in rare cases, uses a numeric value to represent a state.  To make life
       easier the GitLab::API::v4::Constants module exposes these states as named variables.

   EXCEPTIONS
       The API methods will all throw (hopefully) a useful exception if an unsuccessful response
       is received from the API.  That is except for "GET" requests that return a 404 response -
       these will return "undef" for methods that return a value.

       If you'd like to catch and handle these exceptions consider using Try::Tiny.

   LOGGING
       This module uses Log::Any and produces some debug messages here and there, but the most
       useful bits are the info messages produced just before each API call.

   PROJECT ID
       Note that many API calls require a $project_id.  This can be specified as either a numeric
       project "ID", or as a "NAMESPACE_PATH/PROJECT_PATH" in many cases.  Perhaps even all
       cases, but the GitLab documentation on this point is vague.

REQUIRED ARGUMENTS

   url
       The URL to your v4 API endpoint.  Typically this will be something like
       "https://git.example.com/api/v4".

OPTIONAL ARGUMENTS

   access_token
       A GitLab API OAuth2 token.  If set then "private_token" may not be set.

       See <https://docs.gitlab.com/ce/api/#oauth2-tokens>.

   private_token
       A GitLab API personal token.  If set then "access_token" may not be set.

       See <https://docs.gitlab.com/ce/api/#personal-access-tokens>.

   sudo_user
       The user to execute API calls as.  You may find it more useful to use the "sudo" method
       instead.

       See <https://docs.gitlab.com/ce/api/#sudo>.

   retries
       The number of times the request should be retried in case it does not succeed.  Defaults
       to 0 (false), meaning that a failed request will not be retried.

   rest_client
       An instance of GitLab::API::v4::RESTClient.  Typically you will not be setting this as it
       defaults to a new instance and customization should not be necessary.

UTILITY METHODS

   paginator
           my $paginator = $api->paginator( $method, @method_args );

           my $members = $api->paginator('group_members', $group_id);
           while (my $member = $members->next()) {
               ...
           }

           my $users_pager = $api->paginator('users');
           while (my $users = $users_pager->next_page()) {
               ...
           }

           my $all_open_issues = $api->paginator(
               'issues',
               $project_id,
               { state=>'opened' },
           )->all();

       Given a method who supports the "page" and "per_page" parameters, and returns an array
       ref, this will return a GitLab::API::v4::Paginator object that will allow you to walk the
       records one page or one record at a time.

   sudo
           $api->sudo('fred')->create_issue(...);

       Returns a new instance of GitLab::API::v4 with the "sudo_user" argument set.

       See <https://docs.gitlab.com/ce/api/#sudo>.

AWARD EMOJI METHODS

       See <https://docs.gitlab.com/ce/api/award_emoji.html>.

   issue_award_emojis
           my $award_emojis = $api->issue_award_emojis(
               $project_id,
               $issue_iid,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/award_emoji" and returns
       the decoded/deserialized response body.

   merge_request_award_emojis
           my $award_emojis = $api->merge_request_award_emojis(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/award_emoji" and returns the
       decoded/deserialized response body.

   snippet_award_emojis
           my $award_emojis = $api->snippet_award_emojis(
               $project_id,
               $merge_request_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_id/award_emoji" and returns the
       decoded/deserialized response body.

   issue_award_emoji
           my $award_emoji = $api->issue_award_emoji(
               $project_id,
               $issue_iid,
               $award_id,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/award_emoji/:award_id"
       and returns the decoded/deserialized response body.

   merge_request_award_emoji
           my $award_emoji = $api->merge_request_award_emoji(
               $project_id,
               $merge_request_iid,
               $award_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/award_emoji/:award_id" and
       returns the decoded/deserialized response body.

   snippet_award_emoji
           my $award_emoji = $api->snippet_award_emoji(
               $project_id,
               $snippet_id,
               $award_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/snippets/:snippet_id/award_emoji/:award_id" and returns the
       decoded/deserialized response body.

   create_issue_award_emoji
           my $award_emoji = $api->create_issue_award_emoji(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/award_emoji" and
       returns the decoded/deserialized response body.

   create_merge_request_award_emoji
           my $award_emoji = $api->create_merge_request_award_emoji(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/award_emoji" and returns the
       decoded/deserialized response body.

   create_snippet_award_emoji
           my $award_emoji = $api->create_snippet_award_emoji(
               $project_id,
               $snippet_id,
           );

       Sends a "POST" request to "/projects/:project_id/snippets/:snippet_id/award_emoji" and
       returns the decoded/deserialized response body.

   delete_issue_award_emoji
           my $award_emoji = $api->delete_issue_award_emoji(
               $project_id,
               $issue_id,
               $award_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/issues/:issue_id/award_emoji/:award_id"
       and returns the decoded/deserialized response body.

   delete_merge_request_award_emoji
           my $award_emoji = $api->delete_merge_request_award_emoji(
               $project_id,
               $merge_request_id,
               $award_id,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/merge_requests/:merge_request_id/award_emoji/:award_id" and returns
       the decoded/deserialized response body.

   delete_snippet_award_emoji
           my $award_emoji = $api->delete_snippet_award_emoji(
               $project_id,
               $snippet_id,
               $award_id,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/snippets/:snippet_id/award_emoji/:award_id" and returns the
       decoded/deserialized response body.

   issue_note_award_emojis
           my $award_emojis = $api->issue_note_award_emojis(
               $project_id,
               $issue_iid,
               $note_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji" and returns the
       decoded/deserialized response body.

   issue_note_award_emoji
           my $award_emoji = $api->issue_note_award_emoji(
               $project_id,
               $issue_iid,
               $note_id,
               $award_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id" and returns
       the decoded/deserialized response body.

   create_issue_note_award_emoji
           my $award_emoji = $api->create_issue_note_award_emoji(
               $project_id,
               $issue_iid,
               $note_id,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji" and returns the
       decoded/deserialized response body.

   delete_issue_note_award_emoji
           my $award_emoji = $api->delete_issue_note_award_emoji(
               $project_id,
               $issue_iid,
               $note_id,
               $award_id,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id" and returns
       the decoded/deserialized response body.

   merge_request_note_award_emojis
           my $award_emojis = $api->merge_request_note_award_emojis(
               $project_id,
               $merge_request_iid,
               $note_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji" and
       returns the decoded/deserialized response body.

   merge_request_note_award_emoji
           my $award_emoji = $api->merge_request_note_award_emoji(
               $project_id,
               $merge_request_iid,
               $note_id,
               $award_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id"
       and returns the decoded/deserialized response body.

   create_merge_request_note_award_emoji
           my $award_emoji = $api->create_merge_request_note_award_emoji(
               $project_id,
               $merge_request_iid,
               $note_id,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji" and
       returns the decoded/deserialized response body.

   delete_merge_request_note_award_emoji
           my $award_emoji = $api->delete_merge_request_note_award_emoji(
               $project_id,
               $merge_request_iid,
               $note_id,
               $award_id,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id"
       and returns the decoded/deserialized response body.

BRANCH METHODS

       See <https://doc.gitlab.com/ce/api/branches.html>.

   branches
           my $branches = $api->branches(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/repository/branches" and returns the
       decoded/deserialized response body.

   branch
           my $branch = $api->branch(
               $project_id,
               $branch_name,
           );

       Sends a "GET" request to "/projects/:project_id/repository/branches/:branch_name" and
       returns the decoded/deserialized response body.

   create_branch
           my $branch = $api->create_branch(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/repository/branches" and returns the
       decoded/deserialized response body.

   delete_branch
           $api->delete_branch(
               $project_id,
               $branch_name,
           );

       Sends a "DELETE" request to "/projects/:project_id/repository/branches/:branch_name".

   delete_merged_branches
           $api->delete_merged_branches(
               $project_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/repository/merged_branches".

BROADCAST MESSAGE METHODS

       See <https://docs.gitlab.com/ce/api/broadcast_messages.html>.

   broadcast_messages
           my $messages = $api->broadcast_messages();

       Sends a "GET" request to "/broadcast_messages" and returns the decoded/deserialized
       response body.

   broadcast_message
           my $message = $api->broadcast_message(
               $message_id,
           );

       Sends a "GET" request to "/broadcast_messages/:message_id" and returns the
       decoded/deserialized response body.

   create_broadcast_message
           my $message = $api->create_broadcast_message(
               \%params,
           );

       Sends a "POST" request to "/broadcast_messages" and returns the decoded/deserialized
       response body.

   edit_broadcast_message
           my $message = $api->edit_broadcast_message(
               $message_id,
               \%params,
           );

       Sends a "PUT" request to "/broadcast_messages/:message_id" and returns the
       decoded/deserialized response body.

   delete_broadcast_message
           $api->delete_broadcast_message(
               $message_id,
           );

       Sends a "DELETE" request to "/broadcast_messages/:message_id".

PROJECT LEVEL VARIABLE METHODS

       See <https://docs.gitlab.com/ce/api/project_level_variables.html>.

   project_variables
           my $variables = $api->project_variables(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/variables" and returns the
       decoded/deserialized response body.

   project_variable
           my $variable = $api->project_variable(
               $project_id,
               $variable_key,
           );

       Sends a "GET" request to "/projects/:project_id/variables/:variable_key" and returns the
       decoded/deserialized response body.

   create_project_variable
           my $variable = $api->create_project_variable(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/variables" and returns the
       decoded/deserialized response body.

   edit_project_variable
           my $variable = $api->edit_project_variable(
               $project_id,
               $variable_key,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/variables/:variable_key" and returns the
       decoded/deserialized response body.

   delete_project_variable
           $api->delete_project_variable(
               $project_id,
               $variable_key,
           );

       Sends a "DELETE" request to "/projects/:project_id/variables/:variable_key".

GROUP LEVEL VARIABLE METHODS

       See <https://docs.gitlab.com/ce/api/group_level_variables.html>.

   group_variables
           my $variables = $api->group_variables(
               $group_id,
           );

       Sends a "GET" request to "/groups/:group_id/variables" and returns the
       decoded/deserialized response body.

   group_variable
           my $variable = $api->group_variable(
               $group_id,
               $variable_key,
           );

       Sends a "GET" request to "/groups/:group_id/variables/:variable_key" and returns the
       decoded/deserialized response body.

   create_group_variable
           my $variable = $api->create_group_variable(
               $group_id,
               \%params,
           );

       Sends a "POST" request to "/groups/:group_id/variables" and returns the
       decoded/deserialized response body.

   edit_group_variable
           my $variable = $api->edit_group_variable(
               $group_id,
               $variable_key,
               \%params,
           );

       Sends a "PUT" request to "/groups/:group_id/variables/:variable_key" and returns the
       decoded/deserialized response body.

   delete_group_variable
           $api->delete_group_variable(
               $group_id,
               $variable_key,
           );

       Sends a "DELETE" request to "/groups/:group_id/variables/:variable_key".

COMMIT METHODS

       See <https://doc.gitlab.com/ce/api/commits.html>.

   commits
           my $commits = $api->commits(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/commits" and returns the
       decoded/deserialized response body.

   create_commit
           my $commit = $api->create_commit(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/repository/commits" and returns the
       decoded/deserialized response body.

   commit
           my $commit = $api->commit(
               $project_id,
               $commit_sha,
           );

       Sends a "GET" request to "/projects/:project_id/repository/commits/:commit_sha" and
       returns the decoded/deserialized response body.

   cherry_pick_commit
           my $commit = $api->cherry_pick_commit(
               $project_id,
               $commit_sha,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/repository/commits/:commit_sha/cherry_pick" and returns the
       decoded/deserialized response body.

   commit_diff
           my $diff = $api->commit_diff(
               $project_id,
               $commit_sha,
           );

       Sends a "GET" request to "/projects/:project_id/repository/commits/:commit_sha/diff" and
       returns the decoded/deserialized response body.

   commit_comments
           my $comments = $api->commit_comments(
               $project_id,
               $commit_sha,
           );

       Sends a "GET" request to "/projects/:project_id/repository/commits/:commit_sha/comments"
       and returns the decoded/deserialized response body.

   create_commit_comment
           $api->create_commit_comment(
               $project_id,
               $commit_sha,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/repository/commits/:commit_sha/comments".

   commit_statuses
           my $build_statuses = $api->commit_statuses(
               $project_id,
               $commit_sha,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/commits/:commit_sha/statuses"
       and returns the decoded/deserialized response body.

   create_commit_status
           my $build_status = $api->create_commit_status(
               $project_id,
               $commit_sha,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/statuses/:commit_sha" and returns the
       decoded/deserialized response body.

CUSTOM ATTRIBUTE METHODS

       See <https://docs.gitlab.com/ce/api/custom_attributes.html>.

   custom_user_attributes
           my $attributes = $api->custom_user_attributes(
               $user_id,
           );

       Sends a "GET" request to "/users/:user_id/custom_attributes" and returns the
       decoded/deserialized response body.

   custom_group_attributes
           my $attributes = $api->custom_group_attributes(
               $group_id,
           );

       Sends a "GET" request to "/groups/:group_id/custom_attributes" and returns the
       decoded/deserialized response body.

   custom_project_attributes
           my $attributes = $api->custom_project_attributes(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/custom_attributes" and returns the
       decoded/deserialized response body.

   custom_user_attribute
           my $attribute = $api->custom_user_attribute(
               $user_id,
               $attribute_key,
           );

       Sends a "GET" request to "/users/:user_id/custom_attributes/:attribute_key" and returns
       the decoded/deserialized response body.

   custom_group_attribute
           my $attribute = $api->custom_group_attribute(
               $group_id,
               $attribute_key,
           );

       Sends a "GET" request to "/groups/:group_id/custom_attributes/:attribute_key" and returns
       the decoded/deserialized response body.

   custom_project_attribute
           my $attribute = $api->custom_project_attribute(
               $project_id,
               $attribute_key,
           );

       Sends a "GET" request to "/projects/:project_id/custom_attributes/:attribute_key" and
       returns the decoded/deserialized response body.

   set_custom_user_attribute
           my $attribute = $api->set_custom_user_attribute(
               $user_id,
               $attribute_key,
               \%params,
           );

       Sends a "PUT" request to "/users/:user_id/custom_attributes/:attribute_key" and returns
       the decoded/deserialized response body.

   set_custom_group_attribute
           my $attribute = $api->set_custom_group_attribute(
               $group_id,
               $attribute_key,
               \%params,
           );

       Sends a "PUT" request to "/groups/:group_id/custom_attributes/:attribute_key" and returns
       the decoded/deserialized response body.

   set_custom_project_attribute
           my $attribute = $api->set_custom_project_attribute(
               $project_id,
               $attribute_key,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/custom_attributes/:attribute_key" and
       returns the decoded/deserialized response body.

   delete_custom_user_attribute
           $api->delete_custom_user_attribute(
               $user_id,
               $attribute_key,
           );

       Sends a "DELETE" request to "/users/:user_id/custom_attributes/:attribute_key".

   delete_custom_group_attribute
           $api->delete_custom_group_attribute(
               $group_id,
               $attribute_key,
           );

       Sends a "DELETE" request to "/groups/:group_id/custom_attributes/:attribute_key".

   delete_custom_project_attribute
           $api->delete_custom_project_attribute(
               $project_id,
               $attribute_key,
           );

       Sends a "DELETE" request to "/projects/:project_id/custom_attributes/:attribute_key".

DEPLOYMENT METHODS

       See <https://docs.gitlab.com/ce/api/deployments.html>.

   deployments
           my $deployments = $api->deployments(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/deployments" and returns the
       decoded/deserialized response body.

   deployment
           my $deployment = $api->deployment(
               $project_id,
               $deployment_id,
           );

       Sends a "GET" request to "/projects/:project_id/deployments/:deployment_id" and returns
       the decoded/deserialized response body.

DEPLOY KEY METHODS

       See <https://docs.gitlab.com/ce/api/deploy_keys.html>.

   all_deploy_keys
           my $keys = $api->all_deploy_keys();

       Sends a "GET" request to "/deploy_keys" and returns the decoded/deserialized response
       body.

   deploy_keys
           my $keys = $api->deploy_keys(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/deploy_keys" and returns the
       decoded/deserialized response body.

   deploy_key
           my $key = $api->deploy_key(
               $project_id,
               $key_id,
           );

       Sends a "GET" request to "/projects/:project_id/deploy_keys/:key_id" and returns the
       decoded/deserialized response body.

   create_deploy_key
           my $key = $api->create_deploy_key(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/deploy_keys" and returns the
       decoded/deserialized response body.

   delete_deploy_key
           $api->delete_deploy_key(
               $project_id,
               $key_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/deploy_keys/:key_id".

   enable_deploy_key
           my $key = $api->enable_deploy_key(
               $project_id,
               $key_id,
           );

       Sends a "POST" request to "/projects/:project_id/deploy_keys/:key_id/enable" and returns
       the decoded/deserialized response body.

ENVIRONMENT METHODS

       See <https://docs.gitlab.com/ce/api/environments.html>.

   environments
           my $environments = $api->environments(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/environments" and returns the
       decoded/deserialized response body.

   create_environment
           my $environment = $api->create_environment(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/environments" and returns the
       decoded/deserialized response body.

   edit_environment
           my $environment = $api->edit_environment(
               $project_id,
               $environments_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/environments/:environments_id" and returns
       the decoded/deserialized response body.

   delete_environment
           $api->delete_environment(
               $project_id,
               $environment_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/environments/:environment_id".

   stop_environment
           my $environment = $api->stop_environment(
               $project_id,
               $environment_id,
           );

       Sends a "POST" request to "/projects/:project_id/environments/:environment_id/stop" and
       returns the decoded/deserialized response body.

EVENT METHODS

       See <https://docs.gitlab.com/ce/api/events.html>.

   all_events
           my $events = $api->all_events(
               \%params,
           );

       Sends a "GET" request to "/events" and returns the decoded/deserialized response body.

   user_events
           my $events = $api->user_events(
               $user_id,
               \%params,
           );

       Sends a "GET" request to "/users/:user_id/events" and returns the decoded/deserialized
       response body.

   project_events
           my $events = $api->project_events(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/events" and returns the
       decoded/deserialized response body.

FEATURE FLAG METHODS

       See <https://docs.gitlab.com/ce/api/features.html>.

   features
           my $features = $api->features();

       Sends a "GET" request to "/features" and returns the decoded/deserialized response body.

   set_feature
           my $feature = $api->set_feature(
               $name,
               \%params,
           );

       Sends a "POST" request to "/features/:name" and returns the decoded/deserialized response
       body.

GITIGNORES TEMPLATE METHODS

       See <https://docs.gitlab.com/ce/api/templates/gitignores.html>.

   gitignores_templates
           my $templates = $api->gitignores_templates();

       Sends a "GET" request to "/templates/gitignores" and returns the decoded/deserialized
       response body.

   gitignores_template
           my $template = $api->gitignores_template(
               $template_key,
           );

       Sends a "GET" request to "/templates/gitignores/:template_key" and returns the
       decoded/deserialized response body.

GITLAB CI CONFIG TEMPLATE METHODS

       See <https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html>.

   gitlab_ci_ymls_templates
           my $templates = $api->gitlab_ci_ymls_templates();

       Sends a "GET" request to "/templates/gitlab_ci_ymls" and returns the decoded/deserialized
       response body.

   gitlab_ci_ymls_template
           my $template = $api->gitlab_ci_ymls_template(
               $template_key,
           );

       Sends a "GET" request to "/templates/gitlab_ci_ymls/:template_key" and returns the
       decoded/deserialized response body.

GROUP METHODS

       See <https://docs.gitlab.com/ce/api/groups.html>.

   groups
           my $groups = $api->groups(
               \%params,
           );

       Sends a "GET" request to "/groups" and returns the decoded/deserialized response body.

   group_subgroups
           my $subgroups = $api->group_subgroups(
               $group_id,
               \%params,
           );

       Sends a "GET" request to "/groups/:group_id/subgroups" and returns the
       decoded/deserialized response body.

   group_projects
           my $projects = $api->group_projects(
               $group_id,
               \%params,
           );

       Sends a "GET" request to "/groups/:group_id/projects" and returns the decoded/deserialized
       response body.

   group
           my $group = $api->group(
               $group_id,
           );

       Sends a "GET" request to "/groups/:group_id" and returns the decoded/deserialized response
       body.

   create_group
           $api->create_group(
               \%params,
           );

       Sends a "POST" request to "/groups".

   transfer_project_to_group
           $api->transfer_project_to_group(
               $group_id,
               $project_id,
           );

       Sends a "POST" request to "/groups/:group_id/projects/:project_id".

   edit_group
           my $group = $api->edit_group(
               $group_id,
               \%params,
           );

       Sends a "PUT" request to "/groups/:group_id" and returns the decoded/deserialized response
       body.

   delete_group
           $api->delete_group(
               $group_id,
           );

       Sends a "DELETE" request to "/groups/:group_id".

   sync_group_with_ldap
           $api->sync_group_with_ldap(
               $group_id,
           );

       Sends a "POST" request to "/groups/:group_id/ldap_sync".

   create_ldap_group_link
           $api->create_ldap_group_link(
               $group_id,
               \%params,
           );

       Sends a "POST" request to "/groups/:group_id/ldap_group_links".

   delete_ldap_group_link
           $api->delete_ldap_group_link(
               $group_id,
               $cn,
           );

       Sends a "DELETE" request to "/groups/:group_id/ldap_group_links/:cn".

   delete_ldap_provider_group_link
           $api->delete_ldap_provider_group_link(
               $group_id,
               $provider,
               $cn,
           );

       Sends a "DELETE" request to "/groups/:group_id/ldap_group_links/:provider/:cn".

GROUP AND PROJECT MEMBER METHODS

       See <https://docs.gitlab.com/ce/api/members.html>.

   group_members
           my $members = $api->group_members(
               $group_id,
               \%params,
           );

       Sends a "GET" request to "/groups/:group_id/members" and returns the decoded/deserialized
       response body.

   project_members
           my $members = $api->project_members(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/members" and returns the
       decoded/deserialized response body.

   group_member
           my $member = $api->group_member(
               $project_id,
               $user_id,
           );

       Sends a "GET" request to "/groups/:project_id/members/:user_id" and returns the
       decoded/deserialized response body.

   project_member
           my $member = $api->project_member(
               $project_id,
               $user_id,
           );

       Sends a "GET" request to "/projects/:project_id/members/:user_id" and returns the
       decoded/deserialized response body.

   add_group_member
           my $member = $api->add_group_member(
               $group_id,
               \%params,
           );

       Sends a "POST" request to "/groups/:group_id/members" and returns the decoded/deserialized
       response body.

   add_project_member
           my $member = $api->add_project_member(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/members" and returns the
       decoded/deserialized response body.

   update_group_member
           my $member = $api->update_group_member(
               $group_id,
               $user_id,
               \%params,
           );

       Sends a "PUT" request to "/groups/:group_id/members/:user_id" and returns the
       decoded/deserialized response body.

   update_project_member
           my $member = $api->update_project_member(
               $project_id,
               $user_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/members/:user_id" and returns the
       decoded/deserialized response body.

   remove_group_member
           $api->remove_group_member(
               $group_id,
               $user_id,
           );

       Sends a "DELETE" request to "/groups/:group_id/members/:user_id".

   remove_project_member
           $api->remove_project_member(
               $project_id,
               $user_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/members/:user_id".

ISSUE METHODS

       See <https://docs.gitlab.com/ce/api/issues.html>.

   global_issues
           my $issues = $api->global_issues(
               \%params,
           );

       Sends a "GET" request to "/issues" and returns the decoded/deserialized response body.

   group_issues
           my $issues = $api->group_issues(
               $group_id,
               \%params,
           );

       Sends a "GET" request to "/groups/:group_id/issues" and returns the decoded/deserialized
       response body.

   issues
           my $issues = $api->issues(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/issues" and returns the
       decoded/deserialized response body.

   issue
           my $issue = $api->issue(
               $project_id,
               $issue_iid,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid" and returns the
       decoded/deserialized response body.

   create_issue
           my $issue = $api->create_issue(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/issues" and returns the
       decoded/deserialized response body.

   edit_issue
           my $issue = $api->edit_issue(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/issues/:issue_iid" and returns the
       decoded/deserialized response body.

   delete_issue
           $api->delete_issue(
               $project_id,
               $issue_iid,
           );

       Sends a "DELETE" request to "/projects/:project_id/issues/:issue_iid".

   move_issue
           my $issue = $api->move_issue(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/move" and returns the
       decoded/deserialized response body.

   subscribe_to_issue
           my $issue = $api->subscribe_to_issue(
               $project_id,
               $issue_iid,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/subscribe" and returns
       the decoded/deserialized response body.

   unsubscribe_from_issue
           my $issue = $api->unsubscribe_from_issue(
               $project_id,
               $issue_iid,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/unsubscribe" and
       returns the decoded/deserialized response body.

   create_issue_todo
           my $todo = $api->create_issue_todo(
               $project_id,
               $issue_iid,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/todo" and returns the
       decoded/deserialized response body.

   set_issue_time_estimate
           my $tracking = $api->set_issue_time_estimate(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/time_estimate" and
       returns the decoded/deserialized response body.

   reset_issue_time_estimate
           my $tracking = $api->reset_issue_time_estimate(
               $project_id,
               $issue_iid,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/reset_time_estimate"
       and returns the decoded/deserialized response body.

   add_issue_spent_time
           my $tracking = $api->add_issue_spent_time(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/add_spent_time" and
       returns the decoded/deserialized response body.

   reset_issue_spent_time
           my $tracking = $api->reset_issue_spent_time(
               $project_id,
               $issue_iid,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/reset_spent_time" and
       returns the decoded/deserialized response body.

   issue_time_stats
           my $tracking = $api->issue_time_stats(
               $project_id,
               $issue_iid,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/time_stats" and returns
       the decoded/deserialized response body.

   issue_closed_by
           my $merge_requests = $api->issue_closed_by(
               $project_id,
               $issue_iid,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/closed_by" and returns
       the decoded/deserialized response body.

   issue_user_agent_detail
           my $user_agent = $api->issue_user_agent_detail(
               $project_id,
               $issue_iid,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/user_agent_detail" and
       returns the decoded/deserialized response body.

ISSUE BOARD METHODS

       See <https://docs.gitlab.com/ce/api/boards.html>.

   project_boards
           my $boards = $api->project_boards(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/boards" and returns the
       decoded/deserialized response body.

   project_board_lists
           my $lists = $api->project_board_lists(
               $project_id,
               $board_id,
           );

       Sends a "GET" request to "/projects/:project_id/boards/:board_id/lists" and returns the
       decoded/deserialized response body.

   project_board_list
           my $list = $api->project_board_list(
               $project_id,
               $board_id,
               $list_id,
           );

       Sends a "GET" request to "/projects/:project_id/boards/:board_id/lists/:list_id" and
       returns the decoded/deserialized response body.

   create_project_board_list
           my $list = $api->create_project_board_list(
               $project_id,
               $board_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/boards/:board_id/lists" and returns the
       decoded/deserialized response body.

   edit_project_board_list
           my $list = $api->edit_project_board_list(
               $project_id,
               $board_id,
               $list_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/boards/:board_id/lists/:list_id" and
       returns the decoded/deserialized response body.

   delete_project_board_list
           $api->delete_project_board_list(
               $project_id,
               $board_id,
               $list_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/boards/:board_id/lists/:list_id".

JOB METHODS

       See <https://docs.gitlab.com/ce/api/jobs.html>.

   jobs
           my $jobs = $api->jobs(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/jobs" and returns the decoded/deserialized
       response body.

   pipeline_jobs
           my $jobs = $api->pipeline_jobs(
               $project_id,
               $pipeline_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/pipelines/:pipeline_id/jobs" and returns
       the decoded/deserialized response body.

   job
           my $job = $api->job(
               $project_id,
               $job_id,
           );

       Sends a "GET" request to "/projects/:project_id/jobs/:job_id" and returns the
       decoded/deserialized response body.

   job_artifacts
           my $artifacts = $api->job_artifacts(
               $project_id,
               $job_id,
           );

       Sends a "GET" request to "/projects/:project_id/jobs/:job_id/artifacts" and returns the
       decoded/deserialized response body.

   job_artifacts_archive
           my $archive = $api->job_artifacts_archive(
               $project_id,
               $ref_name,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/jobs/artifacts/:ref_name/download" and
       returns the decoded/deserialized response body.

   job_artifacts_file
           my $file = $api->job_artifacts_file(
               $project_id,
               $job_id,
               $artifact_path,
           );

       Sends a "GET" request to "/projects/:project_id/jobs/:job_id/artifacts/:artifact_path" and
       returns the decoded/deserialized response body.

   job_trace_file
           my $file = $api->job_trace_file(
               $project_id,
               $job_id,
           );

       Sends a "GET" request to "/projects/:project_id/jobs/:job_id/trace" and returns the
       decoded/deserialized response body.

   cancel_job
           my $job = $api->cancel_job(
               $project_id,
               $job_id,
           );

       Sends a "POST" request to "/projects/:project_id/jobs/:job_id/cancel" and returns the
       decoded/deserialized response body.

   retry_job
           my $job = $api->retry_job(
               $project_id,
               $job_id,
           );

       Sends a "POST" request to "/projects/:project_id/jobs/:job_id/retry" and returns the
       decoded/deserialized response body.

   erase_job
           my $job = $api->erase_job(
               $project_id,
               $job_id,
           );

       Sends a "POST" request to "/projects/:project_id/jobs/:job_id/erase" and returns the
       decoded/deserialized response body.

   keep_job_artifacts
           my $job = $api->keep_job_artifacts(
               $project_id,
               $job_id,
           );

       Sends a "POST" request to "/projects/:project_id/jobs/:job_id/artifacts/keep" and returns
       the decoded/deserialized response body.

   play_job
           my $job = $api->play_job(
               $project_id,
               $job_id,
           );

       Sends a "POST" request to "/projects/:project_id/jobs/:job_id/play" and returns the
       decoded/deserialized response body.

KEY METHODS

       See <https://docs.gitlab.com/ce/api/keys.html>.

   key
           my $key = $api->key(
               $key_id,
           );

       Sends a "GET" request to "/keys/:key_id" and returns the decoded/deserialized response
       body.

LABEL METHODS

       See <https://docs.gitlab.com/ce/api/labels.html>.

   labels
           my $labels = $api->labels(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/labels" and returns the
       decoded/deserialized response body.

   create_label
           my $label = $api->create_label(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/labels" and returns the
       decoded/deserialized response body.

   delete_label
           $api->delete_label(
               $project_id,
               \%params,
           );

       Sends a "DELETE" request to "/projects/:project_id/labels".

   edit_label
           my $label = $api->edit_label(
               $project_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/labels" and returns the
       decoded/deserialized response body.

   subscribe_to_label
           my $label = $api->subscribe_to_label(
               $project_id,
               $label_id,
           );

       Sends a "POST" request to "/projects/:project_id/labels/:label_id/subscribe" and returns
       the decoded/deserialized response body.

   unsubscribe_from_label
           $api->unsubscribe_from_label(
               $project_id,
               $label_id,
           );

       Sends a "POST" request to "/projects/:project_id/labels/:label_id/unsubscribe".

MERGE REQUEST METHODS

       See <https://docs.gitlab.com/ce/api/merge_requests.html>.

   global_merge_requests
           my $merge_requests = $api->global_merge_requests(
               \%params,
           );

       Sends a "GET" request to "/merge_requests" and returns the decoded/deserialized response
       body.

   merge_requests
           my $merge_requests = $api->merge_requests(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/merge_requests" and returns the
       decoded/deserialized response body.

   merge_request
           my $merge_request = $api->merge_request(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to "/projects/:project_id/merge_requests/:merge_request_iid" and
       returns the decoded/deserialized response body.

   merge_request_commits
           my $commits = $api->merge_request_commits(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to "/projects/:project_id/merge_requests/:merge_request_iid/commits"
       and returns the decoded/deserialized response body.

   merge_request_with_changes
           my $merge_request = $api->merge_request_with_changes(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to "/projects/:project_id/merge_requests/:merge_request_iid/changes"
       and returns the decoded/deserialized response body.

   create_merge_request
           my $merge_request = $api->create_merge_request(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/merge_requests" and returns the
       decoded/deserialized response body.

   edit_merge_request
           my $merge_request = $api->edit_merge_request(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/merge_requests/:merge_request_iid" and
       returns the decoded/deserialized response body.

   delete_merge_request
           $api->delete_merge_request(
               $project_id,
               $merge_request_iid,
           );

       Sends a "DELETE" request to "/projects/:project_id/merge_requests/:merge_request_iid".

   accept_merge_request
           my $merge_request = $api->accept_merge_request(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/merge_requests/:merge_request_iid/merge"
       and returns the decoded/deserialized response body.

   cancel_merge_when_pipeline_succeeds
           my $merge_request = $api->cancel_merge_when_pipeline_succeeds(
               $project_id,
               $merge_request_iid,
           );

       Sends a "PUT" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds"
       and returns the decoded/deserialized response body.

   merge_request_closes_issues
           my $issues = $api->merge_request_closes_issues(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/closes_issues" and returns the
       decoded/deserialized response body.

   subscribe_to_merge_request
           my $merge_request = $api->subscribe_to_merge_request(
               $project_id,
               $merge_request_iid,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/subscribe" and returns the
       decoded/deserialized response body.

   unsubscribe_from_merge_request
           my $merge_request = $api->unsubscribe_from_merge_request(
               $project_id,
               $merge_request_iid,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/unsubscribe" and returns the
       decoded/deserialized response body.

   create_merge_request_todo
           my $todo = $api->create_merge_request_todo(
               $project_id,
               $merge_request_iid,
           );

       Sends a "POST" request to "/projects/:project_id/merge_requests/:merge_request_iid/todo"
       and returns the decoded/deserialized response body.

   merge_request_diff_versions
           my $versions = $api->merge_request_diff_versions(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/versions" and returns the
       decoded/deserialized response body.

   merge_request_diff_version
           my $version = $api->merge_request_diff_version(
               $project_id,
               $merge_request_iid,
               $version_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/versions/:version_id" and returns
       the decoded/deserialized response body.

   set_merge_request_time_estimate
           my $tracking = $api->set_merge_request_time_estimate(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/time_estimate" and returns the
       decoded/deserialized response body.

   reset_merge_request_time_estimate
           my $tracking = $api->reset_merge_request_time_estimate(
               $project_id,
               $merge_request_iid,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/reset_time_estimate" and returns
       the decoded/deserialized response body.

   add_merge_request_spent_time
           my $tracking = $api->add_merge_request_spent_time(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/add_spent_time" and returns the
       decoded/deserialized response body.

   reset_merge_request_spent_time
           my $tracking = $api->reset_merge_request_spent_time(
               $project_id,
               $merge_request_iid,
           );

       Sends a "POST" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/reset_spent_time" and returns the
       decoded/deserialized response body.

   merge_request_time_stats
           my $tracking = $api->merge_request_time_stats(
               $project_id,
               $merge_request_iid,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/time_stats" and returns the
       decoded/deserialized response body.

PROJECT MILESTONE METHODS

       See <https://docs.gitlab.com/ce/api/milestones.html>.

   project_milestones
           my $milestones = $api->project_milestones(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/milestones" and returns the
       decoded/deserialized response body.

   project_milestone
           my $milestone = $api->project_milestone(
               $project_id,
               $milestone_id,
           );

       Sends a "GET" request to "/projects/:project_id/milestones/:milestone_id" and returns the
       decoded/deserialized response body.

   create_project_milestone
           my $milestone = $api->create_project_milestone(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/milestones" and returns the
       decoded/deserialized response body.

   edit_project_milestone
           my $milestone = $api->edit_project_milestone(
               $project_id,
               $milestone_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/milestones/:milestone_id" and returns the
       decoded/deserialized response body.

   project_milestone_issues
           my $issues = $api->project_milestone_issues(
               $project_id,
               $milestone_id,
           );

       Sends a "GET" request to "/projects/:project_id/milestones/:milestone_id/issues" and
       returns the decoded/deserialized response body.

   project_milestone_merge_requests
           my $merge_requests = $api->project_milestone_merge_requests(
               $project_id,
               $milestone_id,
           );

       Sends a "GET" request to "/projects/:project_id/milestones/:milestone_id/merge_requests"
       and returns the decoded/deserialized response body.

GROUP MILESTONE METHODS

       See <https://docs.gitlab.com/ce/api/group_milestones.html>.

   group_milestones
           my $milestones = $api->group_milestones(
               $group_id,
               \%params,
           );

       Sends a "GET" request to "/groups/:group_id/milestones" and returns the
       decoded/deserialized response body.

   group_milestone
           my $milestone = $api->group_milestone(
               $group_id,
               $milestone_id,
           );

       Sends a "GET" request to "/groups/:group_id/milestones/:milestone_id" and returns the
       decoded/deserialized response body.

   create_group_milestone
           my $milestone = $api->create_group_milestone(
               $group_id,
               \%params,
           );

       Sends a "POST" request to "/groups/:group_id/milestones" and returns the
       decoded/deserialized response body.

   edit_group_milestone
           my $milestone = $api->edit_group_milestone(
               $group_id,
               $milestone_id,
               \%params,
           );

       Sends a "PUT" request to "/groups/:group_id/milestones/:milestone_id" and returns the
       decoded/deserialized response body.

   group_milestone_issues
           my $issues = $api->group_milestone_issues(
               $group_id,
               $milestone_id,
           );

       Sends a "GET" request to "/groups/:group_id/milestones/:milestone_id/issues" and returns
       the decoded/deserialized response body.

   group_milestone_merge_requests
           my $merge_requests = $api->group_milestone_merge_requests(
               $group_id,
               $milestone_id,
           );

       Sends a "GET" request to "/groups/:group_id/milestones/:milestone_id/merge_requests" and
       returns the decoded/deserialized response body.

NAMESPACE METHODS

       See <https://docs.gitlab.com/ce/api/namespaces.html>.

   namespaces
           my $namespaces = $api->namespaces(
               \%params,
           );

       Sends a "GET" request to "/namespaces" and returns the decoded/deserialized response body.

   namespace
           my $namespace = $api->namespace(
               $namespace_id,
           );

       Sends a "GET" request to "/namespaces/:namespace_id" and returns the decoded/deserialized
       response body.

NOTE METHODS

       See <https://docs.gitlab.com/ce/api/notes.html>.

   issue_notes
           my $notes = $api->issue_notes(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/notes" and returns the
       decoded/deserialized response body.

   issue_note
           my $note = $api->issue_note(
               $project_id,
               $issue_iid,
               $note_id,
           );

       Sends a "GET" request to "/projects/:project_id/issues/:issue_iid/notes/:note_id" and
       returns the decoded/deserialized response body.

   create_issue_note
           my $note = $api->create_issue_note(
               $project_id,
               $issue_iid,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/issues/:issue_iid/notes" and returns the
       decoded/deserialized response body.

   edit_issue_note
           $api->edit_issue_note(
               $project_id,
               $issue_iid,
               $note_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/issues/:issue_iid/notes/:note_id".

   delete_issue_note
           $api->delete_issue_note(
               $project_id,
               $issue_iid,
               $note_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/issues/:issue_iid/notes/:note_id".

   snippet_notes
           my $notes = $api->snippet_notes(
               $project_id,
               $snippet_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/snippets/:snippet_id/notes" and returns
       the decoded/deserialized response body.

   snippet_note
           my $note = $api->snippet_note(
               $project_id,
               $snippet_id,
               $note_id,
           );

       Sends a "GET" request to "/projects/:project_id/snippets/:snippet_id/notes/:note_id" and
       returns the decoded/deserialized response body.

   create_snippet_note
           my $note = $api->create_snippet_note(
               $project_id,
               $snippet_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/snippets/:snippet_id/notes" and returns
       the decoded/deserialized response body.

   edit_snippet_note
           $api->edit_snippet_note(
               $project_id,
               $snippet_id,
               $note_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/snippets/:snippet_id/notes/:note_id".

   delete_snippet_note
           $api->delete_snippet_note(
               $project_id,
               $snippet_id,
               $note_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/snippets/:snippet_id/notes/:note_id".

   merge_request_notes
           my $notes = $api->merge_request_notes(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/merge_requests/:merge_request_iid/notes"
       and returns the decoded/deserialized response body.

   merge_request_note
           my $note = $api->merge_request_note(
               $project_id,
               $merge_request_iid,
               $note_id,
           );

       Sends a "GET" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id" and returns the
       decoded/deserialized response body.

   create_merge_request_note
           my $note = $api->create_merge_request_note(
               $project_id,
               $merge_request_iid,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/merge_requests/:merge_request_iid/notes"
       and returns the decoded/deserialized response body.

   edit_merge_request_note
           $api->edit_merge_request_note(
               $project_id,
               $merge_request_iid,
               $note_id,
               \%params,
           );

       Sends a "PUT" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id".

   delete_merge_request_note
           $api->delete_merge_request_note(
               $project_id,
               $merge_request_iid,
               $note_id,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id".

NOTIFICATION SETTING METHODS

       See <https://docs.gitlab.com/ce/api/notification_settings.html>.

   global_notification_settings
           my $settings = $api->global_notification_settings();

       Sends a "GET" request to "/notification_settings" and returns the decoded/deserialized
       response body.

   set_global_notification_settings
           my $settings = $api->set_global_notification_settings(
               \%params,
           );

       Sends a "PUT" request to "/notification_settings" and returns the decoded/deserialized
       response body.

   group_notification_settings
           my $settings = $api->group_notification_settings(
               $group_id,
           );

       Sends a "GET" request to "/groups/:group_id/notification_settings" and returns the
       decoded/deserialized response body.

   project_notification_settings
           my $settings = $api->project_notification_settings(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/notification_settings" and returns the
       decoded/deserialized response body.

   set_group_notification_settings
           my $settings = $api->set_group_notification_settings(
               $group_id,
               \%params,
           );

       Sends a "PUT" request to "/groups/:group_id/notification_settings" and returns the
       decoded/deserialized response body.

   set_project_notification_settings
           my $settings = $api->set_project_notification_settings(
               $project_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/notification_settings" and returns the
       decoded/deserialized response body.

OPEN SOURCE LICENSE TEMPLATE METHODS

       See <https://docs.gitlab.com/ce/api/templates/licenses.html>.

   license_templates
           my $templates = $api->license_templates(
               \%params,
           );

       Sends a "GET" request to "/templates/licenses" and returns the decoded/deserialized
       response body.

   license_template
           my $template = $api->license_template(
               $template_key,
               \%params,
           );

       Sends a "GET" request to "/templates/licenses/:template_key" and returns the
       decoded/deserialized response body.

PAGE DOMAIN METHODS

       See <https://docs.gitlab.com/ce/api/pages_domains.html>.

   global_pages_domains
           my $domains = $api->global_pages_domains();

       Sends a "GET" request to "/pages/domains" and returns the decoded/deserialized response
       body.

   pages_domains
           my $domains = $api->pages_domains(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/pages/domains" and returns the
       decoded/deserialized response body.

   pages_domain
           my $domain = $api->pages_domain(
               $project_id,
               $domain,
           );

       Sends a "GET" request to "/projects/:project_id/pages/domains/:domain" and returns the
       decoded/deserialized response body.

   create_pages_domain
           my $domain = $api->create_pages_domain(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/pages/domains" and returns the
       decoded/deserialized response body.

   edit_pages_domain
           my $domain = $api->edit_pages_domain(
               $project_id,
               $domain,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/pages/domains/:domain" and returns the
       decoded/deserialized response body.

   delete_pages_domain
           $api->delete_pages_domain(
               $project_id,
               $domain,
           );

       Sends a "DELETE" request to "/projects/:project_id/pages/domains/:domain".

PIPELINE METHODS

       See <https://docs.gitlab.com/ce/api/pipelines.html>.

   pipelines
           my $pipelines = $api->pipelines(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/pipelines" and returns the
       decoded/deserialized response body.

   pipeline
           my $pipeline = $api->pipeline(
               $project_id,
               $pipeline_id,
           );

       Sends a "GET" request to "/projects/:project_id/pipelines/:pipeline_id" and returns the
       decoded/deserialized response body.

   create_pipeline
           my $pipeline = $api->create_pipeline(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/pipeline" and returns the
       decoded/deserialized response body.

   retry_pipeline_jobs
           my $pipeline = $api->retry_pipeline_jobs(
               $project_id,
               $pipeline_id,
           );

       Sends a "POST" request to "/projects/:project_id/pipelines/:pipeline_id/retry" and returns
       the decoded/deserialized response body.

   cancel_pipeline_jobs
           my $pipeline = $api->cancel_pipeline_jobs(
               $project_id,
               $pipeline_id,
           );

       Sends a "POST" request to "/projects/:project_id/pipelines/:pipeline_id/cancel" and
       returns the decoded/deserialized response body.

PIPELINE TRIGGER METHODS

       See <https://docs.gitlab.com/ce/api/pipeline_triggers.html>.

   triggers
           my $triggers = $api->triggers(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/triggers" and returns the
       decoded/deserialized response body.

   trigger
           my $trigger = $api->trigger(
               $project_id,
               $trigger_id,
           );

       Sends a "GET" request to "/projects/:project_id/triggers/:trigger_id" and returns the
       decoded/deserialized response body.

   create_trigger
           my $trigger = $api->create_trigger(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/triggers" and returns the
       decoded/deserialized response body.

   edit_trigger
           my $trigger = $api->edit_trigger(
               $project_id,
               $trigger_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/triggers/:trigger_id" and returns the
       decoded/deserialized response body.

   take_ownership_of_trigger
           my $trigger = $api->take_ownership_of_trigger(
               $project_id,
               $trigger_id,
           );

       Sends a "POST" request to "/projects/:project_id/triggers/:trigger_id/take_ownership" and
       returns the decoded/deserialized response body.

   delete_trigger
           $api->delete_trigger(
               $project_id,
               $trigger_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/triggers/:trigger_id".

PIPELINE SCHEDULE METHODS

       See <https://docs.gitlab.com/ce/api/pipeline_schedules.html>.

   pipeline_schedules
           my $schedules = $api->pipeline_schedules(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/pipeline_schedules" and returns the
       decoded/deserialized response body.

   pipeline_schedule
           my $schedule = $api->pipeline_schedule(
               $project_id,
               $pipeline_schedule_id,
           );

       Sends a "GET" request to "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id"
       and returns the decoded/deserialized response body.

   create_pipeline_schedule
           my $schedule = $api->create_pipeline_schedule(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/pipeline_schedules" and returns the
       decoded/deserialized response body.

   edit_pipeline_schedule
           my $schedule = $api->edit_pipeline_schedule(
               $project_id,
               $pipeline_schedule_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id"
       and returns the decoded/deserialized response body.

   take_ownership_of_pipeline_schedule
           my $schedule = $api->take_ownership_of_pipeline_schedule(
               $project_id,
               $pipeline_schedule_id,
           );

       Sends a "POST" request to
       "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id/take_ownership" and
       returns the decoded/deserialized response body.

   delete_pipeline_schedule
           my $schedule = $api->delete_pipeline_schedule(
               $project_id,
               $pipeline_schedule_id,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id" and returns the
       decoded/deserialized response body.

   create_pipeline_schedule_variable
           my $variable = $api->create_pipeline_schedule_variable(
               $project_id,
               $pipeline_schedule_id,
               \%params,
           );

       Sends a "POST" request to
       "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables" and returns the
       decoded/deserialized response body.

   edit_pipeline_schedule_variable
           my $variable = $api->edit_pipeline_schedule_variable(
               $project_id,
               $pipeline_schedule_id,
               $variable_key,
               \%params,
           );

       Sends a "PUT" request to
       "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key"
       and returns the decoded/deserialized response body.

   delete_pipeline_schedule_variable
           my $variable = $api->delete_pipeline_schedule_variable(
               $project_id,
               $pipeline_schedule_id,
               $variable_key,
           );

       Sends a "DELETE" request to
       "/projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key"
       and returns the decoded/deserialized response body.

PROJECT METHODS

       See <https://docs.gitlab.com/ce/api/projects.html>.

   projects
           my $projects = $api->projects(
               \%params,
           );

       Sends a "GET" request to "/projects" and returns the decoded/deserialized response body.

   user_projects
           my $projects = $api->user_projects(
               $user_id,
               \%params,
           );

       Sends a "GET" request to "/users/:user_id/projects" and returns the decoded/deserialized
       response body.

   project
           my $project = $api->project(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id" and returns the decoded/deserialized
       response body.

   project_users
           my $users = $api->project_users(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/users" and returns the
       decoded/deserialized response body.

   create_project
           my $project = $api->create_project(
               \%params,
           );

       Sends a "POST" request to "/projects" and returns the decoded/deserialized response body.

   create_project_for_user
           $api->create_project_for_user(
               $user_id,
               \%params,
           );

       Sends a "POST" request to "/projects/user/:user_id".

   edit_project
           $api->edit_project(
               $project_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id".

   fork_project
           $api->fork_project(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/fork".

   project_forks
           my $forks = $api->project_forks(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/forks" and returns the
       decoded/deserialized response body.

   start_project
           my $project = $api->start_project(
               $project_id,
           );

       Sends a "POST" request to "/projects/:project_id/star" and returns the
       decoded/deserialized response body.

   unstar_project
           my $project = $api->unstar_project(
               $project_id,
           );

       Sends a "POST" request to "/projects/:project_id/unstar" and returns the
       decoded/deserialized response body.

   archive_project
           my $project = $api->archive_project(
               $project_id,
           );

       Sends a "POST" request to "/projects/:project_id/archive" and returns the
       decoded/deserialized response body.

   unarchive_project
           my $project = $api->unarchive_project(
               $project_id,
           );

       Sends a "POST" request to "/projects/:project_id/unarchive" and returns the
       decoded/deserialized response body.

   delete_project
           $api->delete_project(
               $project_id,
           );

       Sends a "DELETE" request to "/projects/:project_id".

   upload_file_to_project
           my $upload = $api->upload_file_to_project(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/uploads" and returns the
       decoded/deserialized response body.

   share_project_with_group
           $api->share_project_with_group(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/share".

   unshare_project_with_group
           $api->unshare_project_with_group(
               $project_id,
               $group_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/share/:group_id".

   project_hooks
           my $hooks = $api->project_hooks(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/hooks" and returns the
       decoded/deserialized response body.

   project_hook
           my $hook = $api->project_hook(
               $project_id,
               $hook_id,
           );

       Sends a "GET" request to "/project/:project_id/hooks/:hook_id" and returns the
       decoded/deserialized response body.

   create_project_hook
           $api->create_project_hook(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/hooks".

   edit_project_hook
           $api->edit_project_hook(
               $project_id,
               $hook_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/hooks/:hook_id".

   delete_project_hook
           my $hook = $api->delete_project_hook(
               $project_id,
               $hook_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/hooks/:hook_id" and returns the
       decoded/deserialized response body.

   set_project_fork
           $api->set_project_fork(
               $project_id,
               $from_project_id,
           );

       Sends a "POST" request to "/projects/:project_id/fork/:from_project_id".

   clear_project_fork
           $api->clear_project_fork(
               $project_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/fork".

   start_housekeeping
           $api->start_housekeeping(
               $project_id,
           );

       Sends a "POST" request to "/projects/:project_id/housekeeping".

PROJECT ACCESS REQUEST METHODS

       See <https://docs.gitlab.com/ce/api/access_requests.html>.

   group_access_requests
           my $requests = $api->group_access_requests(
               $group_id,
           );

       Sends a "GET" request to "/groups/:group_id/access_requests" and returns the
       decoded/deserialized response body.

   project_access_requests
           my $requests = $api->project_access_requests(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/access_requests" and returns the
       decoded/deserialized response body.

   request_group_access
           my $request = $api->request_group_access(
               $group_id,
           );

       Sends a "POST" request to "/groups/:group_id/access_requests" and returns the
       decoded/deserialized response body.

   request_project_access
           my $request = $api->request_project_access(
               $project_id,
           );

       Sends a "POST" request to "/projects/:project_id/access_requests" and returns the
       decoded/deserialized response body.

   approve_group_access
           my $request = $api->approve_group_access(
               $group_id,
               $user_id,
           );

       Sends a "PUT" request to "/groups/:group_id/access_requests/:user_id/approve" and returns
       the decoded/deserialized response body.

   approve_project_access
           my $request = $api->approve_project_access(
               $project_id,
               $user_id,
           );

       Sends a "PUT" request to "/projects/:project_id/access_requests/:user_id/approve" and
       returns the decoded/deserialized response body.

   deny_group_access
           $api->deny_group_access(
               $group_id,
               $user_id,
           );

       Sends a "DELETE" request to "/groups/:group_id/access_requests/:user_id".

   deny_project_access
           $api->deny_project_access(
               $project_id,
               $user_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/access_requests/:user_id".

PROJECT SNIPPET METHODS

       See <https://docs.gitlab.com/ce/api/project_snippets.html>.

   snippets
           my $snippets = $api->snippets(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/snippets" and returns the
       decoded/deserialized response body.

   snippet
           my $snippet = $api->snippet(
               $project_id,
               $snippet_id,
           );

       Sends a "GET" request to "/projects/:project_id/snippets/:snippet_id" and returns the
       decoded/deserialized response body.

   create_snippet
           $api->create_snippet(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/snippets".

   edit_snippet
           $api->edit_snippet(
               $project_id,
               $snippet_id,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/snippets/:snippet_id".

   delete_snippet
           $api->delete_snippet(
               $project_id,
               $snippet_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/snippets/:snippet_id".

   snippet_content
           my $content = $api->snippet_content(
               $project_id,
               $snippet_id,
           );

       Sends a "GET" request to "/projects/:project_id/snippets/:snippet_id/raw" and returns the
       decoded/deserialized response body.

   snippet_user_agent_detail
           my $user_agent = $api->snippet_user_agent_detail(
               $project_id,
               $snippet_id,
           );

       Sends a "GET" request to "/projects/:project_id/snippets/:snippet_id/user_agent_detail"
       and returns the decoded/deserialized response body.

PROTECTED BRANCH METHODS

       See <https://docs.gitlab.com/ce/api/protected_branches.html>.

   protected_branches
           my $branches = $api->protected_branches(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/protected_branches" and returns the
       decoded/deserialized response body.

   protected_branch
           my $branch = $api->protected_branch(
               $project_id,
               $branch_name,
           );

       Sends a "GET" request to "/projects/:project_id/protected_branches/:branch_name" and
       returns the decoded/deserialized response body.

   protect_branch
           my $branch = $api->protect_branch(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/protected_branches" and returns the
       decoded/deserialized response body.

   unprotect_branch
           $api->unprotect_branch(
               $project_id,
               $branch_name,
           );

       Sends a "DELETE" request to "/projects/:project_id/protected_branches/:branch_name".

REPOSITORY METHODS

       See <https://docs.gitlab.com/ce/api/repositories.html>.

   tree
           my $tree = $api->tree(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/tree" and returns the
       decoded/deserialized response body.

   blob
           my $blob = $api->blob(
               $project_id,
               $sha,
           );

       Sends a "GET" request to "/projects/:project_id/repository/blobs/:sha" and returns the
       decoded/deserialized response body.

   raw_blob
           my $raw_blob = $api->raw_blob(
               $project_id,
               $sha,
           );

       Sends a "GET" request to "/projects/:project_id/repository/blobs/:sha/raw" and returns the
       decoded/deserialized response body.

   archive
           my $archive = $api->archive(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/archive" and returns the
       decoded/deserialized response body.

   compare
           my $comparison = $api->compare(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/compare" and returns the
       decoded/deserialized response body.

   contributors
           my $contributors = $api->contributors(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/repository/contributors" and returns the
       decoded/deserialized response body.

FILE METHODS

       See <https://docs.gitlab.com/ce/api/repository_files.html>.

   file
           my $file = $api->file(
               $project_id,
               $file_path,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/files/:file_path" and returns
       the decoded/deserialized response body.

   raw_file
           my $file = $api->raw_file(
               $project_id,
               $file_path,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/repository/files/:file_path/raw" and
       returns the decoded/deserialized response body.

   create_file
           $api->create_file(
               $project_id,
               $file_path,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/repository/files/:file_path".

   edit_file
           $api->edit_file(
               $project_id,
               $file_path,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/repository/files/:file_path".

   delete_file
           $api->delete_file(
               $project_id,
               $file_path,
               \%params,
           );

       Sends a "DELETE" request to "/projects/:project_id/repository/files/:file_path".

RUNNER METHODS

       See <https://docs.gitlab.com/ce/api/runners.html>.

   runners
           my $runners = $api->runners(
               \%params,
           );

       Sends a "GET" request to "/runners" and returns the decoded/deserialized response body.

   all_runners
           my $runners = $api->all_runners(
               \%params,
           );

       Sends a "GET" request to "/runners/all" and returns the decoded/deserialized response
       body.

   runner
           my $runner = $api->runner(
               $runner_id,
           );

       Sends a "GET" request to "/runners/:runner_id" and returns the decoded/deserialized
       response body.

   update_runner
           my $runner = $api->update_runner(
               $runner_id,
               \%params,
           );

       Sends a "PUT" request to "/runners/:runner_id" and returns the decoded/deserialized
       response body.

   delete_runner
           my $runner = $api->delete_runner(
               $runner_id,
           );

       Sends a "DELETE" request to "/runners/:runner_id" and returns the decoded/deserialized
       response body.

   runner_jobs
           my $jobs = $api->runner_jobs(
               $runner_id,
               \%params,
           );

       Sends a "GET" request to "/runners/:runner_id/jobs" and returns the decoded/deserialized
       response body.

   project_runners
           my $runners = $api->project_runners(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/runners" and returns the
       decoded/deserialized response body.

   enable_project_runner
           my $runner = $api->enable_project_runner(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/runners" and returns the
       decoded/deserialized response body.

   disable_project_runner
           my $runner = $api->disable_project_runner(
               $project_id,
               $runner_id,
           );

       Sends a "DELETE" request to "/projects/:project_id/runners/:runner_id" and returns the
       decoded/deserialized response body.

SERVICE METHODS

       See <https://docs.gitlab.com/ce/api/services.html>.

   edit_project_service
           $api->edit_project_service(
               $project_id,
               $service_name,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/services/:service_name".

   delete_project_service
           $api->delete_project_service(
               $project_id,
               $service_name,
           );

       Sends a "DELETE" request to "/projects/:project_id/services/:service_name".

SETTINGS METHODS

       See <https://docs.gitlab.com/ce/api/settings.html>.

   settings
           my $settings = $api->settings();

       Sends a "GET" request to "/application/settings" and returns the decoded/deserialized
       response body.

   update_settings
           my $settings = $api->update_settings(
               \%params,
           );

       Sends a "PUT" request to "/application/settings" and returns the decoded/deserialized
       response body.

SIDEKIQ METRIC METHODS

       See <https://docs.gitlab.com/ce/api/sidekiq_metrics.html>.

   queue_metrics
           my $metrics = $api->queue_metrics();

       Sends a "GET" request to "/sidekiq/queue_metrics" and returns the decoded/deserialized
       response body.

   process_metrics
           my $metrics = $api->process_metrics();

       Sends a "GET" request to "/sidekiq/process_metrics" and returns the decoded/deserialized
       response body.

   job_stats
           my $stats = $api->job_stats();

       Sends a "GET" request to "/sidekiq/job_stats" and returns the decoded/deserialized
       response body.

   compound_metrics
           my $metrics = $api->compound_metrics();

       Sends a "GET" request to "/sidekiq/compound_metrics" and returns the decoded/deserialized
       response body.

SYSTEM HOOK METHODS

       See <https://docs.gitlab.com/ce/api/system_hooks.html>.

   hooks
           my $hooks = $api->hooks();

       Sends a "GET" request to "/hooks" and returns the decoded/deserialized response body.

   create_hook
           $api->create_hook(
               \%params,
           );

       Sends a "POST" request to "/hooks".

   test_hook
           my $hook = $api->test_hook(
               $hook_id,
           );

       Sends a "GET" request to "/hooks/:hook_id" and returns the decoded/deserialized response
       body.

   delete_hook
           $api->delete_hook(
               $hook_id,
           );

       Sends a "DELETE" request to "/hooks/:hook_id".

TAG METHODS

       See <https://docs.gitlab.com/ce/api/tags.html>.

   tags
           my $tags = $api->tags(
               $project_id,
           );

       Sends a "GET" request to "/projects/:project_id/repository/tags" and returns the
       decoded/deserialized response body.

   tag
           my $tag = $api->tag(
               $project_id,
               $tag_name,
           );

       Sends a "GET" request to "/projects/:project_id/repository/tags/:tag_name" and returns the
       decoded/deserialized response body.

   create_tag
           my $tag = $api->create_tag(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/repository/tags" and returns the
       decoded/deserialized response body.

   delete_tag
           $api->delete_tag(
               $project_id,
               $tag_name,
           );

       Sends a "DELETE" request to "/projects/:project_id/repository/tags/:tag_name".

   create_release
           $api->create_release(
               $project_id,
               $tag_name,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/repository/tags/:tag_name/release".

   edit_release
           $api->edit_release(
               $project_id,
               $tag_name,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/repository/tags/:tag_name/release".

TODO METHODS

       See <https://docs.gitlab.com/ce/api/todos.html>.

USER METHODS

       See <https://docs.gitlab.com/ce/api/users.html>.

   users
           my $users = $api->users(
               \%params,
           );

       Sends a "GET" request to "/users" and returns the decoded/deserialized response body.

   user
           my $user = $api->user(
               $user_id,
           );

       Sends a "GET" request to "/users/:user_id" and returns the decoded/deserialized response
       body.

   create_user
           $api->create_user(
               \%params,
           );

       Sends a "POST" request to "/users".

   edit_user
           $api->edit_user(
               $user_id,
               \%params,
           );

       Sends a "PUT" request to "/users/:user_id".

   delete_user
           my $user = $api->delete_user(
               $user_id,
           );

       Sends a "DELETE" request to "/users/:user_id" and returns the decoded/deserialized
       response body.

   current_user
           my $user = $api->current_user();

       Sends a "GET" request to "/user" and returns the decoded/deserialized response body.

   current_user_ssh_keys
           my $keys = $api->current_user_ssh_keys();

       Sends a "GET" request to "/user/keys" and returns the decoded/deserialized response body.

   user_ssh_keys
           my $keys = $api->user_ssh_keys(
               $user_id,
           );

       Sends a "GET" request to "/users/:user_id/keys" and returns the decoded/deserialized
       response body.

   user_ssh_key
           my $key = $api->user_ssh_key(
               $key_id,
           );

       Sends a "GET" request to "/user/keys/:key_id" and returns the decoded/deserialized
       response body.

   create_current_user_ssh_key
           $api->create_current_user_ssh_key(
               \%params,
           );

       Sends a "POST" request to "/user/keys".

   create_user_ssh_key
           $api->create_user_ssh_key(
               $user_id,
               \%params,
           );

       Sends a "POST" request to "/users/:user_id/keys".

   delete_current_user_ssh_key
           $api->delete_current_user_ssh_key(
               $key_id,
           );

       Sends a "DELETE" request to "/user/keys/:key_id".

   delete_user_ssh_key
           $api->delete_user_ssh_key(
               $user_id,
               $key_id,
           );

       Sends a "DELETE" request to "/users/:user_id/keys/:key_id".

   current_user_gpg_keys
           my $keys = $api->current_user_gpg_keys();

       Sends a "GET" request to "/user/gpg_keys" and returns the decoded/deserialized response
       body.

   current_user_gpg_key
           my $key = $api->current_user_gpg_key(
               $key_id,
           );

       Sends a "GET" request to "/user/gpg_keys/:key_id" and returns the decoded/deserialized
       response body.

   create_current_user_gpg_key
           $api->create_current_user_gpg_key(
               \%params,
           );

       Sends a "POST" request to "/user/gpg_keys".

   delete_current_user_gpg_key
           $api->delete_current_user_gpg_key(
               $key_id,
           );

       Sends a "DELETE" request to "/user/gpg_keys/:key_id".

   user_gpg_keys
           my $keys = $api->user_gpg_keys(
               $user_id,
           );

       Sends a "GET" request to "/users/:user_id/gpg_keys" and returns the decoded/deserialized
       response body.

   user_gpg_key
           my $key = $api->user_gpg_key(
               $user_id,
               $key_id,
           );

       Sends a "GET" request to "/users/:user_id/gpg_keys/:key_id" and returns the
       decoded/deserialized response body.

   create_user_gpg_key
           my $keys = $api->create_user_gpg_key(
               $user_id,
               \%params,
           );

       Sends a "POST" request to "/users/:user_id/gpg_keys" and returns the decoded/deserialized
       response body.

   delete_user_gpg_key
           $api->delete_user_gpg_key(
               $user_id,
               $key_id,
           );

       Sends a "DELETE" request to "/users/:user_id/gpg_keys/:key_id".

   current_user_emails
           my $emails = $api->current_user_emails();

       Sends a "GET" request to "/user/emails" and returns the decoded/deserialized response
       body.

   user_emails
           my $emails = $api->user_emails(
               $user_id,
           );

       Sends a "GET" request to "/users/:user_id/emails" and returns the decoded/deserialized
       response body.

   current_user_email
           my $email = $api->current_user_email(
               $email_id,
           );

       Sends a "GET" request to "/user/emails/:email_id" and returns the decoded/deserialized
       response body.

   create_current_user_email
           my $email = $api->create_current_user_email(
               \%params,
           );

       Sends a "POST" request to "/user/emails" and returns the decoded/deserialized response
       body.

   create_user_email
           my $email = $api->create_user_email(
               $user_id,
               \%params,
           );

       Sends a "POST" request to "/users/:user_id/emails" and returns the decoded/deserialized
       response body.

   delete_current_user_email
           $api->delete_current_user_email(
               $email_id,
           );

       Sends a "DELETE" request to "/user/emails/:email_id".

   delete_user_email
           $api->delete_user_email(
               $user_id,
               $email_id,
           );

       Sends a "DELETE" request to "/users/:user_id/emails/:email_id".

   block_user
           $api->block_user(
               $user_id,
           );

       Sends a "POST" request to "/users/:user_id/block".

   unblock_user
           $api->unblock_user(
               $user_id,
           );

       Sends a "POST" request to "/users/:user_id/unblock".

   user_impersonation_tokens
           my $tokens = $api->user_impersonation_tokens(
               $user_id,
               \%params,
           );

       Sends a "GET" request to "/users/:user_id/impersonation_tokens" and returns the
       decoded/deserialized response body.

   user_impersonation_token
           my $token = $api->user_impersonation_token(
               $user_id,
               $impersonation_token_id,
           );

       Sends a "GET" request to "/users/:user_id/impersonation_tokens/:impersonation_token_id"
       and returns the decoded/deserialized response body.

   create_user_impersonation_token
           my $token = $api->create_user_impersonation_token(
               $user_id,
               \%params,
           );

       Sends a "POST" request to "/users/:user_id/impersonation_tokens" and returns the
       decoded/deserialized response body.

   delete_user_impersonation_token
           $api->delete_user_impersonation_token(
               $user_id,
               $impersonation_token_id,
           );

       Sends a "DELETE" request to
       "/users/:user_id/impersonation_tokens/:impersonation_token_id".

   all_user_activities
           my $activities = $api->all_user_activities();

       Sends a "GET" request to "/user/activities" and returns the decoded/deserialized response
       body.

VALIDATE CI CONFIGURATION METHODS

       See <https://docs.gitlab.com/ce/api/lint.html>.

   lint
           my $result = $api->lint(
               \%params,
           );

       Sends a "POST" request to "/lint" and returns the decoded/deserialized response body.

VERSION METHODS

       See <https://docs.gitlab.com/ce/api/version.html>.

   version
           my $version = $api->version();

       Sends a "GET" request to "/version" and returns the decoded/deserialized response body.

WIKI METHODS

       See <https://docs.gitlab.com/ce/api/wikis.html>.

   wiki_pages
           my $pages = $api->wiki_pages(
               $project_id,
               \%params,
           );

       Sends a "GET" request to "/projects/:project_id/wikis" and returns the
       decoded/deserialized response body.

   wiki_page
           my $pages = $api->wiki_page(
               $project_id,
               $slug,
           );

       Sends a "GET" request to "/projects/:project_id/wikis/:slug" and returns the
       decoded/deserialized response body.

   create_wiki_page
           my $page = $api->create_wiki_page(
               $project_id,
               \%params,
           );

       Sends a "POST" request to "/projects/:project_id/wikis" and returns the
       decoded/deserialized response body.

   edit_wiki_page
           my $page = $api->edit_wiki_page(
               $project_id,
               $slug,
               \%params,
           );

       Sends a "PUT" request to "/projects/:project_id/wikis/:slug" and returns the
       decoded/deserialized response body.

   delete_wiki_page
           $api->delete_wiki_page(
               $project_id,
               $slug,
           );

       Sends a "DELETE" request to "/projects/:project_id/wikis/:slug".

SEE ALSO

       Net::Gitlab purports to provide an interface to the GitLab API, but it is hard to tell due
       to a complete lack of documentation via either POD or unit tests.

CONTRIBUTING

       This module is auto-generated from a set of YAML files defining the interface of GitLab's
       API.  If you'd like to contribute to this module then please feel free to make a fork on
       GitHub <https://github.com/bluefeet/GitLab-API-v4> and submit a pull request, just make
       sure you edit the files in the "authors/" directory instead of "lib/GitLab/API/v4.pm"
       directly.

       Please see <https://github.com/bluefeet/GitLab-API-v4/blob/master/author/README.pod> for
       more information.

       Alternatively, you can open a ticket <https://github.com/bluefeet/GitLab-API-v4/issues>.

AUTHOR

       Aran Clary Deltac <bluefeet@gmail.com>

   CONTRIBUTORS
       •   Dotan Dimet <dotan@corky.net>

       •   Nigel Gregoire <nigelgregoire@gmail.com>

       •   trunov-ms <trunov.ms@gmail.com>

       •   Marek R. Sotola <Marek.R.Sotola@nasa.gov>

       •   José Joaquín Atria <jjatria@gmail.com>

       •   Dave Webb <github@d5ve.com>

ACKNOWLEDGEMENTS

       Thanks to ZipRecruiter <https://www.ziprecruiter.com/> for encouraging their employees to
       contribute back to the open source ecosystem.  Without their dedication to quality
       software development this distribution would not exist.

LICENSE

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.