You've already forked oncall
mirror of
https://github.com/linkedin/oncall.git
synced 2025-11-30 23:44:59 +02:00
Merge:6558d1f9e2812dAuthor: Saif Ebrahim <ebrahim.saif@gmail.com> Merge pull request #45 from houqp/docs
2503 lines
161 KiB
HTML
2503 lines
161 KiB
HTML
|
|
|
|
<!DOCTYPE html>
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>REST API — Oncall 1.0.0 documentation</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="index" title="Index"
|
|
href="genindex.html"/>
|
|
<link rel="search" title="Search" href="search.html"/>
|
|
<link rel="top" title="Oncall 1.0.0 documentation" href="index.html"/>
|
|
<link rel="prev" title="Admin guide" href="admin_guide.html"/>
|
|
|
|
|
|
<script src="_static/js/modernizr.min.js"></script>
|
|
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
|
|
<div class="wy-grid-for-nav">
|
|
|
|
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
<div class="wy-side-scroll">
|
|
<div class="wy-side-nav-search">
|
|
|
|
|
|
|
|
<a href="index.html" class="icon icon-home"> Oncall
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<div class="version">
|
|
1.0.0
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div role="search">
|
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p class="caption"><span class="caption-text">Table of contents</span></p>
|
|
<ul class="current">
|
|
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">User guide</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">Admin guide</a></li>
|
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">REST API</a><ul>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-teams">/api/v0/teams</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-schedules">/api/v0/schedules</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-services">/api/v0/services</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-roles">/api/v0/roles</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-events">/api/v0/events</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-users">/api/v0/users</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-notifications">/api/v0/notifications</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-notification-types">/api/v0/notification_types</a></li>
|
|
<li class="toctree-l2"><a class="reference internal" href="#api-v0-search">/api/v0/search</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
|
|
|
|
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
|
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="index.html">Oncall</a>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
|
|
<ul class="wy-breadcrumbs">
|
|
|
|
<li><a href="index.html">Docs</a> »</li>
|
|
|
|
<li>REST API</li>
|
|
|
|
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
|
|
<a href="_sources/api.rst.txt" rel="nofollow"> View page source</a>
|
|
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
|
|
<hr/>
|
|
</div>
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
<div itemprop="articleBody">
|
|
|
|
<div class="section" id="rest-api">
|
|
<h1>REST API<a class="headerlink" href="#rest-api" title="Permalink to this headline">¶</a></h1>
|
|
<div class="section" id="api-v0-teams">
|
|
<h2>/api/v0/teams<a class="headerlink" href="#api-v0-teams" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams</code><a class="headerlink" href="#get--api-v0-teams" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Search for team names. Allows filtering based on a number of parameters, detailed below.
|
|
Returns list of matching team names. If “active” parameter is unspecified, defaults to
|
|
True (only displaying undeleted teams)</p>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first last simple">
|
|
<li><strong>name</strong> – team name</li>
|
|
<li><strong>name__eq</strong> – team name</li>
|
|
<li><strong>name__contains</strong> – team name contains param</li>
|
|
<li><strong>name__startswith</strong> – team name starts with param</li>
|
|
<li><strong>name__endswith</strong> – team name ends with param</li>
|
|
<li><strong>id</strong> – team id</li>
|
|
<li><strong>id__eq</strong> – team id</li>
|
|
<li><strong>active</strong> – team active/deleted (1 and 0, respectively)</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams?name__startswith=team-</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="s2">"team-bar"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams</code><a class="headerlink" href="#post--api-v0-teams" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint for team creation. The user who creates the team is automatically added as a
|
|
team admin. Because of this, this endpoint cannot be called using an API key, otherwise
|
|
a team would have no admins, making many team operations impossible.</p>
|
|
<p>Teams can specify a number of attributes, detailed below:</p>
|
|
<ul class="simple">
|
|
<li>name: the team’s name. Teams must have unique names.</li>
|
|
<li>email: email address for the team.</li>
|
|
<li>slack_channel: slack channel for the team. Must start with ‘#’</li>
|
|
<li>iris_plan: Iris escalation plan that incidents created from the Oncall UI will follow.</li>
|
|
</ul>
|
|
<p>If iris plan integration is not activated, this attribute can still be set, but its
|
|
value is not used.</p>
|
|
<p>Teams must specify <code class="docutils literal"><span class="pre">name</span></code> and <code class="docutils literal"><span class="pre">scheduling_timezone</span></code>; other parameters are optional.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/teams</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"scheduling_timezone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"team-foo@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"slack_channel"</span><span class="p">:</span> <span class="s2">"#team-foo"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">Created</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Successful create</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Error in creating team. Possible errors: API key auth not allowed, invalid attributes, missing required attributes</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Duplicate team name</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}</code><a class="headerlink" href="#get--api-v0-teams-team" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get team info by name. By default, only finds active teams. Allows selection of
|
|
fields, including: users, admins, services, and rosters. If no <code class="docutils literal"><span class="pre">fields</span></code> is
|
|
specified in the query string, it defaults to all fields.</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"admins"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"foo@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">5501</span><span class="p">,</span>
|
|
<span class="nt">"iris_plan"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"rosters"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"roster-foo"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">4186</span><span class="p">,</span>
|
|
<span class="nt">"schedules"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"advanced_mode"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="mi">21</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">604800</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">7200</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">2222</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"role_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"roster"</span><span class="p">:</span> <span class="s2">"roster-foo"</span><span class="p">,</span>
|
|
<span class="nt">"roster_id"</span><span class="p">:</span> <span class="mi">4186</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"team_id"</span><span class="p">:</span> <span class="mi">5501</span><span class="p">,</span>
|
|
<span class="nt">"timezone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"users"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"in_rotation"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"scheduling_timezone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span><span class="p">,</span>
|
|
<span class="nt">"services"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="s2">"service-foo"</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"slack_channel"</span><span class="p">:</span> <span class="s2">"#foo"</span><span class="p">,</span>
|
|
<span class="nt">"users"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"jdoe"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"image.example.com"</span><span class="p">,</span>
|
|
<span class="nt">"time_zone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-teams-team">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/teams/{team}</code><a class="headerlink" href="#put--api-v0-teams-team" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Edit a team’s information. Allows edit of: name, slack_channel, email, scheduling_timezone, iris_plan.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/api/v0/teams/team-foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"team-bar"</span><span class="p">,</span>
|
|
<span class="nt">"slack_channel"</span><span class="p">:</span> <span class="s2">"roster-bar"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="mi">28</span><span class="p">,</span>
|
|
<span class="nt">"scheduling_timezone"</span><span class="p">:</span> <span class="s2">"US/Central"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful edit</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Invalid team name/iris escalation plan</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Duplicate team name</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-teams-team">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/teams/{team}</code><a class="headerlink" href="#delete--api-v0-teams-team" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Soft delete for teams. Does not remove data from the database, but sets the team’s active
|
|
param to false. Note that this means deleted teams’ names remain in the namespace, so new
|
|
teams cannot be created with the same name a sa deleted team.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/teams/team-foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Team not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-summary">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/summary</code><a class="headerlink" href="#get--api-v0-teams-team-summary" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint to get a summary of the team’s oncall information. Returns an object
|
|
containing the fields <code class="docutils literal"><span class="pre">current</span></code> and <code class="docutils literal"><span class="pre">next</span></code>, which then contain information
|
|
on the current and next on-call shifts for this team. <code class="docutils literal"><span class="pre">current</span></code> and <code class="docutils literal"><span class="pre">next</span></code>
|
|
are objects keyed by role (if an event of that role exists), with values of
|
|
lists of event/user information. This list will have multiple elements if
|
|
multiple events with the same role are currently occurring, or if multiple
|
|
events with the same role are starting next in the future at the same time.</p>
|
|
<p>If no event with a given role exists, that role is excluded from the <code class="docutils literal"><span class="pre">current</span></code>
|
|
or <code class="docutils literal"><span class="pre">next</span></code> object. If no events exist, the <code class="docutils literal"><span class="pre">current</span></code> and <code class="docutils literal"><span class="pre">next</span></code> objects
|
|
will be empty objects.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">api/v0/teams/team-foo/summary</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"current"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"manager"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1495760400</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"example.image.com"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"manager"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1495436400</span><span class="p">,</span>
|
|
<span class="nt">"user_contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"user_id"</span><span class="p">:</span> <span class="mi">1234</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"primary"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1495760400</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Adam Smith"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"example.image.com"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1495350000</span><span class="p">,</span>
|
|
<span class="nt">"user_contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 222-222-2222"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"asmith@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"asmith"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 222-222-2222"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"user_id"</span><span class="p">:</span> <span class="mi">1235</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"next"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"manager"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1496127600</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"example.image.com"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"manager"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1495436400</span><span class="p">,</span>
|
|
<span class="nt">"user_contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"user_id"</span><span class="p">:</span> <span class="mi">1234</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"primary"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1495760400</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Adam Smith"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"example.image.com"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1495350000</span><span class="p">,</span>
|
|
<span class="nt">"user_contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 222-222-2222"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"asmith@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"asmith"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 222-222-2222"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"user_id"</span><span class="p">:</span> <span class="mi">1235</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-oncall-role">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/oncall/{role}</code><a class="headerlink" href="#get--api-v0-teams-team-oncall-role" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get current active event for team based on given role.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team_ops/oncall/primary</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"foo"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1487426400</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1487469600</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Foo Icecream"</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"foo"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 123-456-7890"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"foo@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 123-456-7890"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"bar"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1487426400</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1487469600</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Bar Dog"</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"bar"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 123-456-7890"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"bar@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 123-456-7890"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – no error</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-admins">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/admins</code><a class="headerlink" href="#get--api-v0-teams-team-admins" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get list of admin usernames for a team</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo/admins</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="s2">"asmith"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams-team-admins">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams/{team}/admins</code><a class="headerlink" href="#post--api-v0-teams-team-admins" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Add user as a team admin. Responds with that user’s info (similar to user GET).
|
|
Subscribes this user to default notifications for the team, and adds the user
|
|
to the team (if needed).</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/v0/teams/team-foo/admins</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">9535</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"image.example.com"</span><span class="p">,</span>
|
|
<span class="nt">"time_zone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Successful admin added</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Missing name attribute in request</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Invalid team/user, or user is already a team admin</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-teams-team-admins-user">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/teams/{team}/admins/{user}</code><a class="headerlink" href="#delete--api-v0-teams-team-admins-user" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete team admin user. Removes admin from the team if he/she is not a member of any roster.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/teams/team-foo/admins/jdoe</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Team admin not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-users">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/users</code><a class="headerlink" href="#get--api-v0-teams-team-users" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get list of usernames for all team members. A user is a member of a team when
|
|
he/she is a team admin or a member of one of the team’s rosters. Accepts an
|
|
<code class="docutils literal"><span class="pre">active</span></code> parameter in the query string that filters inactive (deleted) teams.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo/users</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="s2">"asmith"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams-team-users">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams/{team}/users</code><a class="headerlink" href="#post--api-v0-teams-team-users" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Add user to a team. Deprecated; used only for testing purposes.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-teams-team-users-user">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/teams/{team}/users/{user}</code><a class="headerlink" href="#delete--api-v0-teams-team-users-user" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete user from a team</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/teams/team-foo/users/jdoe</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – User not found in team</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-rosters">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/rosters</code><a class="headerlink" href="#get--api-v0-teams-team-rosters" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get roster info for a team. Returns a JSON object with roster names
|
|
as keys, and info as values. This info includes the roster id, any
|
|
schedules associated with the rosters, and roster users (along
|
|
with their status as in/out of rotation).</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo/rosters</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"roster-foo"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">2923</span><span class="p">,</span>
|
|
<span class="nt">"schedules"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"advanced_mode"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">604800</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">266400</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1788</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"role_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"roster"</span><span class="p">:</span> <span class="s2">"roster-foo"</span><span class="p">,</span>
|
|
<span class="nt">"roster_id"</span><span class="p">:</span> <span class="mi">2923</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"team_id"</span><span class="p">:</span> <span class="mi">2122</span><span class="p">,</span>
|
|
<span class="nt">"timezone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"users"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"in_rotation"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"in_rotation"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"asmith"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Invalid team</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams-team-rosters">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams/{team}/rosters</code><a class="headerlink" href="#post--api-v0-teams-team-rosters" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Create a roster for a team</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/v0/teams/team-foo/rosters</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"roster-foo"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">Created</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Succesful roster creation</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Invalid character in roster name/Duplicate roster name</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-rosters-roster">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}</code><a class="headerlink" href="#get--api-v0-teams-team-rosters-roster" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get user and schedule info for a roster</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/foo-sre/rosters</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"Managers"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">2730</span><span class="p">,</span>
|
|
<span class="nt">"users"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"in_rotation"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"foo"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"schedules"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nt">"roster"</span><span class="p">:</span> <span class="s2">"Managers"</span><span class="p">,</span>
|
|
<span class="nt">"advanced_mode"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"manager"</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"foo-sre"</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">604800</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">367200</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1704</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – no error</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-teams-team-rosters-roster">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}</code><a class="headerlink" href="#put--api-v0-teams-team-rosters-roster" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Change roster name. Must have team admin privileges.</p>
|
|
<blockquote>
|
|
<div><strong>Example request:</strong></div></blockquote>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/api/v0/teams/team-foo/rosters/roster-foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"roster-bar"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Invalid roster name, disallowed characters</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Duplicate roster name for team</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-teams-team-rosters-roster">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}</code><a class="headerlink" href="#delete--api-v0-teams-team-rosters-roster" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete roster</p>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-rosters-roster-users">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}/users</code><a class="headerlink" href="#get--api-v0-teams-team-rosters-roster-users" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get all users for a team’s roster</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo/rosters/roster-foo/users</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span><span class="s2">"jdoe"</span><span class="p">,</span> <span class="s2">"asmith"</span><span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams-team-rosters-roster-users">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}/users</code><a class="headerlink" href="#post--api-v0-teams-team-rosters-roster-users" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Add user to a roster for a team. On successful creation, returns that user’s information.
|
|
This includes id, contacts, etc, similar to the /api/v0/users GET endpoint.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/v0/teams/team-foo/rosters/roster-foo/users</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"example.image.com"</span><span class="p">,</span>
|
|
<span class="nt">"time_zone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Roster user added</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Missing “name” parameter</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Invalid team/user or user is already in roster.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-teams-team-rosters-roster-users-user">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}/users/{user}</code><a class="headerlink" href="#put--api-v0-teams-team-rosters-roster-users-user" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Put a user into/out of rotation within a given roster</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/v0/api/teams/team_foo/rosters/best_coast/users/user1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span><span class="nt">"in_rotation"</span><span class="p">:</span> <span class="kc">false</span><span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[]</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – no error, user status udpated.</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – invalid request, missing field “in_rotation”.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-teams-team-rosters-roster-users-user">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}/users/{user}</code><a class="headerlink" href="#delete--api-v0-teams-team-rosters-roster-users-user" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete user from roster</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/v0/api/teams/team_foo/rosters/best_coast/users/user1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[]</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – no error, user deleted from roster.</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – roster not found.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-rosters-roster-schedules">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}/schedules</code><a class="headerlink" href="#get--api-v0-teams-team-rosters-roster-schedules" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get schedules for a given roster. Information on schedule attributes is detailed
|
|
in the schedules POST endpoint documentation. Schedules can be filtered with
|
|
the following parameters passed in the query string:</p>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first last simple">
|
|
<li><strong>id</strong> – id of the schedule</li>
|
|
<li><strong>id__eq</strong> – id of the schedule</li>
|
|
<li><strong>id__gt</strong> – id greater than</li>
|
|
<li><strong>id__ge</strong> – id greater than or equal</li>
|
|
<li><strong>id__lt</strong> – id less than</li>
|
|
<li><strong>id__le</strong> – id less than or equal</li>
|
|
<li><strong>name</strong> – schedule name</li>
|
|
<li><strong>name__eq</strong> – schedule name</li>
|
|
<li><strong>name__contains</strong> – schedule name contains param</li>
|
|
<li><strong>name__startswith</strong> – schedule name starts with param</li>
|
|
<li><strong>name__endswith</strong> – schedule name ends with param</li>
|
|
<li><strong>role</strong> – schedule role name</li>
|
|
<li><strong>role__eq</strong> – schedule role name</li>
|
|
<li><strong>role__contains</strong> – schedule role name contains param</li>
|
|
<li><strong>role__startswith</strong> – schedule role name starts with param</li>
|
|
<li><strong>role__endswith</strong> – schedule role name ends with param</li>
|
|
<li><strong>team</strong> – schedule team name</li>
|
|
<li><strong>team__eq</strong> – schedule team name</li>
|
|
<li><strong>team__contains</strong> – schedule team name contains param</li>
|
|
<li><strong>team__startswith</strong> – schedule team name starts with param</li>
|
|
<li><strong>team__endswith</strong> – schedule team name ends with param</li>
|
|
<li><strong>team_id</strong> – id of the schedule’s team</li>
|
|
<li><strong>roster_id</strong> – id of the schedule’s roster</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo/rosters/roster-foo/schedules</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"advanced_mode"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">259200</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">0</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">2065</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"role_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"roster"</span><span class="p">:</span> <span class="s2">"roster-foo"</span><span class="p">,</span>
|
|
<span class="nt">"roster_id"</span><span class="p">:</span> <span class="mi">2922</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"team_id"</span><span class="p">:</span> <span class="mi">2121</span><span class="p">,</span>
|
|
<span class="nt">"timezone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams-team-rosters-roster-schedules">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams/{team}/rosters/{roster}/schedules</code><a class="headerlink" href="#post--api-v0-teams-team-rosters-roster-schedules" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Schedule create endpoint. Schedules are templates for the auto-scheduler to follow that define
|
|
how it should populate a certain period of time. This template is followed repeatedly to
|
|
populate events on a team’s calendar. Schedules are associated with a roster, which defines
|
|
the pool of users that the scheduler selects from. Similarly, the schedule’s role indicates
|
|
the role that the populated events shoud have. The <code class="docutils literal"><span class="pre">auto_populate_threshold</span></code> parameter
|
|
defines how far into the future the scheduler populates.</p>
|
|
<p>Finally, each schedule has a list of events, each defining <code class="docutils literal"><span class="pre">start</span></code> and <code class="docutils literal"><span class="pre">duration</span></code>. <code class="docutils literal"><span class="pre">start</span></code>
|
|
represents an offset from Sunday at 00:00 in the team’s scheduling timezone, in seconds. For
|
|
example, denote DAY and HOUR as the number of seconds in a day/hour, respectively. An
|
|
event with <code class="docutils literal"><span class="pre">start</span></code> of (DAY + 9 * HOUR) starts on Monday, at 9:00 am. Duration is also given
|
|
in seconds.</p>
|
|
<p>The scheduler will start at Sunday 00:00 in the team’s scheduling timezone, choose a user,
|
|
and populate events on the calendar according to the offsets defined in the events list.
|
|
It then repeats this process, moving to the next Sunday 00:00 after the events it has
|
|
created.</p>
|
|
<p><code class="docutils literal"><span class="pre">advanced_mode</span></code> acts as a hint to the frontend on how the schedule should be displayed,
|
|
defining whether the advanced mode toggle on the schedule edit action should be set on or off.
|
|
Because of how the frontend displays simple schedules, a schedule can only have advanced_mode = 0
|
|
if its events have one of 4 formats:</p>
|
|
<ol class="arabic simple">
|
|
<li>One event that is one week long</li>
|
|
<li>One event that is two weeks long</li>
|
|
<li>Seven events that are 12 hours long</li>
|
|
<li>Fourteen events that are 12 hours long</li>
|
|
</ol>
|
|
<p>See below for sample JSON requests.</p>
|
|
<p>Assume these schedules’ team defines US/Pacific as its scheduling timezone.</p>
|
|
<p>Weekly 7*24 shift that starts at Monday 6PM PST:</p>
|
|
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span>
|
|
<span class="s1">'role'</span><span class="o">:</span> <span class="s1">'primary'</span>
|
|
<span class="s1">'auto_populate_threshold'</span><span class="o">:</span> <span class="mi">21</span><span class="p">,</span>
|
|
<span class="s1">'events'</span><span class="o">:</span><span class="p">[</span>
|
|
<span class="p">{</span><span class="s1">'start'</span><span class="o">:</span> <span class="nx">SECONDS_IN_A_DAY</span> <span class="o">+</span> <span class="mi">18</span> <span class="o">*</span> <span class="nx">SECONDS_IN_AN_HOUR</span><span class="p">,</span>
|
|
<span class="s1">'duration'</span><span class="o">:</span> <span class="nx">SECONDS_IN_A_WEEK</span><span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="s1">'advanced_mode'</span><span class="o">:</span> <span class="mi">0</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Weekly 7*12 shift that starts at Monday 8AM PST:</p>
|
|
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span>
|
|
<span class="s1">'role'</span><span class="o">:</span> <span class="s1">'oncall'</span><span class="p">,</span>
|
|
<span class="s1">'events'</span><span class="o">:</span><span class="p">[</span>
|
|
<span class="p">{</span><span class="s1">'start'</span><span class="o">:</span> <span class="nx">SECONDS_IN_A_DAY</span> <span class="o">+</span> <span class="mi">8</span> <span class="o">*</span> <span class="nx">SECONDS_IN_AN_HOUR</span><span class="p">,</span>
|
|
<span class="s1">'duration'</span><span class="o">:</span> <span class="mi">12</span> <span class="o">*</span> <span class="nx">SECONDS_IN_AN_HOUR</span><span class="p">},</span>
|
|
<span class="p">{</span><span class="s1">'start'</span><span class="o">:</span> <span class="mi">2</span> <span class="o">*</span> <span class="nx">SECONDS_IN_A_DAY</span> <span class="o">+</span> <span class="mi">8</span> <span class="o">*</span> <span class="nx">SECONDS_IN_AN_HOUR</span><span class="p">,</span>
|
|
<span class="s1">'duration'</span><span class="o">:</span> <span class="mi">12</span> <span class="o">*</span> <span class="nx">SECONDS_IN_AN_HOUR</span><span class="p">}</span> <span class="p">...</span> <span class="o">*</span><span class="mi">5</span> <span class="nx">more</span><span class="o">*</span>
|
|
<span class="p">],</span>
|
|
<span class="s1">'advanced_mode'</span><span class="o">:</span> <span class="mi">1</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example Request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/v0/teams/team-foo/rosters/roster-foo/schedules</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"advanced_mode"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="s2">"21"</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">604800</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">129600</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">2221</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Successful schedule create. Response contains created schedule’s id.</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Missing required parameters</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Invalid roster specified</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-teams-team-services">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/teams/{team}/services</code><a class="headerlink" href="#get--api-v0-teams-team-services" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get list of services mapped to a team</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/teams/team-foo/services</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"service-foo"</span><span class="p">,</span>
|
|
<span class="s2">"service-bar"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-teams-team-services">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/teams/{team}/services</code><a class="headerlink" href="#post--api-v0-teams-team-services" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Create team to service mapping. Takes an object defining “name”, then maps
|
|
that service to the team specified in the URL. Note that this endpoint does
|
|
not create a service; it expects this service to already exist.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/teams/team-foo/services</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"service-foo"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">Created</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Successful create</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Mapping creation failed; Possible errors: Invalid service/team name,
|
|
service already mapped to the team, service mapped to another team</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-teams-team-services-service">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/teams/{team}/services/{service}</code><a class="headerlink" href="#delete--api-v0-teams-team-services-service" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete service team mapping. Only allowed for team admins.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/teams/team-foo/services/service-foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Team-service mapping not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-schedules">
|
|
<h2>/api/v0/schedules<a class="headerlink" href="#api-v0-schedules" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-schedules-schedule_id">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/schedules/{schedule_id}</code><a class="headerlink" href="#get--api-v0-schedules-schedule_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get schedule information. Detailed information on schedule parameters is provided in the
|
|
POST method for /api/v0/team/{team_name}/rosters/{roster_name}/schedules.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/schedules/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"advanced_mode"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">259200</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">0</span>
|
|
<span class="p">}</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"role_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"roster"</span><span class="p">:</span> <span class="s2">"roster-foo"</span><span class="p">,</span>
|
|
<span class="nt">"roster_id"</span><span class="p">:</span> <span class="mi">2922</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"asdf"</span><span class="p">,</span>
|
|
<span class="nt">"team_id"</span><span class="p">:</span> <span class="mi">2121</span><span class="p">,</span>
|
|
<span class="nt">"timezone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-schedules-schedule_id">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/schedules/{schedule_id}</code><a class="headerlink" href="#put--api-v0-schedules-schedule_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Update a schedule. Allows editing of role, team, roster, auto_populate_threshold,
|
|
events, and advanced_mode. Only allowed for team admins. Note that simple mode
|
|
schedules must conform to simple schedule restrictions (described in documentation
|
|
for the /api/v0/team/{team_name}/rosters/{roster_name}/schedules GET endpoint).
|
|
This is checked on both “events” and “advanced_mode” edits.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/api/v0/schedules/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-bar"</span><span class="p">,</span>
|
|
<span class="nt">"roster"</span><span class="p">:</span> <span class="s2">"roster-bar"</span><span class="p">,</span>
|
|
<span class="nt">"auto_populate_threshold"</span><span class="p">:</span> <span class="mi">28</span><span class="p">,</span>
|
|
<span class="nt">"events"</span><span class="p">:</span>
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nt">"duration"</span><span class="p">:</span> <span class="mi">100</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="s2">"advanced_mode"</span><span class="p">:</span> <span class="mi">1</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-schedules-schedule_id">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/schedules/{schedule_id}</code><a class="headerlink" href="#delete--api-v0-schedules-schedule_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete a schedule by id. Only allowed for team admins.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/schedules/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Schedule not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-schedules-schedule_id-populate">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/schedules/{schedule_id}/populate</code><a class="headerlink" href="#post--api-v0-schedules-schedule_id-populate" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Run the scheduler on demand from a given point in time. Deletes existing schedule events if applicable.
|
|
Given the <code class="docutils literal"><span class="pre">start</span></code> param, this will find the first schedule start time after <code class="docutils literal"><span class="pre">start</span></code>, then populate out
|
|
to the schedule’s auto_populate_threshold. It will also clear the calendar of any events associated
|
|
with the chosen schedule from the start of the first event it created onward. For example, if <cite>start</cite>
|
|
is Monday, May 1 and the chosen schedule starts on Wednesday, this will create events starting from
|
|
Wednesday, May 3, and delete any events that start after May 3 that are associated with the schedule.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful populate</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Validation checks failed</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-services">
|
|
<h2>/api/v0/services<a class="headerlink" href="#api-v0-services" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-services">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/services</code><a class="headerlink" href="#get--api-v0-services" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Find services, filtered by params</p>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first last simple">
|
|
<li><strong>id</strong> – id of the service</li>
|
|
<li><strong>id__eq</strong> – id of the service</li>
|
|
<li><strong>id__gt</strong> – id greater than</li>
|
|
<li><strong>id__ge</strong> – id greater than or equal</li>
|
|
<li><strong>id__lt</strong> – id less than</li>
|
|
<li><strong>id__le</strong> – id less than or equal</li>
|
|
<li><strong>name</strong> – service name</li>
|
|
<li><strong>name__eq</strong> – service name</li>
|
|
<li><strong>name__contains</strong> – service name contains param</li>
|
|
<li><strong>name__startswith</strong> – service name starts with param</li>
|
|
<li><strong>name__endswith</strong> – service name ends with param</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/services?name__startswith=service</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"service-foo"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-services-service">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/services/{service}</code><a class="headerlink" href="#get--api-v0-services-service" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get service id by name</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/services/service-foo</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"service-foo"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-services-service">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/services/{service}</code><a class="headerlink" href="#put--api-v0-services-service" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Change name for a service. Currently unused/debug only.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-services-service">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/services/{service}</code><a class="headerlink" href="#delete--api-v0-services-service" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete a service. Currently unused/debug only.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-services-service-oncall-role">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/services/{service}/oncall/{role}</code><a class="headerlink" href="#get--api-v0-services-service-oncall-role" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get the current user on-call for a given service/role. Returns event start/end, contact info,
|
|
and user name.</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/services/service-foo/oncall/primary</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1495695600</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1495263600</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"John Doe"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-services-service-teams">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/services/{service}/teams</code><a class="headerlink" href="#get--api-v0-services-service-teams" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get list of team mapped to a service</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/services/service-foo/teams</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"team-foo"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-roles">
|
|
<h2>/api/v0/roles<a class="headerlink" href="#api-v0-roles" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-roles">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/roles</code><a class="headerlink" href="#get--api-v0-roles" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Role search.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/roles?name__startswith=pri</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"display_order"</span><span class="p">:</span> <span class="mi">1</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first last simple">
|
|
<li><strong>id</strong> – id of the role</li>
|
|
<li><strong>id__eq</strong> – id of the role</li>
|
|
<li><strong>id__gt</strong> – id greater than</li>
|
|
<li><strong>id__ge</strong> – id greater than or equal</li>
|
|
<li><strong>id__lt</strong> – id less than</li>
|
|
<li><strong>id__le</strong> – id less than or equal</li>
|
|
<li><strong>name</strong> – role name</li>
|
|
<li><strong>name__eq</strong> – role name</li>
|
|
<li><strong>name__contains</strong> – role name contains param</li>
|
|
<li><strong>name__startswith</strong> – role name starts with param</li>
|
|
<li><strong>name__endswith</strong> – role name ends with param</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-events">
|
|
<h2>/api/v0/events<a class="headerlink" href="#api-v0-events" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-events">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/events</code><a class="headerlink" href="#get--api-v0-events" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Search for events. Allows filtering based on a number of parameters, detailed below.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/events?team=foo-sre&end__gt=1487466146&role=primary</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1488441600</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1489132800</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"foo-sre"</span><span class="p">,</span>
|
|
<span class="nt">"link_id"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
|
|
<span class="nt">"schedule_id"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"foo"</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Foo Icecream"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">187795</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1488441600</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1489132800</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"foo-sre"</span><span class="p">,</span>
|
|
<span class="nt">"link_id"</span><span class="p">:</span> <span class="s2">"8a8ae77b8c52448db60c8a701e7bffc2"</span><span class="p">,</span>
|
|
<span class="nt">"schedule_id"</span><span class="p">:</span> <span class="mi">123</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"bar"</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Bar Apple"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">187795</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first simple">
|
|
<li><strong>team</strong> – team name</li>
|
|
<li><strong>user</strong> – user name</li>
|
|
<li><strong>role</strong> – role name</li>
|
|
<li><strong>id</strong> – id of the event</li>
|
|
<li><strong>start__gt</strong> – start time (unix timestamp) greater than</li>
|
|
<li><strong>start__ge</strong> – start time (unix timestamp) greater than or equal</li>
|
|
<li><strong>start__lt</strong> – start time (unix timestamp) less than</li>
|
|
<li><strong>start__le</strong> – start time (unix timestamp) less than or equal</li>
|
|
<li><strong>end__gt</strong> – end time (unix timestamp) greater than</li>
|
|
<li><strong>end__ge</strong> – end time (unix timestamp) greater than or equal</li>
|
|
<li><strong>end__lt</strong> – end time (unix timestamp) less than</li>
|
|
<li><strong>end__le</strong> – end time (unix timestamp) less than or equal</li>
|
|
<li><strong>role</strong> – role name</li>
|
|
<li><strong>role__eq</strong> – role name</li>
|
|
<li><strong>role__contains</strong> – role name contains param</li>
|
|
<li><strong>role__startswith</strong> – role name starts with param</li>
|
|
<li><strong>role__endswith</strong> – role name ends with param</li>
|
|
<li><strong>team</strong> – team name</li>
|
|
<li><strong>team__eq</strong> – team name</li>
|
|
<li><strong>team__contains</strong> – team name contains param</li>
|
|
<li><strong>team__startswith</strong> – team name starts with param</li>
|
|
<li><strong>team__endswith</strong> – team name ends with param</li>
|
|
<li><strong>user</strong> – user name</li>
|
|
<li><strong>user__eq</strong> – user name</li>
|
|
<li><strong>user__contains</strong> – user name contains param</li>
|
|
<li><strong>user__startswith</strong> – user name starts with param</li>
|
|
<li><strong>user__endswith</strong> – user name ends with param</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr class="field-even field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – no error</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – bad request</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-events">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/events</code><a class="headerlink" href="#post--api-v0-events" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint for creating event. Responds with event id for created event. Events must
|
|
specify the following parameters:</p>
|
|
<ul class="simple">
|
|
<li>start: Unix timestamp for the event start time (seconds)</li>
|
|
<li>end: Unix timestamp for the event end time (seconds)</li>
|
|
<li>user: Username for the event’s user</li>
|
|
<li>team: Name for the event’s team</li>
|
|
<li>role: Name for the event’s role</li>
|
|
</ul>
|
|
<p>All of these parameters are required.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/events</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1493667700</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">149368700</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">Created</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="mi">1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Event created</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Event validation checks failed</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Event creation failed: nonexistent role/event/team</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-events-event_id">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/events/{event_id}</code><a class="headerlink" href="#get--api-v0-events-event_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get event by id.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/events/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1428336000</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span><span class="p">,</span>
|
|
<span class="nt">"link_id"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"schedule_id"</span><span class="p">:</span> <span class="mi">4321</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1427731200</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – no error</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Event not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-events-event_id">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/events/{event_id}</code><a class="headerlink" href="#put--api-v0-events-event_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Update an event by id; anyone can update any event within the team</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/api/v0/events/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1428336000</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1428338000</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"asmith"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"secondary"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful update</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-events-event_id">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/events/{event_id}</code><a class="headerlink" href="#delete--api-v0-events-event_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete an event by id, anyone on the team can delete that team’s events
|
|
<strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/events/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a> – Delete not allowed; logged in user is not a team member</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Event not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-events-swap">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/events/swap</code><a class="headerlink" href="#post--api-v0-events-swap" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Swap events. Takes an object specifying the 2 events to be swapped. Swap can
|
|
take either single events or event sets, depending on the value of the
|
|
“linked” attribute. If “linked” is True, the API interprets the “id”
|
|
attribute as a link_id. Otherwise, it’s assumed to be an event_id. Note
|
|
that this allows swapping a single event with a linked event.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/events/swap</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"events"</span><span class="p">:</span>
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"linked"</span><span class="p">:</span> <span class="kc">false</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="s2">"da515a45e2b2467bbdc9ea3bc7826d36"</span><span class="p">,</span>
|
|
<span class="nt">"linked"</span><span class="p">:</span> <span class="kc">true</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful swap</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Validation checks failed</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-events-override">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/events/override</code><a class="headerlink" href="#post--api-v0-events-override" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Override/substitute existing events. For example, if the current on-call is unexpectedly busy from 3-4, another
|
|
user can override that event for that time period and take over the shift. Override may delete or edit
|
|
existing events, and may create new events. The API’s response contains the information for all undeleted
|
|
events that were passed in the event_ids param, along with the events created by the override.</p>
|
|
<dl class="docutils">
|
|
<dt>Params:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li><strong>start</strong>: Start time for the event substitution</li>
|
|
<li><strong>end</strong>: End time for event substitution</li>
|
|
<li><strong>event_ids</strong>: List of event ids to override</li>
|
|
<li><strong>user</strong>: User who will be taking over</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/events/override</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1493677400</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1493678400</span><span class="p">,</span>
|
|
<span class="nt">"event_ids"</span><span class="p">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1493678400</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1493677400</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-events-link">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/events/link</code><a class="headerlink" href="#post--api-v0-events-link" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint for creating linked events. Responds with event ids for created events.
|
|
Linked events can be swapped in a group, and users are reminded only on the first event of a
|
|
linked series. Linked events have a link_id attribute containing a uuid. All events
|
|
with an equivalent link_id are considered “linked together” in a single set. Editing any single event
|
|
in the set will break the link for that event, clearing the link_id field. Otherwise, linked events behave
|
|
the same as any non-linked event.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/v0/events/link</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1493667700</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">149368700</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1493677700</span><span class="p">,</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">149387700</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">Created</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a> – Event created</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Event validation checks failed</li>
|
|
<li><a class="reference external" href="http://tools.ietf.org/html/rfc4918#section-11.2">422 Unprocessable Entity</a> – Event creation failed: nonexistent role/event/team</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-users">
|
|
<h2>/api/v0/users<a class="headerlink" href="#api-v0-users" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-users">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/users</code><a class="headerlink" href="#get--api-v0-users" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get users filtered by params. Returns a list of user info objects for all users matching
|
|
filter parameters.</p>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first last simple">
|
|
<li><strong>id</strong> – id of the user</li>
|
|
<li><strong>id__eq</strong> – id of the user</li>
|
|
<li><strong>id__gt</strong> – id greater than</li>
|
|
<li><strong>id__ge</strong> – id greater than or equal</li>
|
|
<li><strong>id__lt</strong> – id less than</li>
|
|
<li><strong>id__le</strong> – id less than or equal</li>
|
|
<li><strong>name</strong> – username</li>
|
|
<li><strong>name__eq</strong> – username</li>
|
|
<li><strong>name__contains</strong> – username contains param</li>
|
|
<li><strong>name__startswith</strong> – username starts with param</li>
|
|
<li><strong>name__endswith</strong> – username ends with param</li>
|
|
<li><strong>full_name</strong> – full name</li>
|
|
<li><strong>full_name__eq</strong> – username</li>
|
|
<li><strong>full_name__contains</strong> – full name contains param</li>
|
|
<li><strong>full_name__startswith</strong> – full name starts with param</li>
|
|
<li><strong>full_name__endswith</strong> – full name ends with param</li>
|
|
<li><strong>active</strong> – whether user has been deactivated (deleted)</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/events?team=foo-sre&end__gt=1487466146&role=primary</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"image.example.com"</span><span class="p">,</span>
|
|
<span class="nt">"time_zone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-users">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/users</code><a class="headerlink" href="#post--api-v0-users" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Create user. Currently used only in debug mode.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-users-user_name">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/users/{user_name}</code><a class="headerlink" href="#get--api-v0-users-user_name" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get user info by name. Retrieved fields can be filtered with the <code class="docutils literal"><span class="pre">fields</span></code>
|
|
query parameter. Valid fields:</p>
|
|
<ul class="simple">
|
|
<li>id - user id</li>
|
|
<li>name - username</li>
|
|
<li>contacts - user contact information</li>
|
|
<li>full_name - user’s full name</li>
|
|
<li>time_zone - user’s preferred display timezone</li>
|
|
<li>photo_url - URL of user’s thumbnail photo</li>
|
|
<li>active - bool indicating whether the user is active in Oncall. Users can
|
|
be marked inactive after leaving the company to preserve past event information.</li>
|
|
</ul>
|
|
<p>If no <code class="docutils literal"><span class="pre">fields</span></code> is provided, the endpoint defaults to returning all fields.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/users/jdoe</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example.com"</span><span class="p">,</span>
|
|
<span class="nt">"im"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"sms"</span><span class="p">:</span> <span class="s2">"+1 111-111-1111"</span>
|
|
<span class="p">},</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span><span class="p">,</span>
|
|
<span class="nt">"photo_url"</span><span class="p">:</span> <span class="s2">"image.example.com"</span><span class="p">,</span>
|
|
<span class="nt">"time_zone"</span><span class="p">:</span> <span class="s2">"US/Pacific"</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="put">
|
|
<dt id="put--api-v0-users-user_name">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/users/{user_name}</code><a class="headerlink" href="#put--api-v0-users-user_name" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Update user info. Allows edits to:</p>
|
|
<ul class="simple">
|
|
<li>contacts</li>
|
|
<li>name</li>
|
|
<li>full_name</li>
|
|
<li>time_zone</li>
|
|
<li>photo_url</li>
|
|
<li>active</li>
|
|
</ul>
|
|
<p>Takes an object specifying the new values of these attributes. <code class="docutils literal"><span class="pre">contacts</span></code> acts
|
|
slightly differently, specifying an object with the contact mode as key and new
|
|
values for that contact mode as values. Any contact mode not specified will be
|
|
unchanged. Similarly, any field not specified in the PUT will be unchanged.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/api/v0/users/jdoe</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"contacts"</span><span class="p">:</span> <span class="p">{</span>
|
|
<span class="nt">"call"</span><span class="p">:</span> <span class="s2">"+1 222-222-2222"</span><span class="p">,</span>
|
|
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"jdoe@example2.com"</span>
|
|
<span class="p">}</span>
|
|
<span class="s2">"name"</span><span class="p">:</span> <span class="s2">"johndoe"</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"Johnathan Doe"</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a> – Successful edit</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – User not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-users-user_name">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/users/{user_name}</code><a class="headerlink" href="#delete--api-v0-users-user_name" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete user by name</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/users/jdoe</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – User not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-users-user_name-teams">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/users/{user_name}/teams</code><a class="headerlink" href="#get--api-v0-users-user_name-teams" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get active teams by user name. Note that this does not return any deleted teams that
|
|
this user is a member of.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/users/jdoe/teams</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="s2">"team-bar"</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-users-user_name-notifications">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/users/{user_name}/notifications</code><a class="headerlink" href="#get--api-v0-users-user_name-notifications" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Get all notification settings for a user by name.</p>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/users/jdoe/notifications</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">21830</span><span class="p">,</span>
|
|
<span class="nt">"mode"</span><span class="p">:</span> <span class="s2">"email"</span><span class="p">,</span>
|
|
<span class="nt">"only_if_involved"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
|
|
<span class="nt">"roles"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="s2">"secondary"</span><span class="p">,</span>
|
|
<span class="s2">"shadow"</span><span class="p">,</span>
|
|
<span class="s2">"manager"</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"time_before"</span><span class="p">:</span> <span class="mi">86400</span><span class="p">,</span>
|
|
<span class="nt">"type"</span><span class="p">:</span> <span class="s2">"oncall_reminder"</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">21831</span><span class="p">,</span>
|
|
<span class="nt">"mode"</span><span class="p">:</span> <span class="s2">"email"</span><span class="p">,</span>
|
|
<span class="nt">"only_if_involved"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
|
|
<span class="nt">"roles"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="s2">"secondary"</span><span class="p">,</span>
|
|
<span class="s2">"shadow"</span><span class="p">,</span>
|
|
<span class="s2">"manager"</span>
|
|
<span class="p">],</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"time_before"</span><span class="p">:</span> <span class="mi">604800</span><span class="p">,</span>
|
|
<span class="nt">"type"</span><span class="p">:</span> <span class="s2">"oncall_reminder"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="post">
|
|
<dt id="post--api-v0-users-user_name-notifications">
|
|
<code class="descname">POST </code><code class="descname">/api/v0/users/{user_name}/notifications</code><a class="headerlink" href="#post--api-v0-users-user_name-notifications" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint to create notification settings for a user. Responds with an object denoting the created
|
|
setting’s id. Requests to create notification settings must define the following:</p>
|
|
<ul class="simple">
|
|
<li>team</li>
|
|
<li>roles</li>
|
|
<li>mode</li>
|
|
<li>type</li>
|
|
</ul>
|
|
<p>Users will be notified via <code class="docutils literal"><span class="pre">$mode</span></code> if a <code class="docutils literal"><span class="pre">$type</span></code> action occurs on the <code class="docutils literal"><span class="pre">$team</span></code> calendar that
|
|
modifies events having a role contained in <code class="docutils literal"><span class="pre">$roles</span></code>. In addition to these parameters,
|
|
notification settings must define one of <code class="docutils literal"><span class="pre">time_before</span></code> and <code class="docutils literal"><span class="pre">only_if_involved</span></code>, depending
|
|
on whether the notification type is a reminder or a notification. Reminders define a <code class="docutils literal"><span class="pre">time_before</span></code>
|
|
and reference the start/end time of an event that user is involved in. There are two reminder
|
|
types: “oncall_reminder” and “offcall_reminder”, referencing the start and end of on-call events,
|
|
respectively. <code class="docutils literal"><span class="pre">time_before</span></code> is specified in seconds and denotes how far in advance the user
|
|
should be reminded of an event.</p>
|
|
<p>Notifications are event-driven, and created when a team’s calendar is modified. By default,
|
|
the notification types are:</p>
|
|
<ul class="simple">
|
|
<li>event_created</li>
|
|
<li>event_edited</li>
|
|
<li>event_deleted</li>
|
|
<li>event_swapped</li>
|
|
<li>event_substituted</li>
|
|
</ul>
|
|
<p>Non-reminder settings must define <code class="docutils literal"><span class="pre">only_if_involved</span></code> which determines whether the user will
|
|
be notified on all actions of the given typ or only on ones in which they are involved. Note
|
|
that <code class="docutils literal"><span class="pre">time_before</span></code> must not be specified for a non-reminder setting, and <code class="docutils literal"><span class="pre">only_if_involved</span></code>
|
|
must not be specified for reminder settings.</p>
|
|
<p>An authoritative list of notification types can be obtained from the /api/v0/notification_types
|
|
GET endpoint, which also details whether the type is a reminder. This will obtain all
|
|
notification type data from the database, and is an absolute source of truth for Oncall.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">api/v0/events</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"roles"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"primary"</span><span class="p">,</span> <span class="s2">"secondary"</span><span class="p">],</span>
|
|
<span class="nt">"mode"</span><span class="p">:</span> <span class="s2">"email"</span><span class="p">,</span>
|
|
<span class="nt">"type"</span><span class="p">:</span> <span class="s2">"event_created"</span><span class="p">,</span>
|
|
<span class="nt">"only_if_involved"</span><span class="p">:</span> <span class="kc">true</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">201</span> <span class="ne">Created</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">1234</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="get">
|
|
<dt id="get--api-v0-users-user_name-upcoming">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/users/{user_name}/upcoming</code><a class="headerlink" href="#get--api-v0-users-user_name-upcoming" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint for retrieving a user’s upcoming shifts. Groups linked events into a single
|
|
entity, with the number of events indicated in the <code class="docutils literal"><span class="pre">num_events</span></code> attribute. Non-linked
|
|
events have <code class="docutils literal"><span class="pre">num_events</span> <span class="pre">=</span> <span class="pre">0</span></code>. Returns a list of event information for each of that
|
|
user’s upcoming shifts. Results can be filtered with the query string params below:</p>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name" colspan="2">Query Parameters:</th></tr>
|
|
<tr class="field-odd field"><td> </td><td class="field-body"><ul class="first last simple">
|
|
<li><strong>limit</strong> – The number of shifts to retrieve. Default is unlimited</li>
|
|
<li><strong>role</strong> – Filters results to return only shifts with the provided roles.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Example request</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/users/jdoe/upcoming</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"end"</span><span class="p">:</span> <span class="mi">1496264400</span><span class="p">,</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"id"</span><span class="p">:</span> <span class="mi">169877</span><span class="p">,</span>
|
|
<span class="nt">"link_id"</span><span class="p">:</span> <span class="s2">"7b3b96279bb24de8ac3fb7dbf06e5d1e"</span><span class="p">,</span>
|
|
<span class="nt">"num_events"</span><span class="p">:</span> <span class="mi">7</span><span class="p">,</span>
|
|
<span class="nt">"role"</span><span class="p">:</span> <span class="s2">"primary"</span><span class="p">,</span>
|
|
<span class="nt">"schedule_id"</span><span class="p">:</span> <span class="mi">1788</span><span class="p">,</span>
|
|
<span class="nt">"start"</span><span class="p">:</span> <span class="mi">1496221200</span><span class="p">,</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-foo"</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-notifications">
|
|
<h2>/api/v0/notifications<a class="headerlink" href="#api-v0-notifications" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="put">
|
|
<dt id="put--api-v0-notifications-notification_id">
|
|
<code class="descname">PUT </code><code class="descname">/api/v0/notifications/{notification_id}</code><a class="headerlink" href="#put--api-v0-notifications-notification_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Edit user notification settings. Allows editing of the following attributes:</p>
|
|
<ul class="simple">
|
|
<li>roles: list of role names</li>
|
|
<li>team: team name</li>
|
|
<li>mode: contact mode name</li>
|
|
<li><dl class="first docutils">
|
|
<dt>type: string defining what event to notify on. Types are detailed in notification</dt>
|
|
<dd>POST documentation</dd>
|
|
</dl>
|
|
</li>
|
|
<li>time_before: in units of seconds (if reminder setting)</li>
|
|
<li>only_if_involved: boolean (if notification setting)</li>
|
|
</ul>
|
|
<p><strong>Example request</strong></p>
|
|
<blockquote>
|
|
<div><div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">PUT</span> <span class="nn">/api/v0/events/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"team"</span><span class="p">:</span> <span class="s2">"team-bar"</span><span class="p">,</span>
|
|
<span class="nt">"mode"</span><span class="p">:</span> <span class="s2">"call"</span><span class="p">,</span>
|
|
<span class="nt">"user"</span><span class="p">:</span> <span class="s2">"asmith"</span><span class="p">,</span>
|
|
<span class="nt">"roles"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"secondary"</span><span class="p">]</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</div></blockquote>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful edit</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – Validation checks failed.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
<dl class="delete">
|
|
<dt id="delete--api-v0-notifications-notification_id">
|
|
<code class="descname">DELETE </code><code class="descname">/api/v0/notifications/{notification_id}</code><a class="headerlink" href="#delete--api-v0-notifications-notification_id" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Delete user notification settings by id.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/v0/notifications/1234</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
</pre></div>
|
|
</div>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field-odd field"><th class="field-name">Status Codes:</th><td class="field-body"><ul class="first last simple">
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – Successful delete</li>
|
|
<li><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – Notification setting not found</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-notification-types">
|
|
<h2>/api/v0/notification_types<a class="headerlink" href="#api-v0-notification-types" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-notification_types">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/notification_types</code><a class="headerlink" href="#get--api-v0-notification_types" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Returns all notification types and whether they are reminder notifications.</p>
|
|
<p><strong>Example request:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/notification_types</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response:</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"oncall_reminder"</span><span class="p">,</span>
|
|
<span class="nt">"is_reminder"</span><span class="p">:</span> <span class="mi">1</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
<div class="section" id="api-v0-search">
|
|
<h2>/api/v0/search<a class="headerlink" href="#api-v0-search" title="Permalink to this headline">¶</a></h2>
|
|
<dl class="get">
|
|
<dt id="get--api-v0-search">
|
|
<code class="descname">GET </code><code class="descname">/api/v0/search</code><a class="headerlink" href="#get--api-v0-search" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Endpoint for searching for teams, services, users, and team users by keyword. Used for
|
|
typeaheads in the frontend. Team/service search is done using substring matching, while
|
|
user and team_user search is done with prefix matching. If no fields are provided, the
|
|
endpoint defaults to [‘teams’, ‘services’]. A keyword parameter must be passed in the
|
|
query string.</p>
|
|
<p><strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/search?keyword=key</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"services"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"service-key"</span><span class="p">:</span> <span class="s2">"team-foo"</span>
|
|
<span class="p">},</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"service-key2"</span><span class="p">:</span> <span class="s2">"team-bar"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="s2">"teams"</span><span class="p">:</span> <span class="p">[</span>
|
|
<span class="s2">"team-key"</span><span class="p">,</span>
|
|
<span class="s2">"team-key2"</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>An example for user search:
|
|
<strong>Example request</strong></p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/v0/search?keyword=key&fields=users</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">example.com</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><strong>Example response</strong>:</p>
|
|
<div class="highlight-http"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
|
|
|
<span class="p">{</span>
|
|
<span class="nt">"users"</span><span class="p">:</span>
|
|
<span class="p">[</span>
|
|
<span class="p">{</span>
|
|
<span class="nt">"full_name"</span><span class="p">:</span> <span class="s2">"John Doe"</span><span class="p">,</span>
|
|
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"jdoe"</span>
|
|
<span class="p">}</span>
|
|
<span class="p">]</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="articleComments">
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
|
|
|
|
|
<a href="admin_guide.html" class="btn btn-neutral" title="Admin guide" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
|
|
|
</div>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>
|
|
© Copyright 2017, The Iris team.
|
|
|
|
</p>
|
|
</div>
|
|
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
URL_ROOT:'./',
|
|
VERSION:'1.0.0',
|
|
COLLAPSE_INDEX:false,
|
|
FILE_SUFFIX:'.html',
|
|
HAS_SOURCE: true,
|
|
SOURCELINK_SUFFIX: '.txt'
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="_static/jquery.js"></script>
|
|
<script type="text/javascript" src="_static/underscore.js"></script>
|
|
<script type="text/javascript" src="_static/doctools.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="_static/js/theme.js"></script>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
jQuery(function () {
|
|
SphinxRtdTheme.StickyNav.enable();
|
|
});
|
|
</script>
|
|
|
|
|
|
</body>
|
|
</html> |