api-video/statuspage-php

StatusPage.io client by api.video

1.0.0 2019-07-31 08:56 UTC

This package is auto-updated.

Last update: 2024-12-20 17:34:59 UTC


README

badge

badge

badge

api.video is an API that encodes on the go to facilitate immediate playback, enhancing viewer streaming experiences across multiple devices and platforms. You can stream live or on-demand online videos within minutes.

apivideo/statuspage-php

StatusPage php client by api.video.

Install

This package is installable and auto-loadable via Composer:

$ composer require apivideo/statuspage-php

Quick start

Find your StatusPage account page to find your API key and other IDs.

Auto-completion of code is available for every object of the library to ease development.

<?php

use ApiVideo\StatusPage\Client;

$client = new Client('2c04e0b2-8c4a-b941-de65-012a61b7f6ea'); // User API key 

foreach ($client->components as $component) {
    echo $component->id.': '.$component->name."\n";
}
$client->components->setStatus('7mst16b00d59', 'partial_outage');

foreach ($client->metrics as $metric) {
    echo $metric->id.': '.$metric->name."\n";
}
$client->metrics->addPoint('gu1kkk8qe0dl', 12.5);

Full API

If you have several pages in your StatusPage account, you need to select the page before operating on metrics or components.

It's better to set the default page ID as it avoids an API request to guess it.

Client instantiation

<?php

use ApiVideo\StatusPage\Client;

$client = new Client(
    '2c04e0b2-8c4a-b941-de65-012a61b7f6ea', // User API key
    [
        'page-id' => 'zujkhu4kgivg',        // (optional) Default page ID
    ]
);

// You can also set the default page later.
$client->setDefaultPageId('zujkhu4kgivg');

Components API

<?php

use ApiVideo\StatusPage\Client;
use ApiVideo\StatusPage\Model\Component;

$client = new Client(/*..*/);

foreach ($client->components as $component) {
    // Available properties:
    echo $component->id;
    echo $component->name;
    echo $component->description;
    echo $component->created_at;
    echo $component->status;
    echo $component->updated_at;
    echo $component->group;
    echo $component->group_id;
    echo $component->automation_email;
    echo $component->only_show_if_degraded;
    echo $component->page_id;
    echo $component->position;
    echo $component->showcase;
}

$component = $client->components->create([
    'name'        => 'Component name',
    'description' => 'This is an example component',
]);
echo $component->id; // a5xc8i1a03ki
$component = $client->components->update('a5xc8i1a03ki', ['description' => 'Another description']);
$component = $client->components->setStatus('a5xc8i1a03ki', Component::STATUS_MAINTENANCE); // Avoid using magic strings
$client->components->delete('a5xc8i1a03ki');

Metrics API

<?php

use ApiVideo\StatusPage\Client;

$client = new Client(/*..*/);

foreach ($client->metrics as $metric) {
    echo $metric->id;
    echo $metric->name;
    echo $metric->created_at;
    echo $metric->updated_at;
    echo $metric->most_recent_data_at;
    echo $metric->backfilled;
    echo $metric->decimal_places;
    echo $metric->metrics_display_id;
    echo $metric->suffix;
    echo $metric->tooltip_description;
    echo $metric->y_axis_hidden;
    echo $metric->y_axis_max;
    echo $metric->y_axis_min;
}

$metric = $client->metrics->create([
    'name'        => 'Component name',
    'description' => 'This is an example component',
]);
echo $metric->id; // 9zwc0v70t29n
$metric = $client->metrics->update('9zwc0v70t29n', ['description' => 'Another description']);

// Metric points
$client->metrics->addPoint('9zwc0v70t29n', random_int(0, 100));
$metric = $client->metrics->get('9zwc0v70t29n');
echo $metric->name.' (last updated on '.date(DATE_ATOM, $metric->most_recent_data_at).')';
print_r($client->metrics->getPoints('9zwc0v70t29n'));

$client->metrics->delete('9zwc0v70t29n');