IO-Iron/lib/IO/Iron/IronWorker/Api.pm
package IO::Iron::IronWorker::Api;
## no critic (Documentation::RequirePodAtEnd)
## no critic (Documentation::RequirePodSections)
use 5.010_000;
use strict;
use warnings;
# Global Creator
BEGIN {
# No exports.
}
# Global Destructor
END {
}
# ABSTRACT: IronWorker API reference for Perl Client Libraries!
our $VERSION = '0.14'; # VERSION: generated by DZP::OurPkgVersion
sub IRONWORKER_LIST_CODE_PACKAGES {
return {
'action_name' => 'IRONWORKER_LIST_CODE_PACKAGES',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/codes',
'action' => 'GET',
'return' => 'LIST:codes',
'retry' => 0,
'require_body' => 0,
'paged' => 1,
'per_page' => 100,
'url_escape' => { '{Project ID}' => 1 },
'log_message' => '(project={Project ID}). Listed code packages.',
};
}
sub IRONWORKER_UPLOAD_OR_UPDATE_A_CODE_PACKAGE {
return {
'action_name' => 'IRONWORKER_UPLOAD_OR_UPDATE_A_CODE_PACKAGE',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/codes',
'action' => 'POST',
'return' => 'HASH',
'retry' => 1,
'require_body' => 1,
'request_fields' => {
'name' => 1,
'file' => 1,
'file_name' => 1,
'runtime' => 1,
'config' => 1,
'max_concurrency' => 1,
'retries' => 1,
'retries_delay' => 1
},
'url_escape' => { '{Project ID}' => 1 },
'content_type' => 'multipart',
'log_message' => '(project={Project ID}). Uploaded or updated a code package.',
};
}
sub IRONWORKER_GET_INFO_ABOUT_A_CODE_PACKAGE {
return {
'action_name' => 'IRONWORKER_GET_INFO_ABOUT_A_CODE_PACKAGE',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/codes/{Code ID}',
'action' => 'GET',
'return' => 'HASH',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Code ID}' => 1 },
'log_message' => '(project={Project ID}, code={Code ID}). Got info about a code package.',
};
}
sub IRONWORKER_DELETE_A_CODE_PACKAGE {
return {
'action_name' => 'IRONWORKER_DELETE_A_CODE_PACKAGE',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/codes/{Code ID}',
'action' => 'DELETE',
'return' => 'MESSAGE',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Code ID}' => 1 },
'log_message' => '(project={Project ID}, code={Code ID}). Deleted a code package.',
};
}
sub IRONWORKER_DOWNLOAD_A_CODE_PACKAGE {
return {
'action_name' => 'IRONWORKER_DOWNLOAD_A_CODE_PACKAGE',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/codes/{Code ID}/download',
'action' => 'GET',
'return' => 'BINARY',
'retry' => 1,
'require_body' => 0,
'url_params' => { 'revision' => 1 },
'url_escape' => { '{Project ID}' => 1, '{Code ID}' => 1 },
'log_message' => '(project={Project ID}, code={Code ID}). Downloaded a code package.',
};
}
sub IRONWORKER_LIST_CODE_PACKAGE_REVISIONS {
return {
'action_name' => 'IRONWORKER_LIST_CODE_PACKAGE_REVISIONS',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/codes/{Code ID}/revisions',
'action' => 'GET',
'return' => 'LIST:revisions',
'retry' => 1,
'require_body' => 0,
'paged' => 1,
'per_page' => 100,
'url_escape' => { '{Project ID}' => 1, '{Code ID}' => 1 },
'log_message' => '(project={Project ID}, code={Code ID}). Listed code package revisions.',
};
}
sub IRONWORKER_LIST_TASKS {
return {
'action_name' => 'IRONWORKER_LIST_TASKS',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks',
'action' => 'GET',
'return' => 'LIST:tasks',
'retry' => 1,
'require_body' => 0,
'paged' => 1,
'per_page' => 100,
'url_params' => {
'code_name' => 1,
'queued' => 1,
'running' => 1,
'complete' => 1,
'error' => 1,
'cancelled' => 1,
'killed' => 1,
'timeout' => 1,
'from_time' => 1,
'to_time' => 1
},
'url_escape' => { '{Project ID}' => 1, 'code_name' => 1 },
'log_message' => '(project={Project ID}). Listed tasks.',
};
}
sub IRONWORKER_QUEUE_A_TASK {
return {
'action_name' => 'IRONWORKER_QUEUE_A_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks',
'action' => 'POST',
'return' => 'HASH',
'retry' => 1,
'require_body' => 1,
'request_fields' => { 'tasks' => 1 },
'url_escape' => { '{Project ID}' => 1 },
'log_message' => '(project={Project ID}). Queued tasks.',
};
}
sub IRONWORKER_QUEUE_A_TASK_FROM_A_WEBHOOK {
return {
'action_name' => 'IRONWORKER_QUEUE_A_TASK_FROM_A_WEBHOOK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks/webhook',
'action' => 'POST',
'return' => 'HASH',
'retry' => 1,
'require_body' => 1,
'url_params' => { 'code_name' => 1 },
'url_escape' => { '{Project ID}' => 1 },
'log_message' => '(project={Project ID}). Queued tasks.',
}; # Request body will be passed along as the payload for the task.
}
sub IRONWORKER_GET_INFO_ABOUT_A_TASK {
return {
'action_name' => 'IRONWORKER_GET_INFO_ABOUT_A_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks/{Task ID}',
'action' => 'GET',
'return' => 'HASH',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Task ID}' => 1 },
'log_message' => '(project={Project ID}, code={Task ID}). Got info about a task.',
};
}
sub IRONWORKER_GET_A_TASKS_LOG {
return {
'action_name' => 'IRONWORKER_GET_A_TASKS_LOG',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks/{Task ID}/log',
'action' => 'GET',
'return' => 'PLAIN_TEXT',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Task ID}' => 1 },
'log_message' => '(project={Project ID}, code={Task ID}). Got a task\'s log.',
}; # Return plain text, not JSON!
}
sub IRONWORKER_CANCEL_A_TASK {
return {
'action_name' => 'IRONWORKER_CANCEL_A_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks/{Task ID}/cancel',
'action' => 'POST',
'return' => 'MESSAGE',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Task ID}' => 1, },
'log_message' => '(project={Project ID}, task={Task ID}). Cancelled a task.',
};
}
sub IRONWORKER_SET_A_TASKS_PROGRESS {
return {
'action_name' => 'IRONWORKER_SET_A_TASKS_PROGRESS',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks/{Task ID}/progress',
'action' => 'POST',
'return' => 'MESSAGE',
'retry' => 1,
'require_body' => 1,
'request_fields' => { 'percent' => 1, 'msg' => 1 },
'url_escape' => { '{Project ID}' => 1, '{Task ID}' => 1 },
'log_message' => '(project={Project ID}, code={Task ID}). Set task\'s progress.',
};
}
sub IRONWORKER_RETRY_A_TASK {
return {
'action_name' => 'IRONWORKER_RETRY_A_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/tasks/{Task ID}/retry',
'action' => 'POST',
'return' => 'MESSAGE',
'retry' => 1,
'require_body' => 1,
'request_fields' => { 'delay' => 1 },
'url_escape' => { '{Project ID}' => 1, '{Task ID}' => 1 },
'log_message' => '(project={Project ID}, code={Task ID}, delay={delay}). Task queued for retry.',
};
}
sub IRONWORKER_LIST_SCHEDULED_TASKS {
return {
'action_name' => 'IRONWORKER_LIST_SCHEDULED_TASKS',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/schedules',
'action' => 'GET',
'return' => 'LIST:schedules',
'retry' => 1,
'require_body' => 0,
'paged' => 1,
'per_page' => 100,
'url_escape' => { '{Project ID}' => 1 },
'log_message' => '(project={Project ID}). Listed scheduled tasks.',
};
}
sub IRONWORKER_SCHEDULE_A_TASK {
return {
'action_name' => 'IRONWORKER_SCHEDULE_A_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/schedules',
'action' => 'POST',
'return' => 'HASH',
'retry' => 1,
'require_body' => 1,
'request_fields' => { 'schedules' => 1 },
'url_escape' => { '{Project ID}' => 1 },
'log_message' => '(project={Project ID}). Scheduled task.',
};
}
sub IRONWORKER_GET_INFO_ABOUT_A_SCHEDULED_TASK {
return {
'action_name' => 'IRONWORKER_GET_INFO_ABOUT_A_SCHEDULED_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/schedules/{Schedule ID}',
'action' => 'GET',
'return' => 'HASH',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Schedule ID}' => 1, },
'log_message' => '(project={Project ID}, schedule={Schedule ID}). Got info about scheduled task.',
};
}
sub IRONWORKER_CANCEL_A_SCHEDULED_TASK {
return {
'action_name' => 'IRONWORKER_CANCEL_A_SCHEDULED_TASK',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/projects/{Project ID}/schedules/{Schedule ID}/cancel',
'action' => 'POST',
'return' => 'MESSAGE',
'retry' => 1,
'require_body' => 0,
'url_escape' => { '{Project ID}' => 1, '{Schedule ID}' => 1, },
'log_message' => '(project={Project ID}, schedule={Schedule ID}). Canceled scheduled task.',
};
}
sub IRONWORKER_LIST_OF_AVAILABLE_STACKS {
return {
'action_name' => 'IRONWORKER_LIST_OF_AVAILABLE_STACKS',
'href' => '{Protocol}://{Host}:{Port}/{API Version}/stacks',
'action' => 'GET',
'return' => 'LIST', # Return as JSON.
'retry' => 0,
'require_body' => 0,
'paged' => 0,
'url_escape' => {},
'log_message' => '(). Listed stacks.',
};
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
IO::Iron::IronWorker::Api - IronWorker API reference for Perl Client Libraries!
=head1 VERSION
version 0.14
=head1 SYNOPSIS
This package is for internal use of IO::Iron::IronWorker::Client/Queue packages.
=head1 DESCRIPTION
=for stopwords IronWorker API Mikko Koivunalho
=head1 SUBROUTINES/METHODS
=head2 Code Packages
=head3 IRONWORKER_LIST_CODE_PACKAGES
/projects/{Project ID}/codes
=head3 IRONWORKER_UPLOAD_OR_UPDATE_A_CODE_PACKAGE
/projects/{Project ID}/codes
=head3 IRONWORKER_GET_INFO_ABOUT_A_CODE_PACKAGE
/projects/{Project ID}/codes/{Code ID}
=head3 IRONWORKER_DELETE_A_CODE_PACKAGE
/projects/{Project ID}/codes/{Code ID}
=head3 IRONWORKER_DOWNLOAD_A_CODE_PACKAGE
/projects/{Project ID}/codes/{Code ID}/download
=head3 IRONWORKER_LIST_CODE_PACKAGE_REVISIONS
/projects/{Project ID}/codes/{Code ID}/revisions
=head2 Tasks
=head3 IRONWORKER_LIST_TASKS
/projects/{Project ID}/tasks
=head3 IRONWORKER_QUEUE_A_TASK
/projects/{Project ID}/tasks
=head3 IRONWORKER_QUEUE_A_TASK_FROM_A_WEBHOOK
/projects/{Project ID}/tasks/webhook
=head3 IRONWORKER_GET_INFO_ABOUT_A_TASK
/projects/{Project ID}/tasks/{Task ID}
=head3 IRONWORKER_GET_A_TASKS_LOG
/projects/{Project ID}/tasks/{Task ID}/log
=head3 IRONWORKER_CANCEL_A_TASK
/projects/{Project ID}/tasks/{Task ID}/cancel
=head3 IRONWORKER_SET_A_TASKS_PROGRESS
/projects/{Project ID}/tasks/{Task ID}/progress
=head3 IRONWORKER_RETRY_A_TASK
/projects/{Project ID}/tasks/{Task ID}/retry
=head2 Scheduled Tasks
=head3 IRONWORKER_LIST_SCHEDULED_TASKS
/projects/{Project ID}/schedules
=head3 IRONWORKER_SCHEDULE_A_TASK
/projects/{Project ID}/tasks
=head3 IRONWORKER_GET_INFO_ABOUT_A_SCHEDULED_TASK
/projects/{Project ID}/schedules/{Schedule ID}
=head3 IRONWORKER_CANCEL_A_SCHEDULED_TASK
/projects/{Project ID}/schedules/{Schedule ID}/cancel
=head2 Stacks
=head3 IRONWORKER_LIST_OF_AVAILABLE_STACKS
/stacks
=head1 AUTHOR
Mikko Koivunalho <mikko.koivunalho@iki.fi>
=head1 BUGS
Please report any bugs or feature requests to bug-io-iron@rt.cpan.org or through the web interface at:
http://rt.cpan.org/Public/Dist/Display.html?Name=IO-Iron
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by Mikko Koivunalho.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
The full text of the license can be found in the
F<LICENSE> file included with this distribution.
=cut