Skip to content
Official PHP library for Status.io
PHP
Latest commit 742ee71 Jan 8, 2016 @joet3ch joet3ch Initial commit.
Failed to load latest commit information.
src Initial commit. Jan 8, 2016
tests Initial commit. Jan 8, 2016
.gitignore Initial commit. Jan 8, 2016
.travis.yml Initial commit. Jan 8, 2016
README.md Initial commit. Jan 8, 2016
composer.json Initial commit. Jan 8, 2016
phpunit.xml Initial commit. Jan 8, 2016

README.md

Status.io API for PHP

Travis CI

A PHP Package for Status.io API

Installation

composer require statusio/statusio-php

Usage example

use Statusio\StatusioClient;

$api = new StatusioClient('<api_id>', '<api_key>');
$result = $api->StatusSummary('<statuspage_id>');

var_dump($result);

Methods list

    $api->ComponentList($statuspage_id)
    $api->ComponentStatusUpdate($statuspage_id, $components, $containers, $details, $current_status)
    $api->IncidentList($statuspage_id)
    $api->IncidentMessage($statuspage_id, $message_id)
    $api->IncidentCreate($statuspage_id, $incident_name, $incident_details, $components, $containers, 
                         $current_status, $current_state, $notifications = 0, $all_infrastructure_affected = 0)
    $api->IncidentUpdate($statuspage_id, $incident_id, $incident_details, $current_status, $current_state, 
                         $notifications = 0)
    $api->IncidentResolve($statuspage_id, $incident_id, $incident_details, $current_status, $current_state, 
                          $notifications = 0)
    $api->IncidentDelete($statuspage_id, $incident_id)
    $api->MaintenanceList($statuspage_id)
    $api->MaintenanceMessage($statuspage_id, $message_id)
    $api->MaintenanceSchedule($statuspage_id, $maintenance_name, $maintenance_details, $components, 
                              $containers, $date_planned_start, $time_planned_start, $date_planned_end, 
                              $time_planned_end, $automation = 0, $all_infrastructure_affected = 0, 
                              $maintenance_notify_now = 0, $maintenance_notify_1_hr = 0, 
                              $maintenance_notify_24_hr = 0, $maintenance_notify_72_hr = 0)
    $api->MaintenanceStart($statuspage_id, $maintenance_id, $maintenance_details, $notifications = 0)
    $api->MaintenanceUpdate($statuspage_id, $maintenance_id, $maintenance_details, $notifications = 0) 
    $api->MaintenanceFinish($statuspage_id, $maintenance_id, $maintenance_details, $notifications = 0)
    $api->MaintenanceDelete($statuspage_id, $maintenance_id)
    $api->MetricUpdate($statuspage_id, $metric_id, $day_avg, $day_start, $day_dates, $day_values,
                       $week_avg, $week_start, $week_dates, $week_values,
                       $month_avg, $month_start, $month_dates, $month_values)
    $api->StatusSummary($statuspage_id)
    $api->SubscriberList($statuspage_id)
    $api->SubscriberAdd($statuspage_id, $method, $address, $silent = 1, $granular = '')
    $api->SubscriberUpdate($statuspage_id, $subscriber_id, $address, $granular = '') 
    $api->SubscriberRemove($statuspage_id, $subscriber_id)

Constants

Library contains few predefined constants and notification setup based on bitmask

    $result = $api->IncidentCreate(
            '<statuspage_id>', 
            'Incident name', 
            'Incident details',
            ['<component_id>'], 
            ['<container_id>'], 
            StatusioClient::STATUS_OPERATIONAL,
            StatusioClient::STATE_IDENTIFIED, 
            StatusioClient::NOTIFY_EMAIL + StatusioClient::NOTIFY_SMS // equal to 'notify_email' = 1, 'notify_sms' = 1 and all other notifications = 0 
);

So if you want to notify users by Slack and Twitter should set $notifications parameter equal to StatusioClient::NOTIFY_SLACK + StatusioClient::NOTIFY_SOCIAL. To disable all notifications just set parameter equal to 0.

Full list of constants

StatusioClient::STATUS_OPERATIONAL;
StatusioClient::STATUS_DEGRADED_PERFORMANCE;
StatusioClient::STATUS_PARTIAL_SERVICE_DISRUPTION;
StatusioClient::STATUS_SERVICE_DISRUPTION;
StatusioClient::STATUS_SECURITY_EVENT;

StatusioClient::STATE_INVESTIGATING;
StatusioClient::STATE_IDENTIFIED;
StatusioClient::STATE_MONITORING;

StatusioClient::NOTIFY_EMAIL;
StatusioClient::NOTIFY_SMS;
StatusioClient::NOTIFY_WEBHOOK;
StatusioClient::NOTIFY_SOCIAL;
StatusioClient::NOTIFY_IRC;
StatusioClient::NOTIFY_HIPCHAT;
StatusioClient::NOTIFY_SLACK;
Something went wrong with that request. Please try again.