Common API Examples
Component Management
Create a component from a git url
local Result = iguana.call{
api = '/component/create',
data = {
name = 'Notifier Sender',
description = "Sends email notifications",
git = "https://bitbucket.org/interfaceware/notifier-sender.git",
tags = '#notifications'},
live = true}
if not Result.success then
-- Log any failures
iguana.log("Failed to create component.")
else
-- Store the created component guid for use later on
local CompGuid = Result.data.components[1].guid
end
Connect an upstream component with a downstream component
iguana.call{
api = '/component/source/add',
data = {
source = SourceId, -- upstream component GUID
component = DestinationId}, -- downstream component GUID
live = true}
Component Configuration
Set a component's custom field
iguana.call{
api = '/component/fields/set',
data = {
component = CompID, -- component GUID
name = 'User', -- custom field name
value = 'myuser'}, -- custom field value
live = true}
Bulk set component tags
iguana.call{
api = '/component/edit/tags',
data = {
add = '#prod',
components = {
CompId1, -- component GUID
CompId2, -- component GUID
CompId3 -- component GUID
}},
live = true}
IguanaX Configuration
Create a role
iguana.call{
api = '/role/add',
data = {name = '#support'},
live = true}
Edit a role
iguana.call{
api = '/role/edit',
data = {
name = '#support',
role = {
edit_name = true,
edit_description = true}},
live = true}
A full list of user role permissions can be found below:
{edit_security = true, edit_webserver = true, manage_instance = true,
edit_peers = true, edit_roles = true, edit_users = true,
edit_authentication = true, upgrade = true, crash_file = true,
edit_license = true, delete_service_logs = true,
edit_logencryption = true, clear_archive = true,
change_log_folder = true, start = true, stop = true, reposition_queue = true, clear_queue = true,
clear_errors = true, view_logs = true, resubmit_message = true,
export_sample_data = true, download_logs = true, delete_logs = true,
edit_name = true, edit_description = true, edit_commit = true,
edit_tags = true, view_script = true, edit_script = true,
edit_upstream = true, edit_connections = true, edit_fields = true,
edit_notifications = true, delete_component = true,
create_component = true, edit_collections = true,
edit_gitservers = true, env_variables = true, database = true,
log_purging = true, log_generator = true}
A full list of component role permissions can be found below:
{start = true, stop = true, reposition_queue = true, clear_queue = true,
clear_errors = true, delete_component = true, view_logs = true,
resubmit_message = true, export_sample_data = true, download_logs = true,
delete_logs = true, edit_name = true, edit_description = true,
edit_commit = true, edit_tags = true, view_script = true,
edit_script = true, edit_upstream = true, edit_connections = true,
edit_fields = true, component_role = true}
Create a user
iguana.call{
api = '/user/add',
data = {
roles = '#support #dev',
username = 'myuser',
password = 'mypassword'},
live = true}
Create a notification rule
iguana.call{
api = '/notifications/set',
data = {
component_id = CompID, -- notifier component GUID
is_on = true, -- status of the notifier component
rules = {
threshold = '1', -- alternatively contains the time (min), queue count threshold, or log_contains query string
type' = 'error_count', -- other types: inactive_time, queue_count, log_contains
limit = 6,
tags = {'#prod'}
priority = 'low'}},
live = true}