Agenda Items

Purpose

Agenda items allow for detailed descriptions of specific meeting agenda items, including links to video and audio. Agenda items will normally be used to provide links to specific video segments where the agenda item is discussed, allowing end users to skip unrelated portions of meeting videos.

List Agenda Items

API Path - Public: api/v1/public/meeting-agenda-item/list.json
API Path - Authenticated: api/v1/authenticated/meeting-agenda-item/list.json
Request Type: GET
Description:
List Agenda Items

FieldTypeDescription
Parameters
agendaitemid12345The agenda item ID.
meetingid12345The meeting ID associated with the agenda item.
unpublishedincludeFor the authenticated path, unpublished=include may be used to include unpublished meetings in the results. Unpublished meetings will not be included by default.


Sample TypeData
Request
$url = 'https://sandbox1.teamaha.com/' . 'api/v1/authenticated/meeting-agenda-item/list.json';
$options['headers'] = array(
  'Content-Type:application/json',
  'Authorization: Basic '. base64_encode("username:password"),
);
$options['query'] = array('unpublished' => 'include');
$query = '';
if (!empty($options['query'])) {
  $query = '?' . http_build_query($options['query']);
}

$curl = curl_init();
$curlopts = array(
  CURLOPT_URL => $url . $query,
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_USERAGENT => 'APITEST',
  CURLOPT_HTTPHEADER => $options['headers'],
);
curl_setopt_array($curl,$curlopts);
$result = curl_exec($curl);
curl_close($curl);

print $result;
Response
{
    "AgendaItems": [
        {
            "AgendaItemID": "18251",
            "RevisionID": "30601",
            "Title": "Test Agenda Item 1",
            "Created": "2017-10-05 14:15:32",
            "Changed": "2017-10-05 14:15:32",
            "Visibility": "published",
            "Body": "

Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content. Test body content.<\/p>\r\n", "BodySummary": "", "MeetingID": [ { "Delta": "0", "MeetingID": "18241" } ], }, { "AgendaItemID": "18261", "RevisionID": "30611", "Title": "Test Agenda Item 2", "Created": "2017-10-05 14:19:56", "Changed": "2017-10-05 14:19:56", "Visibility": "published", "Body": "

Test body content.<\/p>\r\n", "BodySummary": "", "MeetingID": [ { "Delta": "0", "MeetingID": "17351" } ], } ], "errors": [], }

Agenda Item Details

API Path - Public: api/v1/public/meeting-agenda-item/1234/details.json
API Path - Authenticated: api/v1/authenticated/meeting-agenda-item/1234/details.json
Request Type: GET
Description:
Agenda Item Details

FieldTypeDescription
Parameters
agendaitemid12345The agenda item ID. This should be provided in the URL path.
meetingid12345The meeting ID associated with the agenda item (limited usefulness for this endpoint).
unpublishedincludeFor the authenticated path, unpublished=include may be used to include unpublished meetings in the results. Unpublished meetings will not be included by default.


Sample TypeData
Request
$url = 'https://sandbox1.teamaha.com/' . 'api/v1/authenticated/meeting-agenda-item/18261,18271/details.json';
$options['headers'] = array(
  'Content-Type:application/json',
  'Authorization: Basic '. base64_encode("username:password"),
);
$options['query'] = array('unpublished' => 'include');
$query = '';
if (!empty($options['query'])) {
  $query = '?' . http_build_query($options['query']);
}

$curl = curl_init();
$curlopts = array(
  CURLOPT_URL => $url . $query,
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_USERAGENT => 'APITEST',
  CURLOPT_HTTPHEADER => $options['headers'],
);
curl_setopt_array($curl,$curlopts);
$result = curl_exec($curl);
curl_close($curl);

print $result;
Response
{
    "AgendaItems": [
        {
            "AgendaItemID": "18261",
            "RevisionID": "30611",
            "Title": "Test Agenda Item 2",
            "Created": "2017-10-05 14:19:56",
            "Changed": "2017-10-05 14:19:56",
            "Visibility": "published",
            "Body": "

Test body content.<\/p>\r\n", "BodySummary": "", "MeetingID": [ { "Delta": "0", "MeetingID": "17351" } ], "AudioLinks": [ { "Delta": "0", "AudioLinksURL": "http:\/\/www.yahoo.com", "AudioLinksTitle": "Test Audio Link 3" } ], "VideoLinks": [ { "Delta": "0", "VideoLinksURL": "http:\/\/www.google.com", "VideoLinksTitle": "Test Video Link 3" } ] }, { "AgendaItemID": "18271", "RevisionID": "30631", "Title": "Test unpublished agenda item 1", "Created": "2017-10-08 15:56:15", "Changed": "2017-10-08 16:04:46", "Visibility": "unpublished", "Body": "

Test<\/p>\r\n", "BodySummary": "", "MeetingID": [ { "Delta": "0", "MeetingID": "17351" } ], "AudioLinks": [ { "Delta": "0", "AudioLinksURL": "http:\/\/www.yahoo.com", "AudioLinksTitle": "Yahoo" } ], "VideoLinks": [ { "Delta": "0", "VideoLinksURL": "http:\/\/www.google.com", "VideoLinksTitle": "Google" } ] } ], "errors": [], }

Create Agenda Item

API Path - Authenticated: api/v1/authenticated/meeting-agenda-item/create.json
Request Type: POST
Description:
Create Agenda Item

FieldTypeDescription
Parameters
dataJSONThe meeting agenda items to be created.


Sample TypeData
Code - Authenticated Request
$url = 'https://sandbox1.teamaha.com/' . 'api/v1/authenticated/meeting-agenda-item/create.json';
$options['headers'] = array(
  'Content-Type:application/json',
  'Authorization: Basic '. base64_encode("username:password"),
);
//$options['query'] = array('unpublished' => 'include');
$query = '';
if (!empty($options['query'])) {
  $query = '?' . http_build_query($options['query']);
}

$data = <<<JSONDATA
{
  "AgendaItems": [
    {
      "Title": "Test unpublished agenda item  59e535c51afa3",
      "Visibility": "unpublished",
      "Body": "Test  59e535c51afa3",
      "BodySummary": "Summary  59e535c51afa3",
      "VideoLinks": [
        {
          "Delta": 0,
          "VideoLinksURL": "https:\/\/www.google.com",
          "VideoLinksTitle": "Test Title  59e535c51b483"
        },
        {
          "Delta": 1,
          "VideoLinksURL": "https:\/\/example.teamaha.com\/dashboard",
          "VideoLinksTitle": "Test Title  59e535c51b335"
        }
      ],
      "AudioLinks": [
        {
          "Delta": 0,
          "AudioLinksURL": "https:\/\/www.google.com",
          "AudioLinksTitle": "Test Title  59e535c51b483"
        },
        {
          "Delta": 1,
          "AudioLinksURL": "https:\/\/example.teamaha.com",
          "AudioLinksTitle": "Test Title  59e535c51b2ea"
        }
      ],
      "MeetingID": [
        {
          "Delta": 0,
          "MeetingID": 18211
        }
      ]
    }
  ]
}
JSONDATA;
$options['headers'][] = 'Content-Length:' . strlen($data);

$curl = curl_init();
$curlopts = array(
  CURLOPT_URL => $url . $query,
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_USERAGENT => 'APITEST',
  CURLOPT_HTTPHEADER => $options['headers'],
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_CUSTOMREQUEST => 'POST',
);
curl_setopt_array($curl,$curlopts);
$result = curl_exec($curl);
curl_close($curl);

print $result;
Response
{
    "errors": [],
    "saved": {
        "AgendaItemID": [
            "18501"
        ]
    }
}
Error Response
{
    "errors": [
        {
            "id": "0002",
            "message": "Incorrect request type",
            "source": ""
        }
    ]
}

Update Agenda Item

API Path - Authenticated: api/v1/authenticated/meeting-agenda-item/update.json
Request Type: PATCH
Description:
Update Agenda Item

FieldTypeDescription
Parameters
dataJSONThe meeting agenda items to be updated.


Sample TypeData
Code - Authenticated Request
$url = 'https://sandbox1.teamaha.com/' . 'api/v1/authenticated/meeting-agenda-item/update.json';
$options['headers'] = array(
  'Content-Type:application/json',
  'Authorization: Basic '. base64_encode("username:password"),
);
//$options['query'] = array('unpublished' => 'include');
$query = '';
if (!empty($options['query'])) {
  $query = '?' . http_build_query($options['query']);
}

$data = <<<JSONDATA
{
  "AgendaItems": [
    {
      "AgendaItemID": "18271",
      "Title": "Test unpublished agenda item  59e535c51afa3",
      "Visibility": "unpublished",
      "Body": "Test  59e535c51afa3",
      "BodySummary": "Summary  59e535c51afa3",
      "VideoLinks": [
        {
          "Delta": 0,
          "VideoLinksURL": "https:\/\/www.google.com",
          "VideoLinksTitle": "Test Title  59e535c51b483"
        },
        {
          "Delta": 1,
          "VideoLinksURL": "https:\/\/example.teamaha.com\/dashboard",
          "VideoLinksTitle": "Test Title  59e535c51b335"
        }
      ],
      "AudioLinks": [
        {
          "Delta": 0,
          "AudioLinksURL": "https:\/\/www.google.com",
          "AudioLinksTitle": "Test Title  59e535c51b483"
        },
        {
          "Delta": 1,
          "AudioLinksURL": "https:\/\/example.teamaha.com",
          "AudioLinksTitle": "Test Title  59e535c51b2ea"
        }
      ],
      "MeetingID": [
        {
          "Delta": 0,
          "MeetingID": 18211
        }
      ]
    }
  ]
}
JSONDATA;
$options['headers'][] = 'Content-Length:' . strlen($data);

$curl = curl_init();
$curlopts = array(
  CURLOPT_URL => $url . $query,
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_USERAGENT => 'APITEST',
  CURLOPT_HTTPHEADER => $options['headers'],
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_CUSTOMREQUEST => 'PATCH',
);
curl_setopt_array($curl,$curlopts);
$result = curl_exec($curl);
curl_close($curl);

print $result;
Response
{
    "errors": [],
    "saved": {
        "AgendaItemID": [
            "18271"
        ]
    }
}
Error Response
{
    "errors": [
        {
            "id": "0002",
            "message": "Incorrect request type",
            "source": ""
        },
        {
            "id": "0404",
            "message": "Not Found",
            "source": "AgendaItemID"
        }
    ]
}

Field Definitions

FieldMandatoryDescription
AgendaItemIDOn UpdateUnique numeric ID
TitleTitle of the agenda item.
VisibilityPublished status, indicating whether the agenda item is visible to the public or only to staff. Allowed values: published, unpublished.
BodyFull body text to be displayed when the agenda item is viewed.
BodySummarySummary text to be displayed instead of the full body when the agenda item is viewed in lists of content.
Delta (subfield)On Update, usuallyAll multivalue fields use this subfield as an index. When creating new content, this field may be omitted. When updating, it may be omitted to add a value, but must be included to modify a pre-existing value. If Delta is used for one value in a multi-value field, it must be used for all values in the same field.
MeetingIDMultivalue field (array) containing meeting ids this agenda item is associated with. Currently, an agenda item may only be associated with a single meeting. Sub-fields: Delta, MeetingID (contains the actual numeric MeetingID).
VideoLinksMultivalue field containing links to videos (or video segments) related to the agenda item. Subfields: Delta, VideoLinksURL, VideoLinksTitle
VideoLinksURL (subfield)If VideoLinks field existsURL to the video (or video segment). Where possible, this should be entered either without protocol (//:) or as https (https://).
VideoLinksTitle (subfield)Title for the video (or video segment).
AudioLinksMultivalue field containing links to audio recordings related to the agenda item. Subfields: Delta, AudioLinksURL, AudioLinksTitle
AudioLinksURL (subfield)If AudioLinks field existsURL to the audio recording. Where possible, this should be entered either without protocol (//:) or as https (https://).
AudioLinksTitle (subfield)Title for the audio recording.
AgendaItemOriginOn CreateUnique descriptive identifier for the API client creating agenda items.
OriginAgendaItemIDOn CreateUnique agenda item ID from the third party system to allow agenda items to be cross-referenced.