Initial commit

This commit is contained in:
2019-10-13 18:38:03 +02:00
commit 759eb88ef8
10124 changed files with 838037 additions and 0 deletions

55
Plugin.php Normal file
View File

@@ -0,0 +1,55 @@
<?php namespace NicoSt\GCalendar;
use System\Classes\PluginBase;
use System\Classes\SettingsManager;
class Plugin extends PluginBase {
public function pluginDetails() {
return [
'name' => 'nicost.gcalendar::lang.plugin.name',
'description' => 'nicost.gcalendar::lang.plugin.description',
'author' => 'Nico Störzbach',
'icon' => 'icon-calendar',
];
}
public function registerComponents() {
return [
'NicoSt\GCalendar\Components\Upcoming' => 'upcoming',
'NicoSt\GCalendar\Components\EmbeddedCalendar' => 'embeddedCalendar'
];
}
public function registerFormWidgets() {
return [
'NicoSt\GCalendar\FormWidgets\OAuth' => 'OAuth',
'NicoSt\GCalendar\FromWidgets\CalendarSelector' => 'CalendarSelector'
];
}
public function registerSettings() {
return [
'settings' => [
'label' => 'nicost.gcalendar::lang.settings.label',
'description' => 'nicost.gcalendar::lang.settings.description',
'category' => SettingsManager::CATEGORY_MISC,
'icon' => 'icon-calendar',
'class' => 'NicoSt\GCalendar\Models\Settings',
'order' => 500,
'keywords' => '',
'permissions' => ['nicost.gcalendar.access_config']
]
];
}
public function registerPermissions() {
return [
'nicost.gcalendar.access_config' => [
'label' => 'Manage G-Calendar',
'tab' => 'G-Calendar',
'order' => 200
],
];
}
}

110
classes/Event.php Normal file
View File

@@ -0,0 +1,110 @@
<?php namespace NicoSt\GCalendar\Classes;
class Event {
var $calendar_name;
var $event_name;
var $location;
var $description;
var $start_time;
var $end_time;
var $color;
/**
* @return mixed
*/
public function getCalendarName() {
return $this->calendar_name;
}
/**
* @param mixed $calendar_name
*/
public function setCalendarName($calendar_name) {
$this->calendar_name = $calendar_name;
}
/**
* @return mixed
*/
public function getEventName() {
return $this->event_name;
}
/**
* @param mixed $event_name
*/
public function setEventName($event_name) {
$this->event_name = $event_name;
}
/**
* @return mixed
*/
public function getLocation() {
return $this->location;
}
/**
* @param mixed $location
*/
public function setLocation($location) {
$this->location = $location;
}
/**
* @return mixed
*/
public function getDescription() {
return $this->description;
}
/**
* @param mixed $description
*/
public function setDescription($description) {
$this->description = $description;
}
/**
* @return mixed
*/
public function getStartTime() {
return $this->start_time;
}
/**
* @param mixed $start_time
*/
public function setStartTime($start_time) {
$this->start_time = $start_time;
}
/**
* @return mixed
*/
public function getEndTime() {
return $this->end_time;
}
/**
* @param mixed $end_time
*/
public function setEndTime($end_time) {
$this->end_time = $end_time;
}
/**
* @return mixed
*/
public function getColor() {
return $this->color;
}
/**
* @param mixed $color
*/
public function setColor($color) {
$this->color = $color;
}
}

View File

@@ -0,0 +1,53 @@
<?php namespace NicoSt\GCalendar\Classes;
use Google_Client;
use Google_Service_Calendar;
use Log;
use NicoSt\GCalendar\Models\Settings;
class GoogleCalendarClient {
protected $client;
public function __construct($tryRefreshToken = false) {
$this->client = new Google_Client();
$this->client->setApplicationName(Settings::get('application_name'));
$this->client->setClientId(Settings::get('client_id'));
$this->client->setClientSecret(Settings::get('client_secret'));
$this->client->setAccessType('offline');
$this->client->setRedirectUri(url('/gcalendar/oauth2callback'));
$this->client->addScope(Google_Service_Calendar::CALENDAR);
// Set access toke on client if exist.
$accessToken = Settings::get('access_token');
if (!empty($accessToken)) {
$this->client->setAccessToken($accessToken);
}
// If there is no previous token or it's expired.
if ($tryRefreshToken && $this->client->isAccessTokenExpired()) {
// Refresh the token if possible.
if ($this->client->getRefreshToken()) {
$this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken());
// Save new access token
Settings::set('access_token', $this->client->getAccessToken());
} else {
Log::warning('G-Calendar: No valid access token given.');
}
}
}
public function getClient() {
return $this->client;
}
public function getService() {
return new Google_Service_Calendar($this->client);
}
}

View File

@@ -0,0 +1,106 @@
<?php namespace NicoSt\GCalendar\Classes;
use Log;
use Cache;
use NicoSt\GCalendar\Models\Settings;
class GoogleCalendarService {
private $cacheTimeDefault = 15;
private $cacheKeyCalendarList = 'GCalendar-CalendarList';
private $cacheKeyCalendarGet = 'GCalendar-CalendarGet#';
private $service;
public function __construct() {
$client = new GoogleCalendarClient(true);
$this->service = $client->getService();
}
public function getCalendar($calendarId, $maxEvents = '10') {
$cachedCalendarGet = Cache::get($this->cacheKeyCalendarGet.$calendarId);
$cacheTime = Settings::get('cache_time', $this->cacheTimeDefault);
if(!isset($cachedCalendarGet) || $cacheTime == 0) {
// "timeMin" -> Set param to only get upcoming events
// "singleEvents" -> Split recurring events into single events
// "orderBy" -> Order events by startTime
// "maxResults" -> Maximum number of events returned on one page
$params = array(
'timeMin' => date( DATE_RFC3339, time()),
'singleEvents' => 'true',
'orderBy' => 'startTime',
'maxResults' => $maxEvents
);
try {
Log::debug('G-Calendar: Call google with #getCalendar.');
$response = $this->service->events->listEvents($calendarId, $params);
Cache::put($this->cacheKeyCalendarGet.$calendarId, $response, $cacheTime);
return $response;
} catch (\Exception $e) {
$json = json_decode($e->getMessage(), true);
Log::error('G-Calendar: Exception occurred on #getCalendar => ['. print_r($json, true).']');
return $json;
}
}
return $cachedCalendarGet;
}
public function calendarList() {
$cachedCalendarList = Cache::get($this->cacheKeyCalendarList);
$cacheTime = Settings::get('cache_time', $this->cacheTimeDefault);
if(!isset($cachedCalendarList) || $cacheTime == 0) {
try {
Log::debug('G-Calendar: Call google with #calendarList.');
$response = $this->service->calendarList->listCalendarList()->getItems();
Cache::put($this->cacheKeyCalendarList, $response, $cacheTime);
return $response;
} catch (\Exception $e) {
$json = json_decode($e->getMessage(), true);
Log::error('G-Calendar: Exception occurred on #calendarList => ['. print_r($json, true).']');
return $json;
}
}
return $cachedCalendarList;
}
/**
* Returns a array like this:
*
* @param String $maxEvents - Amount of events to return
*
* @return array['calendar_1']
* ['event_1']
* ['event_2']
* array['calendar_2']
* ['event_1']
* ['event_2']
* ...
*/
public function allEventList($maxEvents) {
$savedCalendars = array();
$events = array();
if (!empty(Settings::get('calendar_selector'))) {
$savedCalendars = Settings::get('calendar_selector');
}
foreach($savedCalendars as $savedCalendar) {
$calendarEvents = $this->getCalendar($savedCalendar['id'], $maxEvents);
// Check for error to passthrough
if (isset($calendarEvents['error'])) {
return $calendarEvents;
}
array_push($events, $calendarEvents);
}
return $events;
}
}

View File

@@ -0,0 +1,267 @@
<?php namespace NicoSt\GCalendar\Components;
use Cms\Classes\ComponentBase;
use NicoSt\GCalendar\Classes\Event;
use NicoSt\GCalendar\Classes\GoogleCalendarService;
use Mobile_Detect;
use Log;
class EmbeddedCalendar extends ComponentBase {
private $calPropSeparator = '§§';
private $googleEmbedUrl = 'https://calendar.google.com/calendar/embed';
/**
* Returns information about this component, including name and description.
*/
public function componentDetails() {
return [
'name' => 'nicost.gcalendar::lang.component.embeddedCalendar.name',
'description' => 'nicost.gcalendar::lang.component.embeddedCalendar.description'
];
}
public function defineProperties() {
$calendars = $this->calendarProperties();
$customProperties = [
'calendarTitle' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.calendarTitle.title',
'type' => 'string'
],
'width' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.width.title',
'type' => 'string',
'default' => 1200,
'validationPattern' => '^[0-9]{1,4}$',
'validationMessage' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.width.validationMessage'
],
'height' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.height.title',
'type' => 'string',
'default' => 1000,
'validationPattern' => '^[0-9]{1,4}$',
'validationMessage' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.height.validationMessage'
],
'timezone' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.timezone.title',
'type' => 'dropdown',
'default' => 'Europe/Berlin'
],
'language' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.language.title',
'type' => 'dropdown',
'default' => 'en'
],
'viewMode' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.title',
'type' => 'dropdown',
'default' => 'month',
'placeholder' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.placeholder',
'description' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.description',
'options' => ['month'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.month',
'week'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.week',
'agenda'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.agenda',
'dynamic'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.viewMode.dynamic']
],
'weekStart' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.weekStart.title',
'type' => 'dropdown',
'default' => 'mon',
'options' => ['sat'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.weekStart.sat',
'sun'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.weekStart.sun',
'mon'=>'nicost.gcalendar::lang.component.embeddedCalendar.properties.weekStart.mon']
],
'bgcolor' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.bgcolor.title',
'type' => 'string',
'default' => '#FFFFFF',
'description' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.bgcolor.description',
'validationPattern' => '^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',
'validationMessage' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.bgcolor.validationMessage'
],
'showTitle' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showTitle.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
],
'showPrint' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showPrint.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
],
'showTimezone' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showTimezone.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
],
'showNav' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showNav.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
],
'showDate' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showDate.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
],
'showTabs' => [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showTabs.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
],
'showCalendarList'=> [
'title' => 'nicost.gcalendar::lang.component.embeddedCalendar.properties.showCalendarList.title',
'type' => 'checkbox',
'default' => 1,
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.toggleElements'
]
];
$result = array_merge($customProperties, $calendars);
return $result;
}
public function getUrl() {
$data = [
'showPrint' => $this->property('showPrint', 1),
'showTz' => $this->property('showTimezone', 1),
'showCalendars' => $this->property('showCalendars', 1),
'showTabs' => $this->property('showTabs', 1),
'showDate' => $this->property('showDate', 1),
'showNav' => $this->property('showNav', 1),
'showTitle' => $this->property('showTitle', 1),
'hl' => $this->property('language', 'en'),
'bgcolor' => $this->property('bgcolor', '#FFFFFF'),
'ctz' => $this->property('timezone'. 'Europe/Berlin')
];
// Set title
if(empty($this->property('calendarTitle')) ) {
$data['showTitle'] = 0;
} else {
$data += ['title'=>$this->property('calendarTitle')];
}
// Set view mode
$viewMode = $this->property('viewMode', 'month');
if($viewMode == 'month') {
$data += ['mode' => 'MONTH'];
} else if($viewMode == 'agenda') {
$data += ['mode' => 'AGENDA'];
} else if($viewMode == 'week') {
$data += ['mode' => 'WEEK'];
} else if($viewMode == 'dynamic') {
$detect = new Mobile_Detect;
if($detect->isMobile()) {
$data += ['mode' => 'AGENDA'];
} else {
$data += ['mode' => 'MONTH'];
}
}
// Set week start
$weekStart = $this->property('weekStart','mon');
if($weekStart == 'sat') {
$data += ['wkst' => 7];
} else if($weekStart == 'sun') {
$data += ['wkst' => 1];
} else if($weekStart == 'mon') {
$data += ['wkst' => 2];
}
$calendarList = $this->getCalendarsFromProperties();
$dataParams = http_build_query($data);
$calendarParams = "";
$i = 0;
$calCount = count($calendarList);
foreach($calendarList as $calendarData) {
$calQuery = http_build_query($calendarData);
$calendarParams = $calendarParams.$calQuery;
if($i != $calCount - 1){
$calendarParams = $calendarParams.'&';
}
$i++;
}
$url = $this->googleEmbedUrl.'?'.$dataParams.'&'.$calendarParams;
return $url;
}
public function getWidth() {
return $this->property('width', 1200);
}
public function getHeight() {
return $this->property('height', 1000);
}
public function getLanguageOptions() {
$strJsonFileContents = file_get_contents(dirname(__FILE__)."/../resources/calendar_language.json");
return json_decode($strJsonFileContents, true);
}
public function getTimezoneOptions() {
$strJsonFileContents = file_get_contents(dirname(__FILE__)."/../resources/calendar_timezone.json");
return json_decode($strJsonFileContents, true);
}
private function getCalendarsFromProperties() {
$calendars = [];
foreach($this->properties as $key => $value){
$exp_key = explode($this->calPropSeparator, $key);
if($exp_key[0] == 'cal' && $this->property($key) == true){
$calendar = [];
$calendar['src'] = $exp_key[2];
$calendar['color'] = $exp_key[1];
$calendars[] = $calendar;
}
}
return $calendars;
}
private function calendarProperties() {
// ToDo: Add cache => https://octobercms.com/docs/services/cache
$service = new GoogleCalendarService();
$calendars = $service->calendarList();
if (isset($calendars['error'])) {
$calendars = '';
}
$calendarProperties = [];
if (!empty($calendars)) {
foreach ($calendars as &$calendar) {
$calendarData = [];
$calendarData['id'] = $calendar->id;
$calendarData['title'] = $calendar->summary;
$calendarData['color'] = $calendar->backgroundColor;
$property = $this->createProperty($calendarData);
$calendarProperties = array_merge($calendarProperties, $property);
}
}
return $calendarProperties;
}
private function createProperty(array $calendarData) {
return [
'cal'.$this->calPropSeparator.$calendarData['color'].$this->calPropSeparator.$calendarData['id'] => [
'title' => $calendarData['title'],
'type' => 'checkbox',
'group' => 'nicost.gcalendar::lang.component.embeddedCalendar.groups.calendars',
'default' => 0,
]
];
}
}

96
components/Upcoming.php Normal file
View File

@@ -0,0 +1,96 @@
<?php namespace NicoSt\GCalendar\Components;
use Cms\Classes\ComponentBase;
use NicoSt\GCalendar\Classes\Event;
use NicoSt\GCalendar\Classes\GoogleCalendarService;
use NicoSt\GCalendar\Models\Settings;
use Log;
class Upcoming extends ComponentBase {
/**
* Returns information about this component, including name and description.
*/
public function componentDetails() {
return [
'name' => 'nicost.gcalendar::lang.component.upcoming.name',
'description' => 'nicost.gcalendar::lang.component.upcoming.description'
];
}
/*
public function get() {
$connector = new GoogleCalendarService();
return $connector->calendarList();
}
*/
public function defineProperties() {
return [
'maxEvents' => [
'title' => 'Max Events',
'description' => 'The maximal amount of events which shall be displayed.',
'default' => 5,
'type' => 'string',
'validationPattern' => '^[0-9]+$',
'validationMessage' => 'The Max Events property can contain only numeric symbols'
]
];
}
public function events() {
$connector = new GoogleCalendarService();
$maxEvents = $this->property('maxEvents');
$calendarEvents = $connector->allEventList($maxEvents);
// Check for error to pass through
if (isset($calendarEvents['error'])) {
return $calendarEvents;
}
if (!is_array($calendarEvents) && !is_object($calendarEvents)) {
return [];
}
$eventObjects = self::mapToEventDto($calendarEvents);
// Sort events from all calendars
usort($eventObjects, array("NicoSt\GCalendar\Components\Upcoming", "sortEventsByDate"));
// Trim to maxEvents value and return
return $output = array_slice($eventObjects, 0, $maxEvents);
}
private static function mapToEventDto($calendarEvents){
$savedCalendars = Settings::get('calendar_selector');
$eventObjects = [];
foreach ($calendarEvents as $calendarEvent) {
foreach ($calendarEvent as $event) {
// Map to data response object.
$eventObject = new Event();
$eventObject->setCalendarName($calendarEvent->summary);
$eventObject->setEventName($event->summary);
$eventObject->setLocation($event->location);
$eventObject->setDescription($event->description);
$eventObject->setStartTime($event->start->dateTime);
$eventObject->setEndTime($event->end->dateTime);
array_push($eventObjects, $eventObject);
foreach($savedCalendars as $calendar) {
if($calendar['id'] == $event->organizer->email) {
$eventObject->setColor($calendar['color']);
}
}
}
}
return $eventObjects;
}
private function sortEventsByDate($a, $b) {
if ($a->start_time == $b->start_time) {
return 0;
}
return ($a->start_time < $b->start_time) ? -1 : 1;
}
}

View File

@@ -0,0 +1,6 @@
<iframe
src="{{ __SELF__.getUrl|raw }}"
width="{{ __SELF__.getWidth }}"
height="{{ __SELF__.getHeight }}"
frameborder="0">
</iframe>

View File

@@ -0,0 +1,37 @@
{% set events = upcoming.events %}
{% if not events.error and events is not empty %}
<table>
<thead>
<th>Calendar Name</th>
<th>Event Name</th>
<th>Location</th>
<th>Description</th>
<th>Start Time</th>
<th>End Time</th>
</thead>
<tbody>
{% for event in events %}
<tr>
<td style="padding: 0 10px 5px 20px; border-left: 6px solid {{ event.color }};">{{ event.calendar_name }}</td>
<td style="padding: 0 10px 5px 20px;">{{ event.event_name }}</td>
<td style="padding: 0 10px 5px 20px;">{{ event.location }}</td>
<td style="padding: 0 10px 5px 20px;">{{ event.description|raw }}</td>
<td style="padding: 0 10px 5px 20px;">{{ event.start_time|date("Y-m-d H:i") }}</td>
<td style="padding: 0 10px 5px 20px;">{{ event.end_time|date("Y-m-d H:i") }}</td>
</tr>
{% else %}
<tr>
<td colspan="6">No events found.</td>
</tr>
{% endfor %}
</tbody>
</table>
{% elseif events.error %}
{% for item in events %}
<p style="color: red"><b>{{ item.code }}</b> - {{ item.message }}</p>
{% endfor %}
{% else %}
<p>Events cannot be displayed.</p>
{% endif %}

16
composer.json Normal file
View File

@@ -0,0 +1,16 @@
{
"name": "nicost/gcalendar",
"type": "october-plugin",
"description": "Calendar plugin which uses the Google Calendar API. Provides a component to show the next upcoming events from google calendars.",
"keywords": ["october", "cms", "google", "calendar", "events", "schedule", "kalender"],
"authors": [
{
"name": "Nico Störzbach"
}
],
"require": {
"php": ">=7.0",
"google/apiclient": "^2.0",
"mobiledetect/mobiledetectlib": "^2.8"
}
}

807
composer.lock generated Normal file
View File

@@ -0,0 +1,807 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "725a5349d31866f61eb3e259a11c452a",
"packages": [
{
"name": "firebase/php-jwt",
"version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
"reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
"reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": " 4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"Firebase\\JWT\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Neuman Vong",
"email": "neuman+pear@twilio.com",
"role": "Developer"
},
{
"name": "Anant Narayanan",
"email": "anant@php.net",
"role": "Developer"
}
],
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt",
"time": "2017-06-27T22:17:23+00:00"
},
{
"name": "google/apiclient",
"version": "v2.2.4",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client.git",
"reference": "d6c7563bdf88d6a0719ea63e21c74dc86032364e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/d6c7563bdf88d6a0719ea63e21c74dc86032364e",
"reference": "d6c7563bdf88d6a0719ea63e21c74dc86032364e",
"shasum": ""
},
"require": {
"firebase/php-jwt": "~2.0||~3.0||~4.0||~5.0",
"google/apiclient-services": "~0.13",
"google/auth": "^1.0",
"guzzlehttp/guzzle": "~5.3.1||~6.0",
"guzzlehttp/psr7": "^1.2",
"monolog/monolog": "^1.17",
"php": ">=5.4",
"phpseclib/phpseclib": "~0.3.10||~2.0"
},
"require-dev": {
"cache/filesystem-adapter": "^0.3.2",
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
"phpcompatibility/php-compatibility": "^9.2",
"phpunit/phpunit": "~4.8.36",
"squizlabs/php_codesniffer": "~2.3",
"symfony/css-selector": "~2.1",
"symfony/dom-crawler": "~2.1"
},
"suggest": {
"cache/filesystem-adapter": "For caching certs and tokens (using Google_Client::setCache)"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
}
},
"autoload": {
"psr-0": {
"Google_": "src/"
},
"classmap": [
"src/Google/Service/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "Client library for Google APIs",
"homepage": "http://developers.google.com/api-client-library/php",
"keywords": [
"google"
],
"time": "2019-08-19T18:09:46+00:00"
},
{
"name": "google/apiclient-services",
"version": "v0.110",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "9d9e0a4e180cf09a52ab04535ca4f669031f8c54"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/9d9e0a4e180cf09a52ab04535ca4f669031f8c54",
"reference": "9d9e0a4e180cf09a52ab04535ca4f669031f8c54",
"shasum": ""
},
"require": {
"php": ">=5.4"
},
"require-dev": {
"phpunit/phpunit": "~4.8"
},
"type": "library",
"autoload": {
"psr-0": {
"Google_Service_": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "Client library for Google APIs",
"homepage": "http://developers.google.com/api-client-library/php",
"keywords": [
"google"
],
"time": "2019-08-17T00:23:23+00:00"
},
{
"name": "google/auth",
"version": "v1.5.2",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git",
"reference": "2ee962e5df3e9427fda859f1b0515d6d62c4afa5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/2ee962e5df3e9427fda859f1b0515d6d62c4afa5",
"reference": "2ee962e5df3e9427fda859f1b0515d6d62c4afa5",
"shasum": ""
},
"require": {
"firebase/php-jwt": "~2.0|~3.0|~4.0|~5.0",
"guzzlehttp/guzzle": "~5.3.1|~6.0",
"guzzlehttp/psr7": "^1.2",
"php": ">=5.4",
"psr/cache": "^1.0",
"psr/http-message": "^1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^1.11",
"guzzlehttp/promises": "0.1.1|^1.3",
"phpseclib/phpseclib": "^2",
"phpunit/phpunit": "^4.8.36|^5.7",
"sebastian/comparator": ">=1.2.3"
},
"suggest": {
"phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings. Please require version ^2."
},
"type": "library",
"autoload": {
"psr-4": {
"Google\\Auth\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "Google Auth Library for PHP",
"homepage": "http://github.com/google/google-auth-library-php",
"keywords": [
"Authentication",
"google",
"oauth2"
],
"time": "2019-07-22T21:01:31+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "6.3.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.4",
"php": ">=5.5"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
"psr/log": "^1.0"
},
"suggest": {
"psr/log": "Required for using the Log middleware"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "6.3-dev"
}
},
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle is a PHP HTTP client library",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"time": "2018-04-22T15:46:56+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "v1.3.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"shasum": ""
},
"require": {
"php": ">=5.5.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle promises library",
"keywords": [
"promise"
],
"time": "2016-12-20T10:07:11+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0",
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
},
"suggest": {
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
"time": "2019-07-01T23:21:34+00:00"
},
{
"name": "mobiledetect/mobiledetectlib",
"version": "2.8.33",
"source": {
"type": "git",
"url": "https://github.com/serbanghita/Mobile-Detect.git",
"reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/cd385290f9a0d609d2eddd165a1e44ec1bf12102",
"reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102",
"shasum": ""
},
"require": {
"php": ">=5.0.0"
},
"require-dev": {
"phpunit/phpunit": "~4.8.35||~5.7"
},
"type": "library",
"autoload": {
"classmap": [
"Mobile_Detect.php"
],
"psr-0": {
"Detection": "namespaced/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Serban Ghita",
"role": "Developer",
"email": "serbanghita@gmail.com",
"homepage": "http://mobiledetect.net"
}
],
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
"homepage": "https://github.com/serbanghita/Mobile-Detect",
"keywords": [
"detect mobile devices",
"mobile",
"mobile detect",
"mobile detector",
"php mobile detect"
],
"time": "2018-09-01T15:05:15+00:00"
},
{
"name": "monolog/monolog",
"version": "1.24.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/log": "~1.0"
},
"provide": {
"psr/log-implementation": "1.0.0"
},
"require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "^5.3|^6.0"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
"psr-3"
],
"time": "2018-11-05T09:00:11+00:00"
},
{
"name": "phpseclib/phpseclib",
"version": "2.0.21",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "9f1287e68b3f283339a9f98f67515dd619e5bf9d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9f1287e68b3f283339a9f98f67515dd619e5bf9d",
"reference": "9f1287e68b3f283339a9f98f67515dd619e5bf9d",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phing/phing": "~2.7",
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"sami/sami": "~2.0",
"squizlabs/php_codesniffer": "~2.0"
},
"suggest": {
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
},
"type": "library",
"autoload": {
"files": [
"phpseclib/bootstrap.php"
],
"psr-4": {
"phpseclib\\": "phpseclib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jim Wigginton",
"role": "Lead Developer",
"email": "terrafrost@php.net"
},
{
"name": "Patrick Monnerat",
"role": "Developer",
"email": "pm@datasphere.ch"
},
{
"name": "Andreas Fischer",
"role": "Developer",
"email": "bantu@phpbb.com"
},
{
"name": "Hans-Jürgen Petrich",
"role": "Developer",
"email": "petrich@tronic-media.com"
},
{
"name": "Graham Campbell",
"role": "Developer",
"email": "graham@alt-three.com"
}
],
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
"homepage": "http://phpseclib.sourceforge.net",
"keywords": [
"BigInteger",
"aes",
"asn.1",
"asn1",
"blowfish",
"crypto",
"cryptography",
"encryption",
"rsa",
"security",
"sftp",
"signature",
"signing",
"ssh",
"twofish",
"x.509",
"x509"
],
"time": "2019-07-12T12:53:49+00:00"
},
{
"name": "psr/cache",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
"keywords": [
"cache",
"psr",
"psr-6"
],
"time": "2016-08-06T20:24:11+00:00"
},
{
"name": "psr/http-message",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2016-08-06T14:39:51+00:00"
},
{
"name": "psr/log",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2018-11-20T15:27:04+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"time": "2019-03-08T08:55:37+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=7.0"
},
"platform-dev": []
}

View File

@@ -0,0 +1,43 @@
<?php namespace NicoSt\GCalendar\Controllers;
use Backend\Classes\Controller;
use Input;
use Log;
use Lang;
use Redirect;
use NicoSt\GCalendar\Models\Settings;
use NicoSt\GCalendar\Classes\GoogleCalendarClient;
class GoogleCallback extends Controller {
public function oauth2callback() {
$error = Input::get('error');
$code = Input::get('code');
if (!empty($error)) {
Log::error('G-Calendar: Error during authorization ['. $error .'].');
die;
}
if (!empty($code)) {
Log::info('G-Calendar: Successfully authorized. Authentication code ['. $code .'].');
$class = new GoogleCalendarClient(false);
$client = $class->getClient();
$accessToken = $client->fetchAccessTokenWithAuthCode($code);
$client->setAccessToken($accessToken);
Log::info('G-Calendar: Set access-token ['. print_r($client->getAccessToken(), true) .'].');
Settings::set('access_token', $client->getAccessToken());
return Redirect::to('/backend/system/settings/update/nicost/gcalendar/settings');
}else {
Log::error('G-Calendar: Invalid callback request. Expected "code" or "error" param missing.');
}
}
}

View File

@@ -0,0 +1,54 @@
<?php namespace NicoSt\GCalendar\FormWidgets;
use Backend\Classes\FormWidgetBase;
use Log;
use Flash;
use Lang;
use NicoSt\GCalendar\Models\Settings;
use NicoSt\GCalendar\Classes\GoogleCalendarService;
class CalendarSelector extends FormWidgetBase {
protected $defaultAlias = 'calendarSelector';
public function getSaveValue($value) {
if(!isset($value)) {
return [];
}
$calendarsToSave = [];
foreach ($value as &$calendar) {
if (array_key_exists('checked', $calendar)) {
$calendarsToSave[] = $calendar;
}
}
return $calendarsToSave;
}
public function render() {
$service = new GoogleCalendarService();
$calendars = $service->calendarList();
if (isset($calendars['error'])) {
$calendars = '';
}
$this->vars['calendars'] = $calendars;
$this->vars['saved_selector'] = $this->extractIds();
return $this->makePartial('selector');
}
private function extractIds() {
$calendarSelectors = Settings::get('calendar_selector', []);
$ids = [];
foreach ($calendarSelectors as &$selector) {
$ids[] = $selector['id'];
}
return $ids;
}
}

57
formwidgets/OAuth.php Normal file
View File

@@ -0,0 +1,57 @@
<?php namespace NicoSt\GCalendar\FormWidgets;
use Backend\Classes\FormWidgetBase;
use Log;
use Flash;
use Lang;
use Redirect;
use NicoSt\GCalendar\Models\Settings;
use NicoSt\GCalendar\Classes\GoogleCalendarClient;
class OAuth extends FormWidgetBase {
protected $defaultAlias = 'googleOAuth';
public function render() {
$class = new GoogleCalendarClient(true);
$client = $class->getClient();
$this->vars['redirectUrl'] = $client->getRedirectUri();
$this->vars['isAccessTokenExpired'] = $client->isAccessTokenExpired() ? '1' : '0';
$this->vars['clientIdExist'] = null != Settings::get('client_id', null) ? '1' : '0';
$this->vars['accessToken'] = print_r(Settings::get('access_token'), true);
return $this->makePartial('oauth');
}
public function onRequestAccessToken() {
$class = new GoogleCalendarClient(true);
$client = $class->getClient();
if ($client->isAccessTokenExpired()) {
// Request authorization from the user.
$authUrl = $client->createAuthUrl();
Log::info('G-Calendar: Request authorization with URL ['. $authUrl .'].');
$this->vars['auth_url'] = $authUrl;
return $this->makePartial('gaccess');
}
Log::info('G-Calendar: Access token not expired.');
Flash::error(Lang::get('nicost.gcalendar::lang.message.accessTokenNotExpired'));
}
public function onClearAccessToken() {
Settings::set('access_token', '');
Flash::success(Lang::get('nicost.gcalendar::lang.message.accessTokenRemoved'));
$this->vars['isAccessTokenExpired'] = '1';
return Redirect::refresh();
}
}

View File

@@ -0,0 +1,72 @@
<div class="control-list">
<table class="table data">
<thead>
<tr>
<th class="list-checkbox">
<div class="checkbox custom-checkbox nolabel">
<input type="checkbox" id="checkboxAll" />
<label for="checkboxAll"></label>
</div>
</th>
<th></th>
<th><a><?= e(trans('nicost.gcalendar::lang.settings.calendarList.columnName')) ?></a></th>
<th><a><?= e(trans('nicost.gcalendar::lang.settings.calendarList.columnRole')) ?></a></th>
<th><a><?= e(trans('nicost.gcalendar::lang.settings.calendarList.columnId')) ?></a></th>
</tr>
</thead>
<tbody>
<?php if (empty($calendars)): ?>
<tr class="no-data">
<td colspan="100" class="nolink">
<p class="no-data">
<?= e(trans('nicost.gcalendar::lang.settings.calendarList.emptyList')) ?>
</p>
</td>
</tr>
<?php else: ?>
<?php foreach ($calendars as $key=>$calendar): ?>
<tr>
<td class="list-checkbox nolink">
<div class="checkbox custom-checkbox nolabel">
<input id="checkbox_<?= $key ?>"
type="checkbox"
name="Settings[calendar_selector][<?= $key ?>][checked]"
value="1"
<?php if (isset($saved_selector) && in_array($calendar->id, $saved_selector)): ?>
checked
<?php endif ?>
/>
<label for="checkbox_<?= $key ?>"></label>
</div>
</td>
<td><span style="width: 12px;height: 12px;display: inline-block;border-radius: 50%;background-color: <?= $calendar->backgroundColor ?>"></span>
<input type="hidden"
name="Settings[calendar_selector][<?= $key ?>][color]"
value="<?= $calendar->backgroundColor ?>"
/>
</td>
<td><?= $calendar->summary ?>
<input type="hidden"
name="Settings[calendar_selector][<?= $key ?>][name]"
value="<?= $calendar->summary ?>"
/>
</td>
<td><?= $calendar->accessRole ?></td>
<td><?= $calendar->id ?>
<input type="hidden"
name="Settings[calendar_selector][<?= $key ?>][id]"
value="<?= $calendar->id ?>"
/>
</td>
</tr>
<?php endforeach ?>
<?php endif ?>
</tbody>
</table>
</div>
<script>
$("#checkboxAll").click(function () {
$('input:checkbox').not(this).prop('checked', this.checked);
});
</script>

View File

@@ -0,0 +1,6 @@
<?php if (!empty($auth_url)): ?>
<p>
<?= e(trans('nicost.gcalendar::lang.settings.gaccess.text')) ?><br>
<a href="<?= $auth_url ?>" target="_blank"><?= e(trans('nicost.gcalendar::lang.settings.gaccess.button')) ?></a>
</p>
<?php endif ?>

View File

@@ -0,0 +1,47 @@
<?php if ($isAccessTokenExpired == '1'): ?>
<p class="flash-message static error w-300">
Access Token <b>not</b> valid.
</p>
<div class="callout fade in callout-info no-subheader">
<div class="header">
<i class="icon-info"></i>
<h3>Setup G-Calendar Plugin</h3>
</div>
<div class="content">
<ol>
<li>Go to <a href="https://console.developers.google.com/apis">Google APIs</a> to create a OAuth Client</li>
<li>Go to <i>"Credentials"</i> and create a new OAuth Client ID. (Create credentials > OAuth Client ID)</li>
<li>Select "Web application" and give it a name.</li>
<li>Add <b><?= $redirectUrl ?></b> to <i>"Authorised redirect URIs"</i> and create the client.</li>
<li>Copy the <i>"Client ID"</i> and <i>"Client Secret"</i> to the form above and save it.</li>
<li>Last step is to Request the access token with the button below.</li>
</ol>
</div>
</div>
<?php else: ?>
<div class="callout fade in callout-success no-icon">
<div class="header">
<h3><?= e(trans('nicost.gcalendar::lang.settings.oauth.tokenValid')) ?></h3>
</div>
</div>
<?php endif ?>
<br>
<p>
<?php if ($isAccessTokenExpired == '1' && $clientIdExist == '1'): ?>
<button type="button"
data-request="onRequestAccessToken"
data-request-update="gaccess: '#grand-access'"
class="btn btn-default">
<?= e(trans('nicost.gcalendar::lang.settings.button.requestToken')) ?>
</button>
<?php endif ?>
<?php if ($isAccessTokenExpired == '0'): ?>
<button type="button"
data-request="onClearAccessToken"
class="btn btn-danger">
<?= e(trans('nicost.gcalendar::lang.settings.button.clearToken')) ?>
</button>
<?php endif ?>
</p>
<div id="grand-access"></div>

10
lang/de/lang.php Normal file
View File

@@ -0,0 +1,10 @@
<?php return [
'plugin' => [
'name' => 'G-Calendar',
'description' => 'Kalender Plugin basierend auf der Google API.',
],
'settings' => [
'label' => 'G-Calendar',
'description' => 'Einstellungen für das G-Kalender Plugin'
],
];

142
lang/en/lang.php Normal file
View File

@@ -0,0 +1,142 @@
<?php return [
'plugin' => [
'name' => 'G-Calendar',
'description' => 'Calendar plugin which uses the google API.',
],
'component' => [
'upcoming' => [
'name' => 'Upcoming Events',
'description' => 'Returns a list of the next upcoming events.'
],
'embeddedCalendar' => [
'name' => 'Embedded Calendar',
'description' => 'Add a embedded Google calendar.',
'groups' => [
'calendars' => 'Calendars',
'toggleElements' => 'Toggle Elements'
],
'properties' => [
'calendarTitle' => [
'title' => 'Calendar Title',
],
'width' => [
'title' => 'Width',
'validationMessage' => 'The width must be numeric and not longer than 4 characters.',
],
'height' => [
'title' => 'Height',
'validationMessage' => 'The height must be numeric and not longer than 4 characters.',
],
'timezone' => [
'title' => 'Timezone',
],
'language' => [
'title' => 'Language Code',
],
'viewMode' => [
'title' => 'View Mode',
'placeholder' => 'Select a view mode',
'description' => 'Select "Dynamic" to use agenda view for mobile devices and the month view for desktop.',
'month' => 'Month',
'week' => 'Week',
'agenda' => 'Agenda',
'dynamic' => 'Dynamic'
],
'weekStart' => [
'title' => 'Week starts on',
'sat' => 'Saturday',
'sun' => 'Sunday',
'mon' => 'Monday'
],
'bgcolor' => [
'title' => 'Background color',
'description' => 'Defines the background color of the calendar head section.',
'validationMessage' => 'Background color must be a hexadecimal color code.'
],
'showTitle' => [
'title' => 'Show Title',
],
'showPrint' => [
'title' => 'Show Print Option',
],
'showTimezone' => [
'title' => 'Show Timezone',
],
'showNav' => [
'title' => 'Show Navigation',
],
'showDate' => [
'title' => 'Show Date',
],
'showTabs' => [
'title' => 'Show Tabs',
],
'showCalendarList' => [
'title' => 'Show Calendar List',
],
]
]
],
'settings' => [
'label' => 'G-Calendar',
'description' => 'Settings for G-Calendar plugin',
'tab' => [
'client' => 'Client Configuration',
'calendars' => 'Calendars',
'settings' => 'Settings'
],
'fields' => [
'applicationName' => [
'label' => 'Application Name',
'comment' => ''
],
'clientId' => [
'label' => 'Client ID',
'comment' => 'The Client ID can be found in the OAuth Credentials under Service Account.'
],
'clientSecret' => [
'label' => 'Client Secret',
'comment' => 'The Client Secret key can be found in the OAuth Credentials.'
],
'accessToken' => [
'label' => 'Access Token',
'comment' => 'Will be generated automatically.'
],
'cacheTime' => [
'label' => 'Request Cache Time',
'comment' => 'Cache Google Calendar API requests in minutes. Enter \'0\' to disable caching.'
],
'section' => [
'accessToken' => 'Access Token'
],
],
'button' => [
'requestToken' => 'Request Access Token',
'clearToken' => 'Delete Access Token'
],
'calendarList' => [
'emptyList' => 'No Calendars to show. Connect G-Calendar with your google account to see your calendars here.',
'columnName' => 'Name',
'columnRole' => 'Role',
'columnId' => 'ID'
],
'gaccess' => [
'text' => 'Follow the link below to grand G-Calendar access to you\'re Google Calendar.',
'button' => 'Grand Access'
],
'oauth' => [
'tokenNotValid' => 'Access Token <b>not</b> valid.',
'tokenValid' => 'Access Token valid.'
]
],
'message' => [
'accessTokenNotExpired' => 'Access token not expired.',
'accessTokenRemoved' => 'Successfully removed access token.'
]
];

14
models/Settings.php Normal file
View File

@@ -0,0 +1,14 @@
<?php namespace NicoSt\GCalendar\Models;
use Model;
class Settings extends Model {
public $implement = ['System.Behaviors.SettingsModel'];
// A unique code
public $settingsCode = 'g-calendar';
// Reference to field configuration
public $settingsFields = 'fields.yaml';
}

View File

@@ -0,0 +1,41 @@
tabs:
fields:
# Tab: Google Client
application_name:
label: 'nicost.gcalendar::lang.settings.fields.applicationName.label'
tab: 'nicost.gcalendar::lang.settings.tab.client'
type: text
comment: 'nicost.gcalendar::lang.settings.fields.applicationName.comment'
span: left
client_id:
label: 'nicost.gcalendar::lang.settings.fields.clientId.label'
tab: 'nicost.gcalendar::lang.settings.tab.client'
type: text
comment: 'nicost.gcalendar::lang.settings.fields.clientId.comment'
span: left
client_secret:
label: 'nicost.gcalendar::lang.settings.fields.clientSecret.label'
tab: 'nicost.gcalendar::lang.settings.tab.client'
type: text
comment: 'nicost.gcalendar::lang.settings.fields.clientSecret.comment'
span: left
google_oauth:
label: 'nicost.gcalendar::lang.settings.fields.section.accessToken'
tab: 'nicost.gcalendar::lang.settings.tab.client'
type: section
request_access_token:
tab: 'nicost.gcalendar::lang.settings.tab.client'
type: NicoSt\GCalendar\FormWidgets\OAuth
calendar_selector:
tab: 'nicost.gcalendar::lang.settings.tab.calendars'
type: NicoSt\GCalendar\FormWidgets\CalendarSelector
cache_time:
label: 'nicost.gcalendar::lang.settings.fields.cacheTime.label'
tab: 'nicost.gcalendar::lang.settings.tab.settings'
comment: 'nicost.gcalendar::lang.settings.fields.cacheTime.comment'
type: number
span: left
default: 15

View File

@@ -0,0 +1,72 @@
{
"af": "Afrikaans",
"az": "azərbaycan",
"id": "Bahasa Indonesia",
"ca": "Català",
"cy": "Cymraeg",
"da": "Dansk",
"de": "Deutsch",
"en_GB": "English (UK)",
"en": "English (US)",
"es": "Español",
"es_41": "Español (Latinoamérica)",
"eu": "euskara",
"fil": "Filipino",
"fr": "Français",
"fr_CA": "Français (Canada)",
"gl": "galego",
"hr": "Hrvatski",
"zu": "isiZulu",
"it": "Italiano",
"sw": "Kiswahili",
"lv": "Latviešu",
"lt": "Lietuvių",
"hu": "Magyar",
"ms": "Melayu",
"nl": "Nederlands",
"no": "Norsk (bokmål)",
"pl": "Polski",
"pt_BR": "Português (Brasil)",
"pt_PT": "Português (Portugal)",
"ro": "Română",
"sk": "Slovenčina",
"sl": "Slovenščina",
"fi": "Suomi",
"sv": "Svenska",
"vi": "Tiếng Việt",
"tr": "Türkçe",
"is": "íslenska",
"cs": "Čeština",
"el": "Ελληνικά",
"bg": "Български",
"mn": "монгол",
"ru": "Русский",
"sr": "Српски",
"uk": "Українська",
"hy": "Հայերեն",
"iw": "עברית",
"ar": "العربية",
"ur": "اُردُو‬",
"fa": "فارسی",
"ne": "नेपाली",
"mr": "मराठी",
"hi": "हिन्दी",
"bn": "বাংলা",
"gu": "ગુજરાતી",
"ta": "தமிழ்",
"te": "తెలుగు",
"kn": "ಕನ್ನಡ",
"ml": "മലയാളം",
"si": "සිංහල",
"th": "ภาษาไทย",
"lo": "ລາວ",
"my": "မြန်မာ",
"ka": "ქართული",
"am": "አማርኛ",
"km": "ខ្មែរ",
"zh_HK": "中文 (香港)",
"zh_CN": "中文(简体)‎",
"zh_TW": "中文(繁體)‎",
"ja": "日本語",
"ko": "한국어"
}

View File

@@ -0,0 +1,352 @@
{
"Pacific/Niue": "Pacific/Niue",
"Pacific/Pago_Pago": "Pacific/Pago_Pago",
"Pacific/Rarotonga": "Pacific/Rarotonga",
"Pacific/Honolulu": "Pacific/Honolulu",
"Pacific/Tahiti": "Pacific/Tahiti",
"Pacific/Marquesas": "Pacific/Marquesas",
"Pacific/Gambier": "Pacific/Gambier",
"America/Adak": "America/Adak",
"America/Anchorage": "America/Anchorage",
"America/Juneau": "America/Juneau",
"America/Metlakatla": "America/Metlakatla",
"America/Nome": "America/Nome",
"America/Sitka": "America/Sitka",
"America/Yakutat": "America/Yakutat",
"Pacific/Pitcairn": "Pacific/Pitcairn",
"America/Hermosillo": "America/Hermosillo",
"America/Dawson": "America/Dawson",
"America/Los_Angeles": "America/Los_Angeles",
"America/Tijuana": "America/Tijuana",
"America/Vancouver": "America/Vancouver",
"America/Whitehorse": "America/Whitehorse",
"America/Creston": "America/Creston",
"America/Dawson_Creek": "America/Dawson_Creek",
"America/Fort_Nelson": "America/Fort_Nelson",
"America/Phoenix": "America/Phoenix",
"Pacific/Galapagos": "Pacific/Galapagos",
"America/Chihuahua": "America/Chihuahua",
"America/Mazatlan": "America/Mazatlan",
"America/Belize": "America/Belize",
"America/Costa_Rica": "America/Costa_Rica",
"America/El_Salvador": "America/El_Salvador",
"America/Guatemala": "America/Guatemala",
"America/Managua": "America/Managua",
"America/Regina": "America/Regina",
"America/Swift_Current": "America/Swift_Current",
"America/Tegucigalpa": "America/Tegucigalpa",
"Pacific/Easter": "Pacific/Easter",
"America/Boise": "America/Boise",
"America/Cambridge_Bay": "America/Cambridge_Bay",
"America/Denver": "America/Denver",
"America/Edmonton": "America/Edmonton",
"America/Inuvik": "America/Inuvik",
"America/Ojinaga": "America/Ojinaga",
"America/Yellowknife": "America/Yellowknife",
"America/Eirunepe": "America/Eirunepe",
"America/Rio_Branco": "America/Rio_Branco",
"America/Guayaquil": "America/Guayaquil",
"America/Bogota": "America/Bogota",
"America/Bahia_Banderas": "America/Bahia_Banderas",
"America/North_Dakota/Beulah": "America/North_Dakota/Beulah",
"America/North_Dakota/Center": "America/North_Dakota/Center",
"America/Chicago": "America/Chicago",
"America/Indiana/Knox": "America/Indiana/Knox",
"America/Matamoros": "America/Matamoros",
"America/Menominee": "America/Menominee",
"America/Merida": "America/Merida",
"America/Mexico_City": "America/Mexico_City",
"America/Monterrey": "America/Monterrey",
"America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem",
"America/Rainy_River": "America/Rainy_River",
"America/Rankin_Inlet": "America/Rankin_Inlet",
"America/Resolute": "America/Resolute",
"America/Indiana/Tell_City": "America/Indiana/Tell_City",
"America/Winnipeg": "America/Winnipeg",
"America/Atikokan": "America/Atikokan",
"America/Cancun": "America/Cancun",
"America/Jamaica": "America/Jamaica",
"America/Panama": "America/Panama",
"America/Lima": "America/Lima",
"America/Boa_Vista": "America/Boa_Vista",
"America/Campo_Grande": "America/Campo_Grande",
"America/Cuiaba": "America/Cuiaba",
"America/Manaus": "America/Manaus",
"America/Porto_Velho": "America/Porto_Velho",
"America/Barbados": "America/Barbados",
"America/Blanc-Sablon": "America/Blanc-Sablon",
"America/Curacao": "America/Curacao",
"America/Martinique": "America/Martinique",
"America/Port_of_Spain": "America/Port_of_Spain",
"America/Puerto_Rico": "America/Puerto_Rico",
"America/Santo_Domingo": "America/Santo_Domingo",
"America/La_Paz": "America/La_Paz",
"America/Santiago": "America/Santiago",
"America/Guyana": "America/Guyana",
"America/Havana": "America/Havana",
"America/Detroit": "America/Detroit",
"America/Grand_Turk": "America/Grand_Turk",
"America/Indiana/Indianapolis": "America/Indiana/Indianapolis",
"America/Iqaluit": "America/Iqaluit",
"America/Kentucky/Louisville": "America/Kentucky/Louisville",
"America/Indiana/Marengo": "America/Indiana/Marengo",
"America/Kentucky/Monticello": "America/Kentucky/Monticello",
"America/Nassau": "America/Nassau",
"America/New_York": "America/New_York",
"America/Nipigon": "America/Nipigon",
"America/Pangnirtung": "America/Pangnirtung",
"America/Indiana/Petersburg": "America/Indiana/Petersburg",
"America/Port-au-Prince": "America/Port-au-Prince",
"America/Thunder_Bay": "America/Thunder_Bay",
"America/Toronto": "America/Toronto",
"America/Indiana/Vevay": "America/Indiana/Vevay",
"America/Indiana/Vincennes": "America/Indiana/Vincennes",
"America/Indiana/Winamac": "America/Indiana/Winamac",
"America/Asuncion": "America/Asuncion",
"America/Caracas": "America/Caracas",
"America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca": "America/Argentina/Catamarca",
"America/Argentina/Cordoba": "America/Argentina/Cordoba",
"America/Argentina/Jujuy": "America/Argentina/Jujuy",
"America/Argentina/La_Rioja": "America/Argentina/La_Rioja",
"America/Argentina/Mendoza": "America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos",
"America/Argentina/Salta": "America/Argentina/Salta",
"America/Argentina/San_Juan": "America/Argentina/San_Juan",
"America/Argentina/Tucuman": "America/Argentina/Tucuman",
"America/Argentina/Ushuaia": "America/Argentina/Ushuaia",
"Atlantic/Bermuda": "Atlantic/Bermuda",
"America/Glace_Bay": "America/Glace_Bay",
"America/Goose_Bay": "America/Goose_Bay",
"America/Halifax": "America/Halifax",
"America/Moncton": "America/Moncton",
"America/Thule": "America/Thule",
"America/Araguaina": "America/Araguaina",
"America/Bahia": "America/Bahia",
"America/Belem": "America/Belem",
"America/Fortaleza": "America/Fortaleza",
"America/Maceio": "America/Maceio",
"America/Recife": "America/Recife",
"America/Santarem": "America/Santarem",
"America/Sao_Paulo": "America/Sao_Paulo",
"Atlantic/Stanley": "Atlantic/Stanley",
"America/Cayenne": "America/Cayenne",
"Antarctica/Palmer": "Antarctica/Palmer",
"America/Punta_Arenas": "America/Punta_Arenas",
"Antarctica/Rothera": "Antarctica/Rothera",
"America/Paramaribo": "America/Paramaribo",
"America/Montevideo": "America/Montevideo",
"America/Argentina/San_Luis": "America/Argentina/San_Luis",
"America/St_Johns": "America/St_Johns",
"America/Noronha": "America/Noronha",
"America/Miquelon": "America/Miquelon",
"Atlantic/South_Georgia": "Atlantic/South_Georgia",
"America/Godthab": "America/Godthab",
"Atlantic/Cape_Verde": "Atlantic/Cape_Verde",
"Atlantic/Azores": "Atlantic/Azores",
"UTC": "UTC",
"Etc/GMT": "Etc/GMT",
"Africa/Abidjan": "Africa/Abidjan",
"Africa/Accra": "Africa/Accra",
"Africa/Bissau": "Africa/Bissau",
"America/Danmarkshavn": "America/Danmarkshavn",
"Africa/Monrovia": "Africa/Monrovia",
"Atlantic/Reykjavik": "Atlantic/Reykjavik",
"Africa/Sao_Tome": "Africa/Sao_Tome",
"America/Scoresbysund": "America/Scoresbysund",
"Europe/Dublin": "Europe/Dublin",
"Africa/Casablanca": "Africa/Casablanca",
"Africa/Algiers": "Africa/Algiers",
"Africa/Tunis": "Africa/Tunis",
"Europe/London": "Europe/London",
"Africa/Lagos": "Africa/Lagos",
"Africa/Ndjamena": "Africa/Ndjamena",
"Atlantic/Faroe": "Atlantic/Faroe",
"Atlantic/Canary": "Atlantic/Canary",
"Europe/Lisbon": "Europe/Lisbon",
"Atlantic/Madeira": "Atlantic/Madeira",
"Africa/El_Aaiun": "Africa/El_Aaiun",
"Europe/Amsterdam": "Europe/Amsterdam",
"Europe/Andorra": "Europe/Andorra",
"Europe/Belgrade": "Europe/Belgrade",
"Europe/Berlin": "Europe/Berlin",
"Europe/Brussels": "Europe/Brussels",
"Europe/Budapest": "Europe/Budapest",
"Africa/Ceuta": "Africa/Ceuta",
"Europe/Gibraltar": "Europe/Gibraltar",
"Europe/Copenhagen": "Europe/Copenhagen",
"Europe/Luxembourg": "Europe/Luxembourg",
"Europe/Madrid": "Europe/Madrid",
"Europe/Malta": "Europe/Malta",
"Europe/Monaco": "Europe/Monaco",
"Europe/Oslo": "Europe/Oslo",
"Europe/Paris": "Europe/Paris",
"Europe/Prague": "Europe/Prague",
"Europe/Rome": "Europe/Rome",
"Europe/Stockholm": "Europe/Stockholm",
"Europe/Tirane": "Europe/Tirane",
"Europe/Warsaw": "Europe/Warsaw",
"Europe/Vienna": "Europe/Vienna",
"Europe/Zurich": "Europe/Zurich",
"Africa/Cairo": "Africa/Cairo",
"Europe/Kaliningrad": "Europe/Kaliningrad",
"Africa/Tripoli": "Africa/Tripoli",
"Africa/Johannesburg": "Africa/Johannesburg",
"Antarctica/Troll": "Antarctica/Troll",
"Africa/Khartoum": "Africa/Khartoum",
"Africa/Maputo": "Africa/Maputo",
"Africa/Windhoek": "Africa/Windhoek",
"Asia/Baghdad": "Asia/Baghdad",
"Asia/Qatar": "Asia/Qatar",
"Asia/Riyadh": "Asia/Riyadh",
"Asia/Famagusta": "Asia/Famagusta",
"Asia/Jerusalem": "Asia/Jerusalem",
"Europe/Kirov": "Europe/Kirov",
"Europe/Minsk": "Europe/Minsk",
"Europe/Moscow": "Europe/Moscow",
"Europe/Simferopol": "Europe/Simferopol",
"Africa/Juba": "Africa/Juba",
"Africa/Nairobi": "Africa/Nairobi",
"Asia/Amman": "Asia/Amman",
"Europe/Athens": "Europe/Athens",
"Asia/Beirut": "Asia/Beirut",
"Europe/Bucharest": "Europe/Bucharest",
"Asia/Damascus": "Asia/Damascus",
"Asia/Gaza": "Asia/Gaza",
"Asia/Hebron": "Asia/Hebron",
"Europe/Helsinki": "Europe/Helsinki",
"Europe/Kiev": "Europe/Kiev",
"Europe/Chisinau": "Europe/Chisinau",
"Asia/Nicosia": "Asia/Nicosia",
"Europe/Riga": "Europe/Riga",
"Europe/Zaporozhye": "Europe/Zaporozhye",
"Europe/Sofia": "Europe/Sofia",
"Europe/Tallinn": "Europe/Tallinn",
"Europe/Uzhgorod": "Europe/Uzhgorod",
"Europe/Vilnius": "Europe/Vilnius",
"Antarctica/Syowa": "Antarctica/Syowa",
"Europe/Istanbul": "Europe/Istanbul",
"Asia/Yerevan": "Asia/Yerevan",
"Asia/Baku": "Asia/Baku",
"Europe/Astrakhan": "Europe/Astrakhan",
"Asia/Tbilisi": "Asia/Tbilisi",
"Asia/Dubai": "Asia/Dubai",
"Indian/Mauritius": "Indian/Mauritius",
"Indian/Reunion": "Indian/Reunion",
"Europe/Samara": "Europe/Samara",
"Europe/Saratov": "Europe/Saratov",
"Indian/Mahe": "Indian/Mahe",
"Europe/Ulyanovsk": "Europe/Ulyanovsk",
"Europe/Volgograd": "Europe/Volgograd",
"Asia/Kabul": "Asia/Kabul",
"Asia/Tehran": "Asia/Tehran",
"Indian/Kerguelen": "Indian/Kerguelen",
"Asia/Yekaterinburg": "Asia/Yekaterinburg",
"Indian/Maldives": "Indian/Maldives",
"Antarctica/Mawson": "Antarctica/Mawson",
"Asia/Karachi": "Asia/Karachi",
"Asia/Dushanbe": "Asia/Dushanbe",
"Asia/Ashgabat": "Asia/Ashgabat",
"Asia/Samarkand": "Asia/Samarkand",
"Asia/Tashkent": "Asia/Tashkent",
"Asia/Aqtobe": "Asia/Aqtobe",
"Asia/Aqtau": "Asia/Aqtau",
"Asia/Atyrau": "Asia/Atyrau",
"Asia/Oral": "Asia/Oral",
"Asia/Qyzylorda": "Asia/Qyzylorda",
"Asia/Colombo": "Asia/Colombo",
"Asia/Kolkata": "Asia/Kolkata",
"Asia/Kathmandu": "Asia/Kathmandu",
"Asia/Dhaka": "Asia/Dhaka",
"Asia/Thimphu": "Asia/Thimphu",
"Indian/Chagos": "Indian/Chagos",
"Asia/Bishkek": "Asia/Bishkek",
"Asia/Omsk": "Asia/Omsk",
"Asia/Almaty": "Asia/Almaty",
"Asia/Qostanay": "Asia/Qostanay",
"Asia/Urumqi": "Asia/Urumqi",
"Antarctica/Vostok": "Antarctica/Vostok",
"Indian/Cocos": "Indian/Cocos",
"Asia/Yangon": "Asia/Yangon",
"Asia/Barnaul": "Asia/Barnaul",
"Asia/Hovd": "Asia/Hovd",
"Antarctica/Davis": "Antarctica/Davis",
"Asia/Bangkok": "Asia/Bangkok",
"Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh",
"Asia/Krasnoyarsk": "Asia/Krasnoyarsk",
"Asia/Novokuznetsk": "Asia/Novokuznetsk",
"Asia/Novosibirsk": "Asia/Novosibirsk",
"Asia/Tomsk": "Asia/Tomsk",
"Indian/Christmas": "Indian/Christmas",
"Asia/Jakarta": "Asia/Jakarta",
"Asia/Pontianak": "Asia/Pontianak",
"Asia/Brunei": "Asia/Brunei",
"Asia/Macau": "Asia/Macau",
"Asia/Shanghai": "Asia/Shanghai",
"Asia/Hong_Kong": "Asia/Hong_Kong",
"Asia/Irkutsk": "Asia/Irkutsk",
"Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur",
"Asia/Kuching": "Asia/Kuching",
"Asia/Manila": "Asia/Manila",
"Asia/Singapore": "Asia/Singapore",
"Asia/Taipei": "Asia/Taipei",
"Asia/Choibalsan": "Asia/Choibalsan",
"Asia/Ulaanbaatar": "Asia/Ulaanbaatar",
"Antarctica/Casey": "Antarctica/Casey",
"Australia/Perth": "Australia/Perth",
"Asia/Makassar": "Asia/Makassar",
"Australia/Eucla": "Australia/Eucla",
"Asia/Khandyga": "Asia/Khandyga",
"Asia/Yakutsk": "Asia/Yakutsk",
"Asia/Chita": "Asia/Chita",
"Asia/Tokyo": "Asia/Tokyo",
"Asia/Pyongyang": "Asia/Pyongyang",
"Asia/Seoul": "Asia/Seoul",
"Asia/Jayapura": "Asia/Jayapura",
"Asia/Dili": "Asia/Dili",
"Pacific/Palau": "Pacific/Palau",
"Australia/Darwin": "Australia/Darwin",
"Australia/Adelaide": "Australia/Adelaide",
"Australia/Broken_Hill": "Australia/Broken_Hill",
"Pacific/Guam": "Pacific/Guam",
"Pacific/Chuuk": "Pacific/Chuuk",
"Antarctica/DumontDUrville": "Antarctica/DumontDUrville",
"Australia/Brisbane": "Australia/Brisbane",
"Australia/Lindeman": "Australia/Lindeman",
"Australia/Currie": "Australia/Currie",
"Australia/Hobart": "Australia/Hobart",
"Australia/Melbourne": "Australia/Melbourne",
"Australia/Sydney": "Australia/Sydney",
"Pacific/Port_Moresby": "Pacific/Port_Moresby",
"Asia/Ust-Nera": "Asia/Ust-Nera",
"Asia/Vladivostok": "Asia/Vladivostok",
"Australia/Lord_Howe": "Australia/Lord_Howe",
"Pacific/Bougainville": "Pacific/Bougainville",
"Pacific/Kosrae": "Pacific/Kosrae",
"Antarctica/Macquarie": "Antarctica/Macquarie",
"Asia/Magadan": "Asia/Magadan",
"Pacific/Noumea": "Pacific/Noumea",
"Pacific/Norfolk": "Pacific/Norfolk",
"Pacific/Pohnpei": "Pacific/Pohnpei",
"Asia/Sakhalin": "Asia/Sakhalin",
"Pacific/Guadalcanal": "Pacific/Guadalcanal",
"Asia/Srednekolymsk": "Asia/Srednekolymsk",
"Pacific/Efate": "Pacific/Efate",
"Asia/Anadyr": "Asia/Anadyr",
"Pacific/Fiji": "Pacific/Fiji",
"Pacific/Tarawa": "Pacific/Tarawa",
"Asia/Kamchatka": "Asia/Kamchatka",
"Pacific/Kwajalein": "Pacific/Kwajalein",
"Pacific/Majuro": "Pacific/Majuro",
"Pacific/Nauru": "Pacific/Nauru",
"Pacific/Auckland": "Pacific/Auckland",
"Pacific/Funafuti": "Pacific/Funafuti",
"Pacific/Wake": "Pacific/Wake",
"Pacific/Wallis": "Pacific/Wallis",
"Pacific/Chatham": "Pacific/Chatham",
"Pacific/Apia": "Pacific/Apia",
"Pacific/Enderbury": "Pacific/Enderbury",
"Pacific/Fakaofo": "Pacific/Fakaofo",
"Pacific/Tongatapu": "Pacific/Tongatapu",
"Pacific/Kiritimati": "Pacific/Kiritimati"
}

9
routes.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
Route::group(['prefix' => 'gcalendar'], function () {
Route::get('oauth2callback', [
'as' => 'oauth2callback',
'uses' => 'NicoSt\GCalendar\Controllers\GoogleCallback@oauth2callback'
]);
});

3
updates/version.yaml Normal file
View File

@@ -0,0 +1,3 @@
1.0.0:
- Initialize plugin.
- Prepare for October marketplace.

7
vendor/autoload.php vendored Normal file
View File

@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit6c63bb5ac8707f920e7362ad274920b4::getLoader();

445
vendor/composer/ClassLoader.php vendored Normal file
View File

@@ -0,0 +1,445 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
// PSR-0
private $prefixesPsr0 = array();
private $fallbackDirsPsr0 = array();
private $useIncludePath = false;
private $classMap = array();
private $classMapAuthoritative = false;
private $missingClasses = array();
private $apcuPrefix;
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', $this->prefixesPsr0);
}
return array();
}
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
public function getClassMap()
{
return $this->classMap;
}
/**
* @param array $classMap Class to filename map
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
}
/**
* Unregisters this instance as an autoloader.
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) {
foreach ($this->prefixDirsPsr4[$search] as $dir) {
$length = $this->prefixLengthsPsr4[$first][$search];
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}

21
vendor/composer/LICENSE vendored Normal file
View File

@@ -0,0 +1,21 @@
Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

12
vendor/composer/autoload_classmap.php vendored Normal file
View File

@@ -0,0 +1,12 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Google_Service_Exception' => $vendorDir . '/google/apiclient/src/Google/Service/Exception.php',
'Google_Service_Resource' => $vendorDir . '/google/apiclient/src/Google/Service/Resource.php',
'Mobile_Detect' => $vendorDir . '/mobiledetect/mobiledetectlib/Mobile_Detect.php',
);

14
vendor/composer/autoload_files.php vendored Normal file
View File

@@ -0,0 +1,14 @@
<?php
// autoload_files.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
);

12
vendor/composer/autoload_namespaces.php vendored Normal file
View File

@@ -0,0 +1,12 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Google_Service_' => array($vendorDir . '/google/apiclient-services/src'),
'Google_' => array($vendorDir . '/google/apiclient/src'),
'Detection' => array($vendorDir . '/mobiledetect/mobiledetectlib/namespaced'),
);

19
vendor/composer/autoload_psr4.php vendored Normal file
View File

@@ -0,0 +1,19 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'phpseclib\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
'Google\\Auth\\' => array($vendorDir . '/google/auth/src'),
'Firebase\\JWT\\' => array($vendorDir . '/firebase/php-jwt/src'),
);

70
vendor/composer/autoload_real.php vendored Normal file
View File

@@ -0,0 +1,70 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit6c63bb5ac8707f920e7362ad274920b4
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit6c63bb5ac8707f920e7362ad274920b4', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit6c63bb5ac8707f920e7362ad274920b4', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire6c63bb5ac8707f920e7362ad274920b4($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequire6c63bb5ac8707f920e7362ad274920b4($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
}
}

125
vendor/composer/autoload_static.php vendored Normal file
View File

@@ -0,0 +1,125 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4
{
public static $files = array (
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
);
public static $prefixLengthsPsr4 = array (
'p' =>
array (
'phpseclib\\' => 10,
),
'P' =>
array (
'Psr\\Log\\' => 8,
'Psr\\Http\\Message\\' => 17,
'Psr\\Cache\\' => 10,
),
'M' =>
array (
'Monolog\\' => 8,
),
'G' =>
array (
'GuzzleHttp\\Psr7\\' => 16,
'GuzzleHttp\\Promise\\' => 19,
'GuzzleHttp\\' => 11,
'Google\\Auth\\' => 12,
),
'F' =>
array (
'Firebase\\JWT\\' => 13,
),
);
public static $prefixDirsPsr4 = array (
'phpseclib\\' =>
array (
0 => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib',
),
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
'Psr\\Http\\Message\\' =>
array (
0 => __DIR__ . '/..' . '/psr/http-message/src',
),
'Psr\\Cache\\' =>
array (
0 => __DIR__ . '/..' . '/psr/cache/src',
),
'Monolog\\' =>
array (
0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
),
'GuzzleHttp\\Psr7\\' =>
array (
0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src',
),
'GuzzleHttp\\Promise\\' =>
array (
0 => __DIR__ . '/..' . '/guzzlehttp/promises/src',
),
'GuzzleHttp\\' =>
array (
0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
),
'Google\\Auth\\' =>
array (
0 => __DIR__ . '/..' . '/google/auth/src',
),
'Firebase\\JWT\\' =>
array (
0 => __DIR__ . '/..' . '/firebase/php-jwt/src',
),
);
public static $prefixesPsr0 = array (
'G' =>
array (
'Google_Service_' =>
array (
0 => __DIR__ . '/..' . '/google/apiclient-services/src',
),
'Google_' =>
array (
0 => __DIR__ . '/..' . '/google/apiclient/src',
),
),
'D' =>
array (
'Detection' =>
array (
0 => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/namespaced',
),
),
);
public static $classMap = array (
'Google_Service_Exception' => __DIR__ . '/..' . '/google/apiclient/src/Google/Service/Exception.php',
'Google_Service_Resource' => __DIR__ . '/..' . '/google/apiclient/src/Google/Service/Resource.php',
'Mobile_Detect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/Mobile_Detect.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4::$prefixDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4::$prefixesPsr0;
$loader->classMap = ComposerStaticInit6c63bb5ac8707f920e7362ad274920b4::$classMap;
}, null, ClassLoader::class);
}
}

817
vendor/composer/installed.json vendored Normal file
View File

@@ -0,0 +1,817 @@
[
{
"name": "psr/http-message",
"version": "1.0.1",
"version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2016-08-06T14:39:51+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
]
},
{
"name": "guzzlehttp/promises",
"version": "v1.3.1",
"version_normalized": "1.3.1.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"shasum": ""
},
"require": {
"php": ">=5.5.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0"
},
"time": "2016-12-20T10:07:11+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle promises library",
"keywords": [
"promise"
]
},
{
"name": "guzzlehttp/guzzle",
"version": "6.3.3",
"version_normalized": "6.3.3.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.4",
"php": ">=5.5"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
"psr/log": "^1.0"
},
"suggest": {
"psr/log": "Required for using the Log middleware"
},
"time": "2018-04-22T15:46:56+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "6.3-dev"
}
},
"installation-source": "dist",
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle is a PHP HTTP client library",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
]
},
{
"name": "firebase/php-jwt",
"version": "v5.0.0",
"version_normalized": "5.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/firebase/php-jwt.git",
"reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
"reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": " 4.8.35"
},
"time": "2017-06-27T22:17:23+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"Firebase\\JWT\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Neuman Vong",
"email": "neuman+pear@twilio.com",
"role": "Developer"
},
{
"name": "Anant Narayanan",
"email": "anant@php.net",
"role": "Developer"
}
],
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt"
},
{
"name": "psr/cache",
"version": "1.0.1",
"version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2016-08-06T20:24:11+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
"keywords": [
"cache",
"psr",
"psr-6"
]
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"version_normalized": "3.0.3.0",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"time": "2019-03-08T08:55:37+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders."
},
{
"name": "guzzlehttp/psr7",
"version": "1.6.1",
"version_normalized": "1.6.1.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0",
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
},
"suggest": {
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
},
"time": "2019-07-01T23:21:34+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
]
},
{
"name": "phpseclib/phpseclib",
"version": "2.0.21",
"version_normalized": "2.0.21.0",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "9f1287e68b3f283339a9f98f67515dd619e5bf9d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9f1287e68b3f283339a9f98f67515dd619e5bf9d",
"reference": "9f1287e68b3f283339a9f98f67515dd619e5bf9d",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phing/phing": "~2.7",
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"sami/sami": "~2.0",
"squizlabs/php_codesniffer": "~2.0"
},
"suggest": {
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
},
"time": "2019-07-12T12:53:49+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"files": [
"phpseclib/bootstrap.php"
],
"psr-4": {
"phpseclib\\": "phpseclib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jim Wigginton",
"role": "Lead Developer",
"email": "terrafrost@php.net"
},
{
"name": "Patrick Monnerat",
"role": "Developer",
"email": "pm@datasphere.ch"
},
{
"name": "Andreas Fischer",
"role": "Developer",
"email": "bantu@phpbb.com"
},
{
"name": "Hans-Jürgen Petrich",
"role": "Developer",
"email": "petrich@tronic-media.com"
},
{
"name": "Graham Campbell",
"role": "Developer",
"email": "graham@alt-three.com"
}
],
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
"homepage": "http://phpseclib.sourceforge.net",
"keywords": [
"BigInteger",
"aes",
"asn.1",
"asn1",
"blowfish",
"crypto",
"cryptography",
"encryption",
"rsa",
"security",
"sftp",
"signature",
"signing",
"ssh",
"twofish",
"x.509",
"x509"
]
},
{
"name": "psr/log",
"version": "1.1.0",
"version_normalized": "1.1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2018-11-20T15:27:04+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
]
},
{
"name": "monolog/monolog",
"version": "1.24.0",
"version_normalized": "1.24.0.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/log": "~1.0"
},
"provide": {
"psr/log-implementation": "1.0.0"
},
"require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "^5.3|^6.0"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"time": "2018-11-05T09:00:11+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
"psr-3"
]
},
{
"name": "google/apiclient-services",
"version": "v0.110",
"version_normalized": "0.110.0.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "9d9e0a4e180cf09a52ab04535ca4f669031f8c54"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/9d9e0a4e180cf09a52ab04535ca4f669031f8c54",
"reference": "9d9e0a4e180cf09a52ab04535ca4f669031f8c54",
"shasum": ""
},
"require": {
"php": ">=5.4"
},
"require-dev": {
"phpunit/phpunit": "~4.8"
},
"time": "2019-08-17T00:23:23+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-0": {
"Google_Service_": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "Client library for Google APIs",
"homepage": "http://developers.google.com/api-client-library/php",
"keywords": [
"google"
]
},
{
"name": "google/auth",
"version": "v1.5.2",
"version_normalized": "1.5.2.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git",
"reference": "2ee962e5df3e9427fda859f1b0515d6d62c4afa5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/2ee962e5df3e9427fda859f1b0515d6d62c4afa5",
"reference": "2ee962e5df3e9427fda859f1b0515d6d62c4afa5",
"shasum": ""
},
"require": {
"firebase/php-jwt": "~2.0|~3.0|~4.0|~5.0",
"guzzlehttp/guzzle": "~5.3.1|~6.0",
"guzzlehttp/psr7": "^1.2",
"php": ">=5.4",
"psr/cache": "^1.0",
"psr/http-message": "^1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^1.11",
"guzzlehttp/promises": "0.1.1|^1.3",
"phpseclib/phpseclib": "^2",
"phpunit/phpunit": "^4.8.36|^5.7",
"sebastian/comparator": ">=1.2.3"
},
"suggest": {
"phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings. Please require version ^2."
},
"time": "2019-07-22T21:01:31+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"Google\\Auth\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "Google Auth Library for PHP",
"homepage": "http://github.com/google/google-auth-library-php",
"keywords": [
"Authentication",
"google",
"oauth2"
]
},
{
"name": "google/apiclient",
"version": "v2.2.4",
"version_normalized": "2.2.4.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client.git",
"reference": "d6c7563bdf88d6a0719ea63e21c74dc86032364e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/d6c7563bdf88d6a0719ea63e21c74dc86032364e",
"reference": "d6c7563bdf88d6a0719ea63e21c74dc86032364e",
"shasum": ""
},
"require": {
"firebase/php-jwt": "~2.0||~3.0||~4.0||~5.0",
"google/apiclient-services": "~0.13",
"google/auth": "^1.0",
"guzzlehttp/guzzle": "~5.3.1||~6.0",
"guzzlehttp/psr7": "^1.2",
"monolog/monolog": "^1.17",
"php": ">=5.4",
"phpseclib/phpseclib": "~0.3.10||~2.0"
},
"require-dev": {
"cache/filesystem-adapter": "^0.3.2",
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
"phpcompatibility/php-compatibility": "^9.2",
"phpunit/phpunit": "~4.8.36",
"squizlabs/php_codesniffer": "~2.3",
"symfony/css-selector": "~2.1",
"symfony/dom-crawler": "~2.1"
},
"suggest": {
"cache/filesystem-adapter": "For caching certs and tokens (using Google_Client::setCache)"
},
"time": "2019-08-19T18:09:46+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-0": {
"Google_": "src/"
},
"classmap": [
"src/Google/Service/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"description": "Client library for Google APIs",
"homepage": "http://developers.google.com/api-client-library/php",
"keywords": [
"google"
]
},
{
"name": "mobiledetect/mobiledetectlib",
"version": "2.8.33",
"version_normalized": "2.8.33.0",
"source": {
"type": "git",
"url": "https://github.com/serbanghita/Mobile-Detect.git",
"reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/cd385290f9a0d609d2eddd165a1e44ec1bf12102",
"reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102",
"shasum": ""
},
"require": {
"php": ">=5.0.0"
},
"require-dev": {
"phpunit/phpunit": "~4.8.35||~5.7"
},
"time": "2018-09-01T15:05:15+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"Mobile_Detect.php"
],
"psr-0": {
"Detection": "namespaced/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Serban Ghita",
"role": "Developer",
"email": "serbanghita@gmail.com",
"homepage": "http://mobiledetect.net"
}
],
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
"homepage": "https://github.com/serbanghita/Mobile-Detect",
"keywords": [
"detect mobile devices",
"mobile",
"mobile detect",
"mobile detector",
"php mobile detect"
]
}
]

30
vendor/firebase/php-jwt/LICENSE vendored Normal file
View File

@@ -0,0 +1,30 @@
Copyright (c) 2011, Neuman Vong
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Neuman Vong nor the names of other
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

200
vendor/firebase/php-jwt/README.md vendored Normal file
View File

@@ -0,0 +1,200 @@
[![Build Status](https://travis-ci.org/firebase/php-jwt.png?branch=master)](https://travis-ci.org/firebase/php-jwt)
[![Latest Stable Version](https://poser.pugx.org/firebase/php-jwt/v/stable)](https://packagist.org/packages/firebase/php-jwt)
[![Total Downloads](https://poser.pugx.org/firebase/php-jwt/downloads)](https://packagist.org/packages/firebase/php-jwt)
[![License](https://poser.pugx.org/firebase/php-jwt/license)](https://packagist.org/packages/firebase/php-jwt)
PHP-JWT
=======
A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to [RFC 7519](https://tools.ietf.org/html/rfc7519).
Installation
------------
Use composer to manage your dependencies and download PHP-JWT:
```bash
composer require firebase/php-jwt
```
Example
-------
```php
<?php
use \Firebase\JWT\JWT;
$key = "example_key";
$token = array(
"iss" => "http://example.org",
"aud" => "http://example.com",
"iat" => 1356999524,
"nbf" => 1357000000
);
/**
* IMPORTANT:
* You must specify supported algorithms for your application. See
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
* for a list of spec-compliant algorithms.
*/
$jwt = JWT::encode($token, $key);
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);
/*
NOTE: This will now be an object instead of an associative array. To get
an associative array, you will need to cast it as such:
*/
$decoded_array = (array) $decoded;
/**
* You can add a leeway to account for when there is a clock skew times between
* the signing and verifying servers. It is recommended that this leeway should
* not be bigger than a few minutes.
*
* Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef
*/
JWT::$leeway = 60; // $leeway in seconds
$decoded = JWT::decode($jwt, $key, array('HS256'));
?>
```
Example with RS256 (openssl)
----------------------------
```php
<?php
use \Firebase\JWT\JWT;
$privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC8kGa1pSjbSYZVebtTRBLxBz5H4i2p/llLCrEeQhta5kaQu/Rn
vuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t0tyazyZ8JXw+KgXTxldMPEL9
5+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4ehde/zUxo6UvS7UrBQIDAQAB
AoGAb/MXV46XxCFRxNuB8LyAtmLDgi/xRnTAlMHjSACddwkyKem8//8eZtw9fzxz
bWZ/1/doQOuHBGYZU8aDzzj59FZ78dyzNFoF91hbvZKkg+6wGyd/LrGVEB+Xre0J
Nil0GReM2AHDNZUYRv+HYJPIOrB0CRczLQsgFJ8K6aAD6F0CQQDzbpjYdx10qgK1
cP59UHiHjPZYC0loEsk7s+hUmT3QHerAQJMZWC11Qrn2N+ybwwNblDKv+s5qgMQ5
5tNoQ9IfAkEAxkyffU6ythpg/H0Ixe1I2rd0GbF05biIzO/i77Det3n4YsJVlDck
ZkcvY3SK2iRIL4c9yY6hlIhs+K9wXTtGWwJBAO9Dskl48mO7woPR9uD22jDpNSwe
k90OMepTjzSvlhjbfuPN1IdhqvSJTDychRwn1kIJ7LQZgQ8fVz9OCFZ/6qMCQGOb
qaGwHmUK6xzpUbbacnYrIM6nLSkXgOAwv7XXCojvY614ILTK3iXiLBOxPu5Eu13k
eUz9sHyD6vkgZzjtxXECQAkp4Xerf5TGfQXGXhxIX52yH+N2LtujCdkQZjXAsGdm
B2zNzvrlgRmgBrklMTrMYgm1NPcW+bRLGcwgW2PTvNM=
-----END RSA PRIVATE KEY-----
EOD;
$publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8kGa1pSjbSYZVebtTRBLxBz5H
4i2p/llLCrEeQhta5kaQu/RnvuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t
0tyazyZ8JXw+KgXTxldMPEL95+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4
ehde/zUxo6UvS7UrBQIDAQAB
-----END PUBLIC KEY-----
EOD;
$token = array(
"iss" => "example.org",
"aud" => "example.com",
"iat" => 1356999524,
"nbf" => 1357000000
);
$jwt = JWT::encode($token, $privateKey, 'RS256');
echo "Encode:\n" . print_r($jwt, true) . "\n";
$decoded = JWT::decode($jwt, $publicKey, array('RS256'));
/*
NOTE: This will now be an object instead of an associative array. To get
an associative array, you will need to cast it as such:
*/
$decoded_array = (array) $decoded;
echo "Decode:\n" . print_r($decoded_array, true) . "\n";
?>
```
Changelog
---------
#### 5.0.0 / 2017-06-26
- Support RS384 and RS512.
See [#117](https://github.com/firebase/php-jwt/pull/117). Thanks [@joostfaassen](https://github.com/joostfaassen)!
- Add an example for RS256 openssl.
See [#125](https://github.com/firebase/php-jwt/pull/125). Thanks [@akeeman](https://github.com/akeeman)!
- Detect invalid Base64 encoding in signature.
See [#162](https://github.com/firebase/php-jwt/pull/162). Thanks [@psignoret](https://github.com/psignoret)!
- Update `JWT::verify` to handle OpenSSL errors.
See [#159](https://github.com/firebase/php-jwt/pull/159). Thanks [@bshaffer](https://github.com/bshaffer)!
- Add `array` type hinting to `decode` method
See [#101](https://github.com/firebase/php-jwt/pull/101). Thanks [@hywak](https://github.com/hywak)!
- Add all JSON error types.
See [#110](https://github.com/firebase/php-jwt/pull/110). Thanks [@gbalduzzi](https://github.com/gbalduzzi)!
- Bugfix 'kid' not in given key list.
See [#129](https://github.com/firebase/php-jwt/pull/129). Thanks [@stampycode](https://github.com/stampycode)!
- Miscellaneous cleanup, documentation and test fixes.
See [#107](https://github.com/firebase/php-jwt/pull/107), [#115](https://github.com/firebase/php-jwt/pull/115),
[#160](https://github.com/firebase/php-jwt/pull/160), [#161](https://github.com/firebase/php-jwt/pull/161), and
[#165](https://github.com/firebase/php-jwt/pull/165). Thanks [@akeeman](https://github.com/akeeman),
[@chinedufn](https://github.com/chinedufn), and [@bshaffer](https://github.com/bshaffer)!
#### 4.0.0 / 2016-07-17
- Add support for late static binding. See [#88](https://github.com/firebase/php-jwt/pull/88) for details. Thanks to [@chappy84](https://github.com/chappy84)!
- Use static `$timestamp` instead of `time()` to improve unit testing. See [#93](https://github.com/firebase/php-jwt/pull/93) for details. Thanks to [@josephmcdermott](https://github.com/josephmcdermott)!
- Fixes to exceptions classes. See [#81](https://github.com/firebase/php-jwt/pull/81) for details. Thanks to [@Maks3w](https://github.com/Maks3w)!
- Fixes to PHPDoc. See [#76](https://github.com/firebase/php-jwt/pull/76) for details. Thanks to [@akeeman](https://github.com/akeeman)!
#### 3.0.0 / 2015-07-22
- Minimum PHP version updated from `5.2.0` to `5.3.0`.
- Add `\Firebase\JWT` namespace. See
[#59](https://github.com/firebase/php-jwt/pull/59) for details. Thanks to
[@Dashron](https://github.com/Dashron)!
- Require a non-empty key to decode and verify a JWT. See
[#60](https://github.com/firebase/php-jwt/pull/60) for details. Thanks to
[@sjones608](https://github.com/sjones608)!
- Cleaner documentation blocks in the code. See
[#62](https://github.com/firebase/php-jwt/pull/62) for details. Thanks to
[@johanderuijter](https://github.com/johanderuijter)!
#### 2.2.0 / 2015-06-22
- Add support for adding custom, optional JWT headers to `JWT::encode()`. See
[#53](https://github.com/firebase/php-jwt/pull/53/files) for details. Thanks to
[@mcocaro](https://github.com/mcocaro)!
#### 2.1.0 / 2015-05-20
- Add support for adding a leeway to `JWT:decode()` that accounts for clock skew
between signing and verifying entities. Thanks to [@lcabral](https://github.com/lcabral)!
- Add support for passing an object implementing the `ArrayAccess` interface for
`$keys` argument in `JWT::decode()`. Thanks to [@aztech-dev](https://github.com/aztech-dev)!
#### 2.0.0 / 2015-04-01
- **Note**: It is strongly recommended that you update to > v2.0.0 to address
known security vulnerabilities in prior versions when both symmetric and
asymmetric keys are used together.
- Update signature for `JWT::decode(...)` to require an array of supported
algorithms to use when verifying token signatures.
Tests
-----
Run the tests using phpunit:
```bash
$ pear install PHPUnit
$ phpunit --configuration phpunit.xml.dist
PHPUnit 3.7.10 by Sebastian Bergmann.
.....
Time: 0 seconds, Memory: 2.50Mb
OK (5 tests, 5 assertions)
```
New Lines in private keys
-----
If your private key contains `\n` characters, be sure to wrap it in double quotes `""`
and not single quotes `''` in order to properly interpret the escaped characters.
License
-------
[3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause).

29
vendor/firebase/php-jwt/composer.json vendored Normal file
View File

@@ -0,0 +1,29 @@
{
"name": "firebase/php-jwt",
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt",
"authors": [
{
"name": "Neuman Vong",
"email": "neuman+pear@twilio.com",
"role": "Developer"
},
{
"name": "Anant Narayanan",
"email": "anant@php.net",
"role": "Developer"
}
],
"license": "BSD-3-Clause",
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"Firebase\\JWT\\": "src"
}
},
"require-dev": {
"phpunit/phpunit": " 4.8.35"
}
}

View File

@@ -0,0 +1,7 @@
<?php
namespace Firebase\JWT;
class BeforeValidException extends \UnexpectedValueException
{
}

View File

@@ -0,0 +1,7 @@
<?php
namespace Firebase\JWT;
class ExpiredException extends \UnexpectedValueException
{
}

379
vendor/firebase/php-jwt/src/JWT.php vendored Normal file
View File

@@ -0,0 +1,379 @@
<?php
namespace Firebase\JWT;
use \DomainException;
use \InvalidArgumentException;
use \UnexpectedValueException;
use \DateTime;
/**
* JSON Web Token implementation, based on this spec:
* https://tools.ietf.org/html/rfc7519
*
* PHP version 5
*
* @category Authentication
* @package Authentication_JWT
* @author Neuman Vong <neuman@twilio.com>
* @author Anant Narayanan <anant@php.net>
* @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD
* @link https://github.com/firebase/php-jwt
*/
class JWT
{
/**
* When checking nbf, iat or expiration times,
* we want to provide some extra leeway time to
* account for clock skew.
*/
public static $leeway = 0;
/**
* Allow the current timestamp to be specified.
* Useful for fixing a value within unit testing.
*
* Will default to PHP time() value if null.
*/
public static $timestamp = null;
public static $supported_algs = array(
'HS256' => array('hash_hmac', 'SHA256'),
'HS512' => array('hash_hmac', 'SHA512'),
'HS384' => array('hash_hmac', 'SHA384'),
'RS256' => array('openssl', 'SHA256'),
'RS384' => array('openssl', 'SHA384'),
'RS512' => array('openssl', 'SHA512'),
);
/**
* Decodes a JWT string into a PHP object.
*
* @param string $jwt The JWT
* @param string|array $key The key, or map of keys.
* If the algorithm used is asymmetric, this is the public key
* @param array $allowed_algs List of supported verification algorithms
* Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
*
* @return object The JWT's payload as a PHP object
*
* @throws UnexpectedValueException Provided JWT was invalid
* @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed
* @throws BeforeValidException Provided JWT is trying to be used before it's eligible as defined by 'nbf'
* @throws BeforeValidException Provided JWT is trying to be used before it's been created as defined by 'iat'
* @throws ExpiredException Provided JWT has since expired, as defined by the 'exp' claim
*
* @uses jsonDecode
* @uses urlsafeB64Decode
*/
public static function decode($jwt, $key, array $allowed_algs = array())
{
$timestamp = is_null(static::$timestamp) ? time() : static::$timestamp;
if (empty($key)) {
throw new InvalidArgumentException('Key may not be empty');
}
$tks = explode('.', $jwt);
if (count($tks) != 3) {
throw new UnexpectedValueException('Wrong number of segments');
}
list($headb64, $bodyb64, $cryptob64) = $tks;
if (null === ($header = static::jsonDecode(static::urlsafeB64Decode($headb64)))) {
throw new UnexpectedValueException('Invalid header encoding');
}
if (null === $payload = static::jsonDecode(static::urlsafeB64Decode($bodyb64))) {
throw new UnexpectedValueException('Invalid claims encoding');
}
if (false === ($sig = static::urlsafeB64Decode($cryptob64))) {
throw new UnexpectedValueException('Invalid signature encoding');
}
if (empty($header->alg)) {
throw new UnexpectedValueException('Empty algorithm');
}
if (empty(static::$supported_algs[$header->alg])) {
throw new UnexpectedValueException('Algorithm not supported');
}
if (!in_array($header->alg, $allowed_algs)) {
throw new UnexpectedValueException('Algorithm not allowed');
}
if (is_array($key) || $key instanceof \ArrayAccess) {
if (isset($header->kid)) {
if (!isset($key[$header->kid])) {
throw new UnexpectedValueException('"kid" invalid, unable to lookup correct key');
}
$key = $key[$header->kid];
} else {
throw new UnexpectedValueException('"kid" empty, unable to lookup correct key');
}
}
// Check the signature
if (!static::verify("$headb64.$bodyb64", $sig, $key, $header->alg)) {
throw new SignatureInvalidException('Signature verification failed');
}
// Check if the nbf if it is defined. This is the time that the
// token can actually be used. If it's not yet that time, abort.
if (isset($payload->nbf) && $payload->nbf > ($timestamp + static::$leeway)) {
throw new BeforeValidException(
'Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->nbf)
);
}
// Check that this token has been created before 'now'. This prevents
// using tokens that have been created for later use (and haven't
// correctly used the nbf claim).
if (isset($payload->iat) && $payload->iat > ($timestamp + static::$leeway)) {
throw new BeforeValidException(
'Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->iat)
);
}
// Check if this token has expired.
if (isset($payload->exp) && ($timestamp - static::$leeway) >= $payload->exp) {
throw new ExpiredException('Expired token');
}
return $payload;
}
/**
* Converts and signs a PHP object or array into a JWT string.
*
* @param object|array $payload PHP object or array
* @param string $key The secret key.
* If the algorithm used is asymmetric, this is the private key
* @param string $alg The signing algorithm.
* Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
* @param mixed $keyId
* @param array $head An array with header elements to attach
*
* @return string A signed JWT
*
* @uses jsonEncode
* @uses urlsafeB64Encode
*/
public static function encode($payload, $key, $alg = 'HS256', $keyId = null, $head = null)
{
$header = array('typ' => 'JWT', 'alg' => $alg);
if ($keyId !== null) {
$header['kid'] = $keyId;
}
if ( isset($head) && is_array($head) ) {
$header = array_merge($head, $header);
}
$segments = array();
$segments[] = static::urlsafeB64Encode(static::jsonEncode($header));
$segments[] = static::urlsafeB64Encode(static::jsonEncode($payload));
$signing_input = implode('.', $segments);
$signature = static::sign($signing_input, $key, $alg);
$segments[] = static::urlsafeB64Encode($signature);
return implode('.', $segments);
}
/**
* Sign a string with a given key and algorithm.
*
* @param string $msg The message to sign
* @param string|resource $key The secret key
* @param string $alg The signing algorithm.
* Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
*
* @return string An encrypted message
*
* @throws DomainException Unsupported algorithm was specified
*/
public static function sign($msg, $key, $alg = 'HS256')
{
if (empty(static::$supported_algs[$alg])) {
throw new DomainException('Algorithm not supported');
}
list($function, $algorithm) = static::$supported_algs[$alg];
switch($function) {
case 'hash_hmac':
return hash_hmac($algorithm, $msg, $key, true);
case 'openssl':
$signature = '';
$success = openssl_sign($msg, $signature, $key, $algorithm);
if (!$success) {
throw new DomainException("OpenSSL unable to sign data");
} else {
return $signature;
}
}
}
/**
* Verify a signature with the message, key and method. Not all methods
* are symmetric, so we must have a separate verify and sign method.
*
* @param string $msg The original message (header and body)
* @param string $signature The original signature
* @param string|resource $key For HS*, a string key works. for RS*, must be a resource of an openssl public key
* @param string $alg The algorithm
*
* @return bool
*
* @throws DomainException Invalid Algorithm or OpenSSL failure
*/
private static function verify($msg, $signature, $key, $alg)
{
if (empty(static::$supported_algs[$alg])) {
throw new DomainException('Algorithm not supported');
}
list($function, $algorithm) = static::$supported_algs[$alg];
switch($function) {
case 'openssl':
$success = openssl_verify($msg, $signature, $key, $algorithm);
if ($success === 1) {
return true;
} elseif ($success === 0) {
return false;
}
// returns 1 on success, 0 on failure, -1 on error.
throw new DomainException(
'OpenSSL error: ' . openssl_error_string()
);
case 'hash_hmac':
default:
$hash = hash_hmac($algorithm, $msg, $key, true);
if (function_exists('hash_equals')) {
return hash_equals($signature, $hash);
}
$len = min(static::safeStrlen($signature), static::safeStrlen($hash));
$status = 0;
for ($i = 0; $i < $len; $i++) {
$status |= (ord($signature[$i]) ^ ord($hash[$i]));
}
$status |= (static::safeStrlen($signature) ^ static::safeStrlen($hash));
return ($status === 0);
}
}
/**
* Decode a JSON string into a PHP object.
*
* @param string $input JSON string
*
* @return object Object representation of JSON string
*
* @throws DomainException Provided string was invalid JSON
*/
public static function jsonDecode($input)
{
if (version_compare(PHP_VERSION, '5.4.0', '>=') && !(defined('JSON_C_VERSION') && PHP_INT_SIZE > 4)) {
/** In PHP >=5.4.0, json_decode() accepts an options parameter, that allows you
* to specify that large ints (like Steam Transaction IDs) should be treated as
* strings, rather than the PHP default behaviour of converting them to floats.
*/
$obj = json_decode($input, false, 512, JSON_BIGINT_AS_STRING);
} else {
/** Not all servers will support that, however, so for older versions we must
* manually detect large ints in the JSON string and quote them (thus converting
*them to strings) before decoding, hence the preg_replace() call.
*/
$max_int_length = strlen((string) PHP_INT_MAX) - 1;
$json_without_bigints = preg_replace('/:\s*(-?\d{'.$max_int_length.',})/', ': "$1"', $input);
$obj = json_decode($json_without_bigints);
}
if (function_exists('json_last_error') && $errno = json_last_error()) {
static::handleJsonError($errno);
} elseif ($obj === null && $input !== 'null') {
throw new DomainException('Null result with non-null input');
}
return $obj;
}
/**
* Encode a PHP object into a JSON string.
*
* @param object|array $input A PHP object or array
*
* @return string JSON representation of the PHP object or array
*
* @throws DomainException Provided object could not be encoded to valid JSON
*/
public static function jsonEncode($input)
{
$json = json_encode($input);
if (function_exists('json_last_error') && $errno = json_last_error()) {
static::handleJsonError($errno);
} elseif ($json === 'null' && $input !== null) {
throw new DomainException('Null result with non-null input');
}
return $json;
}
/**
* Decode a string with URL-safe Base64.
*
* @param string $input A Base64 encoded string
*
* @return string A decoded string
*/
public static function urlsafeB64Decode($input)
{
$remainder = strlen($input) % 4;
if ($remainder) {
$padlen = 4 - $remainder;
$input .= str_repeat('=', $padlen);
}
return base64_decode(strtr($input, '-_', '+/'));
}
/**
* Encode a string with URL-safe Base64.
*
* @param string $input The string you want encoded
*
* @return string The base64 encode of what you passed in
*/
public static function urlsafeB64Encode($input)
{
return str_replace('=', '', strtr(base64_encode($input), '+/', '-_'));
}
/**
* Helper method to create a JSON error.
*
* @param int $errno An error number from json_last_error()
*
* @return void
*/
private static function handleJsonError($errno)
{
$messages = array(
JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
JSON_ERROR_STATE_MISMATCH => 'Invalid or malformed JSON',
JSON_ERROR_CTRL_CHAR => 'Unexpected control character found',
JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON',
JSON_ERROR_UTF8 => 'Malformed UTF-8 characters' //PHP >= 5.3.3
);
throw new DomainException(
isset($messages[$errno])
? $messages[$errno]
: 'Unknown JSON error: ' . $errno
);
}
/**
* Get the number of bytes in cryptographic strings.
*
* @param string
*
* @return int
*/
private static function safeStrlen($str)
{
if (function_exists('mb_strlen')) {
return mb_strlen($str, '8bit');
}
return strlen($str);
}
}

View File

@@ -0,0 +1,7 @@
<?php
namespace Firebase\JWT;
class SignatureInvalidException extends \UnexpectedValueException
{
}

View File

@@ -0,0 +1,22 @@
# How to become a contributor and submit your own code
## Contributor License Agreements
We'd love to accept your code patches! However, before we can take them, we have to jump a couple of legal hurdles.
Please fill out either the individual or corporate Contributor License Agreement (CLA).
* If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA](http://code.google.com/legal/individual-cla-v1.0.html).
* If you work for a company that wants to allow you to contribute your work to this client library, then you'll need to sign a[corporate CLA](http://code.google.com/legal/corporate-cla-v1.0.html).
Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll add you to the official list of contributors and be able to accept your patches.
## Submitting Patches
1. Fork the PHP client library on GitHub
1. Decide which code you want to submit. A submission should be a set of changes that addresses one issue in the issue tracker. Please file one change per issue, and address one issue per change. If you want to make a change that doesn't have a corresponding issue in the issue tracker, please file a new ticket!
1. Ensure that your code adheres to standard PHP conventions, as used in the rest of the library.
1. Ensure that there are unit tests for your code.
1. Sign a Contributor License Agreement (see above).
1. Submit a pull request with your patch on Github.

View File

@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve
---
Thanks for stopping by to let us know something could be better!
**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response.
Please run down the following list and make sure you've tried the usual "quick fixes":
- Search the issues already opened: https://github.com/googleapis/google-api-php-client-services/issues
- Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+php
If you are still having issues, please be sure to include as much information as possible:
#### Environment details
- OS:
- PHP version:
- Package name and version:
#### Steps to reproduce
1. ...
#### Code example
```php
# example
```
Making sure to follow these steps will guarantee the quickest resolution possible.
Thanks!

View File

@@ -0,0 +1,21 @@
---
name: Feature request
about: Suggest an idea for this library
---
Thanks for stopping by to let us know something could be better!
**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response.
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -0,0 +1,7 @@
---
name: Support request
about: If you have a support contract with Google, please create an issue in the Google Cloud Support console.
---
**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response.

View File

@@ -0,0 +1,4 @@
vendor
composer.lock
src/Google/Service/Compute/HTTPHealthCheck.php
src/Google/Service/Compute/HTTPSHealthCheck.php

View File

@@ -0,0 +1,15 @@
language: php
php:
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
install:
- composer install
script:
- phpunit

View File

@@ -0,0 +1,43 @@
# Contributor Code of Conduct
As contributors and maintainers of this project,
and in the interest of fostering an open and welcoming community,
we pledge to respect all people who contribute through reporting issues,
posting feature requests, updating documentation,
submitting pull requests or patches, and other activities.
We are committed to making participation in this project
a harassment-free experience for everyone,
regardless of level of experience, gender, gender identity and expression,
sexual orientation, disability, personal appearance,
body size, race, ethnicity, age, religion, or nationality.
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information,
such as physical or electronic
addresses, without explicit permission
* Other unethical or unprofessional conduct.
Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct.
By adopting this Code of Conduct,
project maintainers commit themselves to fairly and consistently
applying these principles to every aspect of managing this project.
Project maintainers who do not follow or enforce the Code of Conduct
may be permanently removed from the project team.
This code of conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community.
Instances of abusive, harassing, or otherwise unacceptable behavior
may be reported by opening an issue
or contacting one or more of the project maintainers.
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)

203
vendor/google/apiclient-services/LICENSE vendored Normal file
View File

@@ -0,0 +1,203 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,23 @@
Google PHP API Client Services
==============================
## Requirements
[Google API PHP Client](https://github.com/googleapis/google-api-php-client/releases)
## Usage in v2 of Google API PHP Client
This library is automatically updated daily with new API changes, and tagged weekly.
It is installed as part of the
[Google API PHP Client](https://github.com/googleapis/google-api-php-client/releases)
library via Composer, which will pull down the most recent tag.
## Usage in v1
If you are currently using the [`v1-master`](https://github.com/googleapis/google-api-php-client/tree/v1-master)
branch of the client library, but want to use the latest API services, you can
do so by requiring this library directly into your project via the same composer command:
```sh
composer require google/apiclient-services:dev-master
```

View File

@@ -0,0 +1,19 @@
{
"name": "google/apiclient-services",
"type": "library",
"description": "Client library for Google APIs",
"keywords": ["google"],
"homepage": "http://developers.google.com/api-client-library/php",
"license": "Apache-2.0",
"require": {
"php": ">=5.4"
},
"require-dev": {
"phpunit/phpunit": "~4.8"
},
"autoload": {
"psr-0": {
"Google_Service_": "src"
}
}
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/3.7/phpunit.xsd"
colors="true"
bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Google PHP Client Unit Services Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>

View File

@@ -0,0 +1,92 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* Service definition for AbusiveExperienceReport (v1).
*
* <p>
* Views Abusive Experience Report data, and gets a list of sites that have a
* significant number of abusive experiences.</p>
*
* <p>
* For more information about this service, see the API
* <a href="https://developers.google.com/abusive-experience-report/" target="_blank">Documentation</a>
* </p>
*
* @author Google, Inc.
*/
class Google_Service_AbusiveExperienceReport extends Google_Service
{
/** Test scope for access to the Zoo service. */
const XAPI_ZOO =
"https://www.googleapis.com/auth/xapi.zoo";
public $sites;
public $violatingSites;
/**
* Constructs the internal representation of the AbusiveExperienceReport
* service.
*
* @param Google_Client $client The client used to deliver requests.
* @param string $rootUrl The root URL used for requests to the service.
*/
public function __construct(Google_Client $client, $rootUrl = null)
{
parent::__construct($client);
$this->rootUrl = $rootUrl ?: 'https://abusiveexperiencereport.googleapis.com/';
$this->servicePath = '';
$this->batchPath = 'batch';
$this->version = 'v1';
$this->serviceName = 'abusiveexperiencereport';
$this->sites = new Google_Service_AbusiveExperienceReport_Resource_Sites(
$this,
$this->serviceName,
'sites',
array(
'methods' => array(
'get' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),
)
)
);
$this->violatingSites = new Google_Service_AbusiveExperienceReport_Resource_ViolatingSites(
$this,
$this->serviceName,
'violatingSites',
array(
'methods' => array(
'list' => array(
'path' => 'v1/violatingSites',
'httpMethod' => 'GET',
'parameters' => array(),
),
)
)
);
}
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "sites" collection of methods.
* Typical usage is:
* <code>
* $abusiveexperiencereportService = new Google_Service_AbusiveExperienceReport(...);
* $sites = $abusiveexperiencereportService->sites;
* </code>
*/
class Google_Service_AbusiveExperienceReport_Resource_Sites extends Google_Service_Resource
{
/**
* Gets a summary of the abusive experience rating of a site. (sites.get)
*
* @param string $name The required site name. This is the site property whose
* abusive experiences have been reviewed, and it must be URL-encoded. For
* example, sites/https%3A%2F%2Fwww.google.com. The server will return an error
* of BAD_REQUEST if this field is not filled in. Note that if the site property
* is not yet verified in Search Console, the reportUrl field returned by the
* API will lead to the verification page, prompting the user to go through that
* process before they can gain access to the Abusive Experience Report.
* @param array $optParams Optional parameters.
* @return Google_Service_AbusiveExperienceReport_SiteSummaryResponse
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AbusiveExperienceReport_SiteSummaryResponse");
}
}

View File

@@ -0,0 +1,41 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "violatingSites" collection of methods.
* Typical usage is:
* <code>
* $abusiveexperiencereportService = new Google_Service_AbusiveExperienceReport(...);
* $violatingSites = $abusiveexperiencereportService->violatingSites;
* </code>
*/
class Google_Service_AbusiveExperienceReport_Resource_ViolatingSites extends Google_Service_Resource
{
/**
* Lists sites with Abusive Experience Report statuses of "Failing".
* (violatingSites.listViolatingSites)
*
* @param array $optParams Optional parameters.
* @return Google_Service_AbusiveExperienceReport_ViolatingSitesResponse
*/
public function listViolatingSites($optParams = array())
{
$params = array();
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AbusiveExperienceReport_ViolatingSitesResponse");
}
}

View File

@@ -0,0 +1,84 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AbusiveExperienceReport_SiteSummaryResponse extends Google_Model
{
public $abusiveStatus;
public $enforcementTime;
public $filterStatus;
public $lastChangeTime;
public $reportUrl;
public $reviewedSite;
public $underReview;
public function setAbusiveStatus($abusiveStatus)
{
$this->abusiveStatus = $abusiveStatus;
}
public function getAbusiveStatus()
{
return $this->abusiveStatus;
}
public function setEnforcementTime($enforcementTime)
{
$this->enforcementTime = $enforcementTime;
}
public function getEnforcementTime()
{
return $this->enforcementTime;
}
public function setFilterStatus($filterStatus)
{
$this->filterStatus = $filterStatus;
}
public function getFilterStatus()
{
return $this->filterStatus;
}
public function setLastChangeTime($lastChangeTime)
{
$this->lastChangeTime = $lastChangeTime;
}
public function getLastChangeTime()
{
return $this->lastChangeTime;
}
public function setReportUrl($reportUrl)
{
$this->reportUrl = $reportUrl;
}
public function getReportUrl()
{
return $this->reportUrl;
}
public function setReviewedSite($reviewedSite)
{
$this->reviewedSite = $reviewedSite;
}
public function getReviewedSite()
{
return $this->reviewedSite;
}
public function setUnderReview($underReview)
{
$this->underReview = $underReview;
}
public function getUnderReview()
{
return $this->underReview;
}
}

View File

@@ -0,0 +1,38 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AbusiveExperienceReport_ViolatingSitesResponse extends Google_Collection
{
protected $collection_key = 'violatingSites';
protected $violatingSitesType = 'Google_Service_AbusiveExperienceReport_SiteSummaryResponse';
protected $violatingSitesDataType = 'array';
/**
* @param Google_Service_AbusiveExperienceReport_SiteSummaryResponse
*/
public function setViolatingSites($violatingSites)
{
$this->violatingSites = $violatingSites;
}
/**
* @return Google_Service_AbusiveExperienceReport_SiteSummaryResponse
*/
public function getViolatingSites()
{
return $this->violatingSites;
}
}

View File

@@ -0,0 +1,69 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* Service definition for Acceleratedmobilepageurl (v1).
*
* <p>
* Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given
* list of public URL(s).</p>
*
* <p>
* For more information about this service, see the API
* <a href="https://developers.google.com/amp/cache/" target="_blank">Documentation</a>
* </p>
*
* @author Google, Inc.
*/
class Google_Service_Acceleratedmobilepageurl extends Google_Service
{
public $ampUrls;
/**
* Constructs the internal representation of the Acceleratedmobilepageurl
* service.
*
* @param Google_Client $client The client used to deliver requests.
* @param string $rootUrl The root URL used for requests to the service.
*/
public function __construct(Google_Client $client, $rootUrl = null)
{
parent::__construct($client);
$this->rootUrl = $rootUrl ?: 'https://acceleratedmobilepageurl.googleapis.com/';
$this->servicePath = '';
$this->batchPath = 'batch';
$this->version = 'v1';
$this->serviceName = 'acceleratedmobilepageurl';
$this->ampUrls = new Google_Service_Acceleratedmobilepageurl_Resource_AmpUrls(
$this,
$this->serviceName,
'ampUrls',
array(
'methods' => array(
'batchGet' => array(
'path' => 'v1/ampUrls:batchGet',
'httpMethod' => 'POST',
'parameters' => array(),
),
)
)
);
}
}

View File

@@ -0,0 +1,48 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_Acceleratedmobilepageurl_AmpUrl extends Google_Model
{
public $ampUrl;
public $cdnAmpUrl;
public $originalUrl;
public function setAmpUrl($ampUrl)
{
$this->ampUrl = $ampUrl;
}
public function getAmpUrl()
{
return $this->ampUrl;
}
public function setCdnAmpUrl($cdnAmpUrl)
{
$this->cdnAmpUrl = $cdnAmpUrl;
}
public function getCdnAmpUrl()
{
return $this->cdnAmpUrl;
}
public function setOriginalUrl($originalUrl)
{
$this->originalUrl = $originalUrl;
}
public function getOriginalUrl()
{
return $this->originalUrl;
}
}

View File

@@ -0,0 +1,48 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_Acceleratedmobilepageurl_AmpUrlError extends Google_Model
{
public $errorCode;
public $errorMessage;
public $originalUrl;
public function setErrorCode($errorCode)
{
$this->errorCode = $errorCode;
}
public function getErrorCode()
{
return $this->errorCode;
}
public function setErrorMessage($errorMessage)
{
$this->errorMessage = $errorMessage;
}
public function getErrorMessage()
{
return $this->errorMessage;
}
public function setOriginalUrl($originalUrl)
{
$this->originalUrl = $originalUrl;
}
public function getOriginalUrl()
{
return $this->originalUrl;
}
}

View File

@@ -0,0 +1,40 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_Acceleratedmobilepageurl_BatchGetAmpUrlsRequest extends Google_Collection
{
protected $collection_key = 'urls';
public $lookupStrategy;
public $urls;
public function setLookupStrategy($lookupStrategy)
{
$this->lookupStrategy = $lookupStrategy;
}
public function getLookupStrategy()
{
return $this->lookupStrategy;
}
public function setUrls($urls)
{
$this->urls = $urls;
}
public function getUrls()
{
return $this->urls;
}
}

View File

@@ -0,0 +1,54 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_Acceleratedmobilepageurl_BatchGetAmpUrlsResponse extends Google_Collection
{
protected $collection_key = 'urlErrors';
protected $ampUrlsType = 'Google_Service_Acceleratedmobilepageurl_AmpUrl';
protected $ampUrlsDataType = 'array';
protected $urlErrorsType = 'Google_Service_Acceleratedmobilepageurl_AmpUrlError';
protected $urlErrorsDataType = 'array';
/**
* @param Google_Service_Acceleratedmobilepageurl_AmpUrl
*/
public function setAmpUrls($ampUrls)
{
$this->ampUrls = $ampUrls;
}
/**
* @return Google_Service_Acceleratedmobilepageurl_AmpUrl
*/
public function getAmpUrls()
{
return $this->ampUrls;
}
/**
* @param Google_Service_Acceleratedmobilepageurl_AmpUrlError
*/
public function setUrlErrors($urlErrors)
{
$this->urlErrors = $urlErrors;
}
/**
* @return Google_Service_Acceleratedmobilepageurl_AmpUrlError
*/
public function getUrlErrors()
{
return $this->urlErrors;
}
}

View File

@@ -0,0 +1,42 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "ampUrls" collection of methods.
* Typical usage is:
* <code>
* $acceleratedmobilepageurlService = new Google_Service_Acceleratedmobilepageurl(...);
* $ampUrls = $acceleratedmobilepageurlService->ampUrls;
* </code>
*/
class Google_Service_Acceleratedmobilepageurl_Resource_AmpUrls extends Google_Service_Resource
{
/**
* Returns AMP URL(s) and equivalent [AMP Cache URL(s)](/amp/cache/overview#amp-
* cache-url-format). (ampUrls.batchGet)
*
* @param Google_Service_Acceleratedmobilepageurl_BatchGetAmpUrlsRequest $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_Acceleratedmobilepageurl_BatchGetAmpUrlsResponse
*/
public function batchGet(Google_Service_Acceleratedmobilepageurl_BatchGetAmpUrlsRequest $postBody, $optParams = array())
{
$params = array('postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('batchGet', array($params), "Google_Service_Acceleratedmobilepageurl_BatchGetAmpUrlsResponse");
}
}

View File

@@ -0,0 +1,348 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* Service definition for AccessApproval (v1beta1).
*
* <p>
* An API for controlling access to data by Google personnel.</p>
*
* <p>
* For more information about this service, see the API
* <a href="https://cloud.google.com/access-approval/docs" target="_blank">Documentation</a>
* </p>
*
* @author Google, Inc.
*/
class Google_Service_AccessApproval extends Google_Service
{
/** View and manage your data across Google Cloud Platform services. */
const CLOUD_PLATFORM =
"https://www.googleapis.com/auth/cloud-platform";
public $folders;
public $folders_approvalRequests;
public $organizations;
public $organizations_approvalRequests;
public $projects;
public $projects_approvalRequests;
/**
* Constructs the internal representation of the AccessApproval service.
*
* @param Google_Client $client The client used to deliver requests.
* @param string $rootUrl The root URL used for requests to the service.
*/
public function __construct(Google_Client $client, $rootUrl = null)
{
parent::__construct($client);
$this->rootUrl = $rootUrl ?: 'https://accessapproval.googleapis.com/';
$this->servicePath = '';
$this->batchPath = 'batch';
$this->version = 'v1beta1';
$this->serviceName = 'accessapproval';
$this->folders = new Google_Service_AccessApproval_Resource_Folders(
$this,
$this->serviceName,
'folders',
array(
'methods' => array(
'getAccessApprovalSettings' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'updateAccessApprovalSettings' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'PATCH',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'updateMask' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
$this->folders_approvalRequests = new Google_Service_AccessApproval_Resource_FoldersApprovalRequests(
$this,
$this->serviceName,
'approvalRequests',
array(
'methods' => array(
'approve' => array(
'path' => 'v1beta1/{+name}:approve',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'dismiss' => array(
'path' => 'v1beta1/{+name}:dismiss',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'list' => array(
'path' => 'v1beta1/{+parent}/approvalRequests',
'httpMethod' => 'GET',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'filter' => array(
'location' => 'query',
'type' => 'string',
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
),
),
)
)
);
$this->organizations = new Google_Service_AccessApproval_Resource_Organizations(
$this,
$this->serviceName,
'organizations',
array(
'methods' => array(
'getAccessApprovalSettings' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'updateAccessApprovalSettings' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'PATCH',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'updateMask' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
$this->organizations_approvalRequests = new Google_Service_AccessApproval_Resource_OrganizationsApprovalRequests(
$this,
$this->serviceName,
'approvalRequests',
array(
'methods' => array(
'approve' => array(
'path' => 'v1beta1/{+name}:approve',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'dismiss' => array(
'path' => 'v1beta1/{+name}:dismiss',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'list' => array(
'path' => 'v1beta1/{+parent}/approvalRequests',
'httpMethod' => 'GET',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'filter' => array(
'location' => 'query',
'type' => 'string',
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
),
),
)
)
);
$this->projects = new Google_Service_AccessApproval_Resource_Projects(
$this,
$this->serviceName,
'projects',
array(
'methods' => array(
'getAccessApprovalSettings' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'updateAccessApprovalSettings' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'PATCH',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'updateMask' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
$this->projects_approvalRequests = new Google_Service_AccessApproval_Resource_ProjectsApprovalRequests(
$this,
$this->serviceName,
'approvalRequests',
array(
'methods' => array(
'approve' => array(
'path' => 'v1beta1/{+name}:approve',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'dismiss' => array(
'path' => 'v1beta1/{+name}:dismiss',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1beta1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'list' => array(
'path' => 'v1beta1/{+parent}/approvalRequests',
'httpMethod' => 'GET',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
'filter' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
}
}

View File

@@ -0,0 +1,56 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_AccessApprovalSettings extends Google_Collection
{
protected $collection_key = 'notificationEmails';
protected $enrolledServicesType = 'Google_Service_AccessApproval_EnrolledService';
protected $enrolledServicesDataType = 'array';
public $name;
public $notificationEmails;
/**
* @param Google_Service_AccessApproval_EnrolledService
*/
public function setEnrolledServices($enrolledServices)
{
$this->enrolledServices = $enrolledServices;
}
/**
* @return Google_Service_AccessApproval_EnrolledService
*/
public function getEnrolledServices()
{
return $this->enrolledServices;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setNotificationEmails($notificationEmails)
{
$this->notificationEmails = $notificationEmails;
}
public function getNotificationEmails()
{
return $this->notificationEmails;
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_AccessLocations extends Google_Model
{
public $principalOfficeCountry;
public $principalPhysicalLocationCountry;
public function setPrincipalOfficeCountry($principalOfficeCountry)
{
$this->principalOfficeCountry = $principalOfficeCountry;
}
public function getPrincipalOfficeCountry()
{
return $this->principalOfficeCountry;
}
public function setPrincipalPhysicalLocationCountry($principalPhysicalLocationCountry)
{
$this->principalPhysicalLocationCountry = $principalPhysicalLocationCountry;
}
public function getPrincipalPhysicalLocationCountry()
{
return $this->principalPhysicalLocationCountry;
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_AccessReason extends Google_Model
{
public $detail;
public $type;
public function setDetail($detail)
{
$this->detail = $detail;
}
public function getDetail()
{
return $this->detail;
}
public function setType($type)
{
$this->type = $type;
}
public function getType()
{
return $this->type;
}
}

View File

@@ -0,0 +1,137 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_ApprovalRequest extends Google_Model
{
protected $approveType = 'Google_Service_AccessApproval_ApproveDecision';
protected $approveDataType = '';
protected $dismissType = 'Google_Service_AccessApproval_DismissDecision';
protected $dismissDataType = '';
public $name;
public $requestTime;
public $requestedExpiration;
protected $requestedLocationsType = 'Google_Service_AccessApproval_AccessLocations';
protected $requestedLocationsDataType = '';
protected $requestedReasonType = 'Google_Service_AccessApproval_AccessReason';
protected $requestedReasonDataType = '';
public $requestedResourceName;
protected $requestedResourcePropertiesType = 'Google_Service_AccessApproval_ResourceProperties';
protected $requestedResourcePropertiesDataType = '';
/**
* @param Google_Service_AccessApproval_ApproveDecision
*/
public function setApprove(Google_Service_AccessApproval_ApproveDecision $approve)
{
$this->approve = $approve;
}
/**
* @return Google_Service_AccessApproval_ApproveDecision
*/
public function getApprove()
{
return $this->approve;
}
/**
* @param Google_Service_AccessApproval_DismissDecision
*/
public function setDismiss(Google_Service_AccessApproval_DismissDecision $dismiss)
{
$this->dismiss = $dismiss;
}
/**
* @return Google_Service_AccessApproval_DismissDecision
*/
public function getDismiss()
{
return $this->dismiss;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setRequestTime($requestTime)
{
$this->requestTime = $requestTime;
}
public function getRequestTime()
{
return $this->requestTime;
}
public function setRequestedExpiration($requestedExpiration)
{
$this->requestedExpiration = $requestedExpiration;
}
public function getRequestedExpiration()
{
return $this->requestedExpiration;
}
/**
* @param Google_Service_AccessApproval_AccessLocations
*/
public function setRequestedLocations(Google_Service_AccessApproval_AccessLocations $requestedLocations)
{
$this->requestedLocations = $requestedLocations;
}
/**
* @return Google_Service_AccessApproval_AccessLocations
*/
public function getRequestedLocations()
{
return $this->requestedLocations;
}
/**
* @param Google_Service_AccessApproval_AccessReason
*/
public function setRequestedReason(Google_Service_AccessApproval_AccessReason $requestedReason)
{
$this->requestedReason = $requestedReason;
}
/**
* @return Google_Service_AccessApproval_AccessReason
*/
public function getRequestedReason()
{
return $this->requestedReason;
}
public function setRequestedResourceName($requestedResourceName)
{
$this->requestedResourceName = $requestedResourceName;
}
public function getRequestedResourceName()
{
return $this->requestedResourceName;
}
/**
* @param Google_Service_AccessApproval_ResourceProperties
*/
public function setRequestedResourceProperties(Google_Service_AccessApproval_ResourceProperties $requestedResourceProperties)
{
$this->requestedResourceProperties = $requestedResourceProperties;
}
/**
* @return Google_Service_AccessApproval_ResourceProperties
*/
public function getRequestedResourceProperties()
{
return $this->requestedResourceProperties;
}
}

View File

@@ -0,0 +1,30 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_ApproveApprovalRequestMessage extends Google_Model
{
public $expireTime;
public function setExpireTime($expireTime)
{
$this->expireTime = $expireTime;
}
public function getExpireTime()
{
return $this->expireTime;
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_ApproveDecision extends Google_Model
{
public $approveTime;
public $expireTime;
public function setApproveTime($approveTime)
{
$this->approveTime = $approveTime;
}
public function getApproveTime()
{
return $this->approveTime;
}
public function setExpireTime($expireTime)
{
$this->expireTime = $expireTime;
}
public function getExpireTime()
{
return $this->expireTime;
}
}

View File

@@ -0,0 +1,20 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_DismissApprovalRequestMessage extends Google_Model
{
}

View File

@@ -0,0 +1,30 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_DismissDecision extends Google_Model
{
public $dismissTime;
public function setDismissTime($dismissTime)
{
$this->dismissTime = $dismissTime;
}
public function getDismissTime()
{
return $this->dismissTime;
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_EnrolledService extends Google_Model
{
public $cloudProduct;
public $enrollmentLevel;
public function setCloudProduct($cloudProduct)
{
$this->cloudProduct = $cloudProduct;
}
public function getCloudProduct()
{
return $this->cloudProduct;
}
public function setEnrollmentLevel($enrollmentLevel)
{
$this->enrollmentLevel = $enrollmentLevel;
}
public function getEnrollmentLevel()
{
return $this->enrollmentLevel;
}
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_ListApprovalRequestsResponse extends Google_Collection
{
protected $collection_key = 'approvalRequests';
protected $approvalRequestsType = 'Google_Service_AccessApproval_ApprovalRequest';
protected $approvalRequestsDataType = 'array';
public $nextPageToken;
/**
* @param Google_Service_AccessApproval_ApprovalRequest
*/
public function setApprovalRequests($approvalRequests)
{
$this->approvalRequests = $approvalRequests;
}
/**
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function getApprovalRequests()
{
return $this->approvalRequests;
}
public function setNextPageToken($nextPageToken)
{
$this->nextPageToken = $nextPageToken;
}
public function getNextPageToken()
{
return $this->nextPageToken;
}
}

View File

@@ -0,0 +1,67 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "folders" collection of methods.
* Typical usage is:
* <code>
* $accessapprovalService = new Google_Service_AccessApproval(...);
* $folders = $accessapprovalService->folders;
* </code>
*/
class Google_Service_AccessApproval_Resource_Folders extends Google_Service_Resource
{
/**
* Gets the settings associated with a project, folder, or organization.
* (folders.getAccessApprovalSettings)
*
* @param string $name Name of the AccessApprovalSettings to retrieve.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_AccessApprovalSettings
*/
public function getAccessApprovalSettings($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('getAccessApprovalSettings', array($params), "Google_Service_AccessApproval_AccessApprovalSettings");
}
/**
* Updates the settings associated with a project, folder, or organization.
* Settings to update are determined by the value of field_mask.
* (folders.updateAccessApprovalSettings)
*
* @param string $name The resource name of the settings. Format is one of:
*
* "projects/{project_id}/accessApprovalSettings"
* "folders/{folder_id}/accessApprovalSettings"
* "organizations/{organization_id}/accessApprovalSettings"
* @param Google_Service_AccessApproval_AccessApprovalSettings $postBody
* @param array $optParams Optional parameters.
*
* @opt_param string updateMask The update mask applies to the settings. For the
* `FieldMask` definition, see https://developers.google.com/protocol-
* buffers/docs/reference/google.protobuf#fieldmask If this field is left unset,
* only the notification_emails field will be updated.
* @return Google_Service_AccessApproval_AccessApprovalSettings
*/
public function updateAccessApprovalSettings($name, Google_Service_AccessApproval_AccessApprovalSettings $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('updateAccessApprovalSettings', array($params), "Google_Service_AccessApproval_AccessApprovalSettings");
}
}

View File

@@ -0,0 +1,112 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "approvalRequests" collection of methods.
* Typical usage is:
* <code>
* $accessapprovalService = new Google_Service_AccessApproval(...);
* $approvalRequests = $accessapprovalService->approvalRequests;
* </code>
*/
class Google_Service_AccessApproval_Resource_FoldersApprovalRequests extends Google_Service_Resource
{
/**
* Approves a request and returns the updated ApprovalRequest.
*
* Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION
* if the request exists but is not in a pending state.
* (approvalRequests.approve)
*
* @param string $name Name of the approval request to approve.
* @param Google_Service_AccessApproval_ApproveApprovalRequestMessage $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function approve($name, Google_Service_AccessApproval_ApproveApprovalRequestMessage $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('approve', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Dismisses a request. Returns the updated ApprovalRequest.
*
* NOTE: This does not deny access to the resource if another request has been
* made and approved. It is equivalent in effect to ignoring the request
* altogether.
*
* Returns NOT_FOUND if the request does not exist.
*
* Returns FAILED_PRECONDITION if the request exists but is not in a pending
* state. (approvalRequests.dismiss)
*
* @param string $name Name of the ApprovalRequest to dismiss.
* @param Google_Service_AccessApproval_DismissApprovalRequestMessage $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function dismiss($name, Google_Service_AccessApproval_DismissApprovalRequestMessage $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('dismiss', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Gets an approval request. Returns NOT_FOUND if the request does not exist.
* (approvalRequests.get)
*
* @param string $name Name of the approval request to retrieve.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Lists approval requests associated with a project, folder, or organization.
* Approval requests can be filtered by state (pending, active, dismissed). The
* order is reverse chronological.
* (approvalRequests.listFoldersApprovalRequests)
*
* @param string $parent The parent resource. This may be
* "projects/{project_id}", "folders/{folder_id}", or
* "organizations/{organization_id}".
* @param array $optParams Optional parameters.
*
* @opt_param string filter A filter on the type of approval requests to
* retrieve. Must be one of the following values:
*
* [not set]: Requests that are pending or have active approvals. ALL: All
* requests. PENDING: Only pending requests. ACTIVE: Only active (i.e.
* currently approved) requests. DISMISSED: Only dismissed (including expired)
* requests.
* @opt_param string pageToken A token identifying the page of results to
* return.
* @opt_param int pageSize Requested page size.
* @return Google_Service_AccessApproval_ListApprovalRequestsResponse
*/
public function listFoldersApprovalRequests($parent, $optParams = array())
{
$params = array('parent' => $parent);
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessApproval_ListApprovalRequestsResponse");
}
}

View File

@@ -0,0 +1,67 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "organizations" collection of methods.
* Typical usage is:
* <code>
* $accessapprovalService = new Google_Service_AccessApproval(...);
* $organizations = $accessapprovalService->organizations;
* </code>
*/
class Google_Service_AccessApproval_Resource_Organizations extends Google_Service_Resource
{
/**
* Gets the settings associated with a project, folder, or organization.
* (organizations.getAccessApprovalSettings)
*
* @param string $name Name of the AccessApprovalSettings to retrieve.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_AccessApprovalSettings
*/
public function getAccessApprovalSettings($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('getAccessApprovalSettings', array($params), "Google_Service_AccessApproval_AccessApprovalSettings");
}
/**
* Updates the settings associated with a project, folder, or organization.
* Settings to update are determined by the value of field_mask.
* (organizations.updateAccessApprovalSettings)
*
* @param string $name The resource name of the settings. Format is one of:
*
* "projects/{project_id}/accessApprovalSettings"
* "folders/{folder_id}/accessApprovalSettings"
* "organizations/{organization_id}/accessApprovalSettings"
* @param Google_Service_AccessApproval_AccessApprovalSettings $postBody
* @param array $optParams Optional parameters.
*
* @opt_param string updateMask The update mask applies to the settings. For the
* `FieldMask` definition, see https://developers.google.com/protocol-
* buffers/docs/reference/google.protobuf#fieldmask If this field is left unset,
* only the notification_emails field will be updated.
* @return Google_Service_AccessApproval_AccessApprovalSettings
*/
public function updateAccessApprovalSettings($name, Google_Service_AccessApproval_AccessApprovalSettings $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('updateAccessApprovalSettings', array($params), "Google_Service_AccessApproval_AccessApprovalSettings");
}
}

View File

@@ -0,0 +1,112 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "approvalRequests" collection of methods.
* Typical usage is:
* <code>
* $accessapprovalService = new Google_Service_AccessApproval(...);
* $approvalRequests = $accessapprovalService->approvalRequests;
* </code>
*/
class Google_Service_AccessApproval_Resource_OrganizationsApprovalRequests extends Google_Service_Resource
{
/**
* Approves a request and returns the updated ApprovalRequest.
*
* Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION
* if the request exists but is not in a pending state.
* (approvalRequests.approve)
*
* @param string $name Name of the approval request to approve.
* @param Google_Service_AccessApproval_ApproveApprovalRequestMessage $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function approve($name, Google_Service_AccessApproval_ApproveApprovalRequestMessage $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('approve', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Dismisses a request. Returns the updated ApprovalRequest.
*
* NOTE: This does not deny access to the resource if another request has been
* made and approved. It is equivalent in effect to ignoring the request
* altogether.
*
* Returns NOT_FOUND if the request does not exist.
*
* Returns FAILED_PRECONDITION if the request exists but is not in a pending
* state. (approvalRequests.dismiss)
*
* @param string $name Name of the ApprovalRequest to dismiss.
* @param Google_Service_AccessApproval_DismissApprovalRequestMessage $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function dismiss($name, Google_Service_AccessApproval_DismissApprovalRequestMessage $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('dismiss', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Gets an approval request. Returns NOT_FOUND if the request does not exist.
* (approvalRequests.get)
*
* @param string $name Name of the approval request to retrieve.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Lists approval requests associated with a project, folder, or organization.
* Approval requests can be filtered by state (pending, active, dismissed). The
* order is reverse chronological.
* (approvalRequests.listOrganizationsApprovalRequests)
*
* @param string $parent The parent resource. This may be
* "projects/{project_id}", "folders/{folder_id}", or
* "organizations/{organization_id}".
* @param array $optParams Optional parameters.
*
* @opt_param string filter A filter on the type of approval requests to
* retrieve. Must be one of the following values:
*
* [not set]: Requests that are pending or have active approvals. ALL: All
* requests. PENDING: Only pending requests. ACTIVE: Only active (i.e.
* currently approved) requests. DISMISSED: Only dismissed (including expired)
* requests.
* @opt_param string pageToken A token identifying the page of results to
* return.
* @opt_param int pageSize Requested page size.
* @return Google_Service_AccessApproval_ListApprovalRequestsResponse
*/
public function listOrganizationsApprovalRequests($parent, $optParams = array())
{
$params = array('parent' => $parent);
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessApproval_ListApprovalRequestsResponse");
}
}

View File

@@ -0,0 +1,67 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "projects" collection of methods.
* Typical usage is:
* <code>
* $accessapprovalService = new Google_Service_AccessApproval(...);
* $projects = $accessapprovalService->projects;
* </code>
*/
class Google_Service_AccessApproval_Resource_Projects extends Google_Service_Resource
{
/**
* Gets the settings associated with a project, folder, or organization.
* (projects.getAccessApprovalSettings)
*
* @param string $name Name of the AccessApprovalSettings to retrieve.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_AccessApprovalSettings
*/
public function getAccessApprovalSettings($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('getAccessApprovalSettings', array($params), "Google_Service_AccessApproval_AccessApprovalSettings");
}
/**
* Updates the settings associated with a project, folder, or organization.
* Settings to update are determined by the value of field_mask.
* (projects.updateAccessApprovalSettings)
*
* @param string $name The resource name of the settings. Format is one of:
*
* "projects/{project_id}/accessApprovalSettings"
* "folders/{folder_id}/accessApprovalSettings"
* "organizations/{organization_id}/accessApprovalSettings"
* @param Google_Service_AccessApproval_AccessApprovalSettings $postBody
* @param array $optParams Optional parameters.
*
* @opt_param string updateMask The update mask applies to the settings. For the
* `FieldMask` definition, see https://developers.google.com/protocol-
* buffers/docs/reference/google.protobuf#fieldmask If this field is left unset,
* only the notification_emails field will be updated.
* @return Google_Service_AccessApproval_AccessApprovalSettings
*/
public function updateAccessApprovalSettings($name, Google_Service_AccessApproval_AccessApprovalSettings $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('updateAccessApprovalSettings', array($params), "Google_Service_AccessApproval_AccessApprovalSettings");
}
}

View File

@@ -0,0 +1,112 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "approvalRequests" collection of methods.
* Typical usage is:
* <code>
* $accessapprovalService = new Google_Service_AccessApproval(...);
* $approvalRequests = $accessapprovalService->approvalRequests;
* </code>
*/
class Google_Service_AccessApproval_Resource_ProjectsApprovalRequests extends Google_Service_Resource
{
/**
* Approves a request and returns the updated ApprovalRequest.
*
* Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION
* if the request exists but is not in a pending state.
* (approvalRequests.approve)
*
* @param string $name Name of the approval request to approve.
* @param Google_Service_AccessApproval_ApproveApprovalRequestMessage $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function approve($name, Google_Service_AccessApproval_ApproveApprovalRequestMessage $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('approve', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Dismisses a request. Returns the updated ApprovalRequest.
*
* NOTE: This does not deny access to the resource if another request has been
* made and approved. It is equivalent in effect to ignoring the request
* altogether.
*
* Returns NOT_FOUND if the request does not exist.
*
* Returns FAILED_PRECONDITION if the request exists but is not in a pending
* state. (approvalRequests.dismiss)
*
* @param string $name Name of the ApprovalRequest to dismiss.
* @param Google_Service_AccessApproval_DismissApprovalRequestMessage $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function dismiss($name, Google_Service_AccessApproval_DismissApprovalRequestMessage $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('dismiss', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Gets an approval request. Returns NOT_FOUND if the request does not exist.
* (approvalRequests.get)
*
* @param string $name Name of the approval request to retrieve.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessApproval_ApprovalRequest
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessApproval_ApprovalRequest");
}
/**
* Lists approval requests associated with a project, folder, or organization.
* Approval requests can be filtered by state (pending, active, dismissed). The
* order is reverse chronological.
* (approvalRequests.listProjectsApprovalRequests)
*
* @param string $parent The parent resource. This may be
* "projects/{project_id}", "folders/{folder_id}", or
* "organizations/{organization_id}".
* @param array $optParams Optional parameters.
*
* @opt_param string pageToken A token identifying the page of results to
* return.
* @opt_param int pageSize Requested page size.
* @opt_param string filter A filter on the type of approval requests to
* retrieve. Must be one of the following values:
*
* [not set]: Requests that are pending or have active approvals. ALL: All
* requests. PENDING: Only pending requests. ACTIVE: Only active (i.e.
* currently approved) requests. DISMISSED: Only dismissed (including expired)
* requests.
* @return Google_Service_AccessApproval_ListApprovalRequestsResponse
*/
public function listProjectsApprovalRequests($parent, $optParams = array())
{
$params = array('parent' => $parent);
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessApproval_ListApprovalRequestsResponse");
}
}

View File

@@ -0,0 +1,30 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessApproval_ResourceProperties extends Google_Model
{
public $excludesDescendants;
public function setExcludesDescendants($excludesDescendants)
{
$this->excludesDescendants = $excludesDescendants;
}
public function getExcludesDescendants()
{
return $this->excludesDescendants;
}
}

View File

@@ -0,0 +1,338 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* Service definition for AccessContextManager (v1).
*
* <p>
* An API for setting attribute based access control to requests to GCP
* services.</p>
*
* <p>
* For more information about this service, see the API
* <a href="https://cloud.google.com/access-context-manager/docs/reference/rest/" target="_blank">Documentation</a>
* </p>
*
* @author Google, Inc.
*/
class Google_Service_AccessContextManager extends Google_Service
{
/** View and manage your data across Google Cloud Platform services. */
const CLOUD_PLATFORM =
"https://www.googleapis.com/auth/cloud-platform";
public $accessPolicies;
public $accessPolicies_accessLevels;
public $accessPolicies_servicePerimeters;
public $operations;
/**
* Constructs the internal representation of the AccessContextManager service.
*
* @param Google_Client $client The client used to deliver requests.
* @param string $rootUrl The root URL used for requests to the service.
*/
public function __construct(Google_Client $client, $rootUrl = null)
{
parent::__construct($client);
$this->rootUrl = $rootUrl ?: 'https://accesscontextmanager.googleapis.com/';
$this->servicePath = '';
$this->batchPath = 'batch';
$this->version = 'v1';
$this->serviceName = 'accesscontextmanager';
$this->accessPolicies = new Google_Service_AccessContextManager_Resource_AccessPolicies(
$this,
$this->serviceName,
'accessPolicies',
array(
'methods' => array(
'create' => array(
'path' => 'v1/accessPolicies',
'httpMethod' => 'POST',
'parameters' => array(),
),'delete' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'DELETE',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'list' => array(
'path' => 'v1/accessPolicies',
'httpMethod' => 'GET',
'parameters' => array(
'parent' => array(
'location' => 'query',
'type' => 'string',
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
),
),'patch' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'PATCH',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'updateMask' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
$this->accessPolicies_accessLevels = new Google_Service_AccessContextManager_Resource_AccessPoliciesAccessLevels(
$this,
$this->serviceName,
'accessLevels',
array(
'methods' => array(
'create' => array(
'path' => 'v1/{+parent}/accessLevels',
'httpMethod' => 'POST',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'delete' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'DELETE',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'accessLevelFormat' => array(
'location' => 'query',
'type' => 'string',
),
),
),'list' => array(
'path' => 'v1/{+parent}/accessLevels',
'httpMethod' => 'GET',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
'accessLevelFormat' => array(
'location' => 'query',
'type' => 'string',
),
),
),'patch' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'PATCH',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'updateMask' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
$this->accessPolicies_servicePerimeters = new Google_Service_AccessContextManager_Resource_AccessPoliciesServicePerimeters(
$this,
$this->serviceName,
'servicePerimeters',
array(
'methods' => array(
'create' => array(
'path' => 'v1/{+parent}/servicePerimeters',
'httpMethod' => 'POST',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'delete' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'DELETE',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'list' => array(
'path' => 'v1/{+parent}/servicePerimeters',
'httpMethod' => 'GET',
'parameters' => array(
'parent' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
),
),'patch' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'PATCH',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'updateMask' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
$this->operations = new Google_Service_AccessContextManager_Resource_Operations(
$this,
$this->serviceName,
'operations',
array(
'methods' => array(
'cancel' => array(
'path' => 'v1/{+name}:cancel',
'httpMethod' => 'POST',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'delete' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'DELETE',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'get' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
),
),'list' => array(
'path' => 'v1/{+name}',
'httpMethod' => 'GET',
'parameters' => array(
'name' => array(
'location' => 'path',
'type' => 'string',
'required' => true,
),
'pageSize' => array(
'location' => 'query',
'type' => 'integer',
),
'filter' => array(
'location' => 'query',
'type' => 'string',
),
'pageToken' => array(
'location' => 'query',
'type' => 'string',
),
),
),
)
)
);
}
}

View File

@@ -0,0 +1,82 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_AccessLevel extends Google_Model
{
protected $basicType = 'Google_Service_AccessContextManager_BasicLevel';
protected $basicDataType = '';
public $createTime;
public $description;
public $name;
public $title;
public $updateTime;
/**
* @param Google_Service_AccessContextManager_BasicLevel
*/
public function setBasic(Google_Service_AccessContextManager_BasicLevel $basic)
{
$this->basic = $basic;
}
/**
* @return Google_Service_AccessContextManager_BasicLevel
*/
public function getBasic()
{
return $this->basic;
}
public function setCreateTime($createTime)
{
$this->createTime = $createTime;
}
public function getCreateTime()
{
return $this->createTime;
}
public function setDescription($description)
{
$this->description = $description;
}
public function getDescription()
{
return $this->description;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setTitle($title)
{
$this->title = $title;
}
public function getTitle()
{
return $this->title;
}
public function setUpdateTime($updateTime)
{
$this->updateTime = $updateTime;
}
public function getUpdateTime()
{
return $this->updateTime;
}
}

View File

@@ -0,0 +1,66 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_AccessPolicy extends Google_Model
{
public $createTime;
public $name;
public $parent;
public $title;
public $updateTime;
public function setCreateTime($createTime)
{
$this->createTime = $createTime;
}
public function getCreateTime()
{
return $this->createTime;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setParent($parent)
{
$this->parent = $parent;
}
public function getParent()
{
return $this->parent;
}
public function setTitle($title)
{
$this->title = $title;
}
public function getTitle()
{
return $this->title;
}
public function setUpdateTime($updateTime)
{
$this->updateTime = $updateTime;
}
public function getUpdateTime()
{
return $this->updateTime;
}
}

View File

@@ -0,0 +1,20 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_AccesscontextmanagerEmpty extends Google_Model
{
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_BasicLevel extends Google_Collection
{
protected $collection_key = 'conditions';
public $combiningFunction;
protected $conditionsType = 'Google_Service_AccessContextManager_Condition';
protected $conditionsDataType = 'array';
public function setCombiningFunction($combiningFunction)
{
$this->combiningFunction = $combiningFunction;
}
public function getCombiningFunction()
{
return $this->combiningFunction;
}
/**
* @param Google_Service_AccessContextManager_Condition
*/
public function setConditions($conditions)
{
$this->conditions = $conditions;
}
/**
* @return Google_Service_AccessContextManager_Condition
*/
public function getConditions()
{
return $this->conditions;
}
}

View File

@@ -0,0 +1,20 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_CancelOperationRequest extends Google_Model
{
}

View File

@@ -0,0 +1,83 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_Condition extends Google_Collection
{
protected $collection_key = 'requiredAccessLevels';
protected $devicePolicyType = 'Google_Service_AccessContextManager_DevicePolicy';
protected $devicePolicyDataType = '';
public $ipSubnetworks;
public $members;
public $negate;
public $regions;
public $requiredAccessLevels;
/**
* @param Google_Service_AccessContextManager_DevicePolicy
*/
public function setDevicePolicy(Google_Service_AccessContextManager_DevicePolicy $devicePolicy)
{
$this->devicePolicy = $devicePolicy;
}
/**
* @return Google_Service_AccessContextManager_DevicePolicy
*/
public function getDevicePolicy()
{
return $this->devicePolicy;
}
public function setIpSubnetworks($ipSubnetworks)
{
$this->ipSubnetworks = $ipSubnetworks;
}
public function getIpSubnetworks()
{
return $this->ipSubnetworks;
}
public function setMembers($members)
{
$this->members = $members;
}
public function getMembers()
{
return $this->members;
}
public function setNegate($negate)
{
$this->negate = $negate;
}
public function getNegate()
{
return $this->negate;
}
public function setRegions($regions)
{
$this->regions = $regions;
}
public function getRegions()
{
return $this->regions;
}
public function setRequiredAccessLevels($requiredAccessLevels)
{
$this->requiredAccessLevels = $requiredAccessLevels;
}
public function getRequiredAccessLevels()
{
return $this->requiredAccessLevels;
}
}

View File

@@ -0,0 +1,83 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_DevicePolicy extends Google_Collection
{
protected $collection_key = 'osConstraints';
public $allowedDeviceManagementLevels;
public $allowedEncryptionStatuses;
protected $osConstraintsType = 'Google_Service_AccessContextManager_OsConstraint';
protected $osConstraintsDataType = 'array';
public $requireAdminApproval;
public $requireCorpOwned;
public $requireScreenlock;
public function setAllowedDeviceManagementLevels($allowedDeviceManagementLevels)
{
$this->allowedDeviceManagementLevels = $allowedDeviceManagementLevels;
}
public function getAllowedDeviceManagementLevels()
{
return $this->allowedDeviceManagementLevels;
}
public function setAllowedEncryptionStatuses($allowedEncryptionStatuses)
{
$this->allowedEncryptionStatuses = $allowedEncryptionStatuses;
}
public function getAllowedEncryptionStatuses()
{
return $this->allowedEncryptionStatuses;
}
/**
* @param Google_Service_AccessContextManager_OsConstraint
*/
public function setOsConstraints($osConstraints)
{
$this->osConstraints = $osConstraints;
}
/**
* @return Google_Service_AccessContextManager_OsConstraint
*/
public function getOsConstraints()
{
return $this->osConstraints;
}
public function setRequireAdminApproval($requireAdminApproval)
{
$this->requireAdminApproval = $requireAdminApproval;
}
public function getRequireAdminApproval()
{
return $this->requireAdminApproval;
}
public function setRequireCorpOwned($requireCorpOwned)
{
$this->requireCorpOwned = $requireCorpOwned;
}
public function getRequireCorpOwned()
{
return $this->requireCorpOwned;
}
public function setRequireScreenlock($requireScreenlock)
{
$this->requireScreenlock = $requireScreenlock;
}
public function getRequireScreenlock()
{
return $this->requireScreenlock;
}
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_ListAccessLevelsResponse extends Google_Collection
{
protected $collection_key = 'accessLevels';
protected $accessLevelsType = 'Google_Service_AccessContextManager_AccessLevel';
protected $accessLevelsDataType = 'array';
public $nextPageToken;
/**
* @param Google_Service_AccessContextManager_AccessLevel
*/
public function setAccessLevels($accessLevels)
{
$this->accessLevels = $accessLevels;
}
/**
* @return Google_Service_AccessContextManager_AccessLevel
*/
public function getAccessLevels()
{
return $this->accessLevels;
}
public function setNextPageToken($nextPageToken)
{
$this->nextPageToken = $nextPageToken;
}
public function getNextPageToken()
{
return $this->nextPageToken;
}
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_ListAccessPoliciesResponse extends Google_Collection
{
protected $collection_key = 'accessPolicies';
protected $accessPoliciesType = 'Google_Service_AccessContextManager_AccessPolicy';
protected $accessPoliciesDataType = 'array';
public $nextPageToken;
/**
* @param Google_Service_AccessContextManager_AccessPolicy
*/
public function setAccessPolicies($accessPolicies)
{
$this->accessPolicies = $accessPolicies;
}
/**
* @return Google_Service_AccessContextManager_AccessPolicy
*/
public function getAccessPolicies()
{
return $this->accessPolicies;
}
public function setNextPageToken($nextPageToken)
{
$this->nextPageToken = $nextPageToken;
}
public function getNextPageToken()
{
return $this->nextPageToken;
}
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_ListOperationsResponse extends Google_Collection
{
protected $collection_key = 'operations';
public $nextPageToken;
protected $operationsType = 'Google_Service_AccessContextManager_Operation';
protected $operationsDataType = 'array';
public function setNextPageToken($nextPageToken)
{
$this->nextPageToken = $nextPageToken;
}
public function getNextPageToken()
{
return $this->nextPageToken;
}
/**
* @param Google_Service_AccessContextManager_Operation
*/
public function setOperations($operations)
{
$this->operations = $operations;
}
/**
* @return Google_Service_AccessContextManager_Operation
*/
public function getOperations()
{
return $this->operations;
}
}

View File

@@ -0,0 +1,47 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_ListServicePerimetersResponse extends Google_Collection
{
protected $collection_key = 'servicePerimeters';
public $nextPageToken;
protected $servicePerimetersType = 'Google_Service_AccessContextManager_ServicePerimeter';
protected $servicePerimetersDataType = 'array';
public function setNextPageToken($nextPageToken)
{
$this->nextPageToken = $nextPageToken;
}
public function getNextPageToken()
{
return $this->nextPageToken;
}
/**
* @param Google_Service_AccessContextManager_ServicePerimeter
*/
public function setServicePerimeters($servicePerimeters)
{
$this->servicePerimeters = $servicePerimeters;
}
/**
* @return Google_Service_AccessContextManager_ServicePerimeter
*/
public function getServicePerimeters()
{
return $this->servicePerimeters;
}
}

View File

@@ -0,0 +1,73 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_Operation extends Google_Model
{
public $done;
protected $errorType = 'Google_Service_AccessContextManager_Status';
protected $errorDataType = '';
public $metadata;
public $name;
public $response;
public function setDone($done)
{
$this->done = $done;
}
public function getDone()
{
return $this->done;
}
/**
* @param Google_Service_AccessContextManager_Status
*/
public function setError(Google_Service_AccessContextManager_Status $error)
{
$this->error = $error;
}
/**
* @return Google_Service_AccessContextManager_Status
*/
public function getError()
{
return $this->error;
}
public function setMetadata($metadata)
{
$this->metadata = $metadata;
}
public function getMetadata()
{
return $this->metadata;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setResponse($response)
{
$this->response = $response;
}
public function getResponse()
{
return $this->response;
}
}

View File

@@ -0,0 +1,48 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_OsConstraint extends Google_Model
{
public $minimumVersion;
public $osType;
public $requireVerifiedChromeOs;
public function setMinimumVersion($minimumVersion)
{
$this->minimumVersion = $minimumVersion;
}
public function getMinimumVersion()
{
return $this->minimumVersion;
}
public function setOsType($osType)
{
$this->osType = $osType;
}
public function getOsType()
{
return $this->osType;
}
public function setRequireVerifiedChromeOs($requireVerifiedChromeOs)
{
$this->requireVerifiedChromeOs = $requireVerifiedChromeOs;
}
public function getRequireVerifiedChromeOs()
{
return $this->requireVerifiedChromeOs;
}
}

View File

@@ -0,0 +1,120 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "accessPolicies" collection of methods.
* Typical usage is:
* <code>
* $accesscontextmanagerService = new Google_Service_AccessContextManager(...);
* $accessPolicies = $accesscontextmanagerService->accessPolicies;
* </code>
*/
class Google_Service_AccessContextManager_Resource_AccessPolicies extends Google_Service_Resource
{
/**
* Create an `AccessPolicy`. Fails if this organization already has a
* `AccessPolicy`. The longrunning Operation will have a successful status once
* the `AccessPolicy` has propagated to long-lasting storage. Syntactic and
* basic semantic errors will be returned in `metadata` as a BadRequest proto.
* (accessPolicies.create)
*
* @param Google_Service_AccessContextManager_AccessPolicy $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function create(Google_Service_AccessContextManager_AccessPolicy $postBody, $optParams = array())
{
$params = array('postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('create', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Delete an AccessPolicy by resource name. The longrunning Operation will have
* a successful status once the AccessPolicy has been removed from long-lasting
* storage. (accessPolicies.delete)
*
* @param string $name Required. Resource name for the access policy to delete.
*
* Format `accessPolicies/{policy_id}`
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function delete($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('delete', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Get an AccessPolicy by name. (accessPolicies.get)
*
* @param string $name Required. Resource name for the access policy to get.
*
* Format `accessPolicies/{policy_id}`
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_AccessPolicy
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessContextManager_AccessPolicy");
}
/**
* List all AccessPolicies under a container.
* (accessPolicies.listAccessPolicies)
*
* @param array $optParams Optional parameters.
*
* @opt_param string parent Required. Resource name for the container to list
* AccessPolicy instances from.
*
* Format: `organizations/{org_id}`
* @opt_param string pageToken Next page token for the next batch of
* AccessPolicy instances. Defaults to the first page of results.
* @opt_param int pageSize Number of AccessPolicy instances to include in the
* list. Default 100.
* @return Google_Service_AccessContextManager_ListAccessPoliciesResponse
*/
public function listAccessPolicies($optParams = array())
{
$params = array();
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessContextManager_ListAccessPoliciesResponse");
}
/**
* Update an AccessPolicy. The longrunning Operation from this RPC will have a
* successful status once the changes to the AccessPolicy have propagated to
* long-lasting storage. Syntactic and basic semantic errors will be returned in
* `metadata` as a BadRequest proto. (accessPolicies.patch)
*
* @param string $name Output only. Resource name of the `AccessPolicy`. Format:
* `accessPolicies/{policy_id}`
* @param Google_Service_AccessContextManager_AccessPolicy $postBody
* @param array $optParams Optional parameters.
*
* @opt_param string updateMask Required. Mask to control which fields get
* updated. Must be non-empty.
* @return Google_Service_AccessContextManager_Operation
*/
public function patch($name, Google_Service_AccessContextManager_AccessPolicy $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('patch', array($params), "Google_Service_AccessContextManager_Operation");
}
}

View File

@@ -0,0 +1,135 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "accessLevels" collection of methods.
* Typical usage is:
* <code>
* $accesscontextmanagerService = new Google_Service_AccessContextManager(...);
* $accessLevels = $accesscontextmanagerService->accessLevels;
* </code>
*/
class Google_Service_AccessContextManager_Resource_AccessPoliciesAccessLevels extends Google_Service_Resource
{
/**
* Create an Access Level. The longrunning operation from this RPC will have a
* successful status once the Access Level has propagated to long-lasting
* storage. Access Levels containing errors will result in an error response for
* the first error encountered. (accessLevels.create)
*
* @param string $parent Required. Resource name for the access policy which
* owns this Access Level.
*
* Format: `accessPolicies/{policy_id}`
* @param Google_Service_AccessContextManager_AccessLevel $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function create($parent, Google_Service_AccessContextManager_AccessLevel $postBody, $optParams = array())
{
$params = array('parent' => $parent, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('create', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Delete an Access Level by resource name. The longrunning operation from this
* RPC will have a successful status once the Access Level has been removed from
* long-lasting storage. (accessLevels.delete)
*
* @param string $name Required. Resource name for the Access Level.
*
* Format: `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function delete($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('delete', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Get an Access Level by resource name. (accessLevels.get)
*
* @param string $name Required. Resource name for the Access Level.
*
* Format: `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
* @param array $optParams Optional parameters.
*
* @opt_param string accessLevelFormat Whether to return `BasicLevels` in the
* Cloud Common Expression Language rather than as `BasicLevels`. Defaults to
* AS_DEFINED, where Access Levels are returned as `BasicLevels` or
* `CustomLevels` based on how they were created. If set to CEL, all Access
* Levels are returned as `CustomLevels`. In the CEL case, `BasicLevels` are
* translated to equivalent `CustomLevels`.
* @return Google_Service_AccessContextManager_AccessLevel
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessContextManager_AccessLevel");
}
/**
* List all Access Levels for an access policy.
* (accessLevels.listAccessPoliciesAccessLevels)
*
* @param string $parent Required. Resource name for the access policy to list
* Access Levels from.
*
* Format: `accessPolicies/{policy_id}`
* @param array $optParams Optional parameters.
*
* @opt_param string pageToken Next page token for the next batch of Access
* Level instances. Defaults to the first page of results.
* @opt_param int pageSize Number of Access Levels to include in the list.
* Default 100.
* @opt_param string accessLevelFormat Whether to return `BasicLevels` in the
* Cloud Common Expression language, as `CustomLevels`, rather than as
* `BasicLevels`. Defaults to returning `AccessLevels` in the format they were
* defined.
* @return Google_Service_AccessContextManager_ListAccessLevelsResponse
*/
public function listAccessPoliciesAccessLevels($parent, $optParams = array())
{
$params = array('parent' => $parent);
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessContextManager_ListAccessLevelsResponse");
}
/**
* Update an Access Level. The longrunning operation from this RPC will have a
* successful status once the changes to the Access Level have propagated to
* long-lasting storage. Access Levels containing errors will result in an error
* response for the first error encountered. (accessLevels.patch)
*
* @param string $name Required. Resource name for the Access Level. The
* `short_name` component must begin with a letter and only include alphanumeric
* and '_'. Format: `accessPolicies/{policy_id}/accessLevels/{short_name}`
* @param Google_Service_AccessContextManager_AccessLevel $postBody
* @param array $optParams Optional parameters.
*
* @opt_param string updateMask Required. Mask to control which fields get
* updated. Must be non-empty.
* @return Google_Service_AccessContextManager_Operation
*/
public function patch($name, Google_Service_AccessContextManager_AccessLevel $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('patch', array($params), "Google_Service_AccessContextManager_Operation");
}
}

View File

@@ -0,0 +1,126 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "servicePerimeters" collection of methods.
* Typical usage is:
* <code>
* $accesscontextmanagerService = new Google_Service_AccessContextManager(...);
* $servicePerimeters = $accesscontextmanagerService->servicePerimeters;
* </code>
*/
class Google_Service_AccessContextManager_Resource_AccessPoliciesServicePerimeters extends Google_Service_Resource
{
/**
* Create an Service Perimeter. The longrunning operation from this RPC will
* have a successful status once the Service Perimeter has propagated to long-
* lasting storage. Service Perimeters containing errors will result in an error
* response for the first error encountered. (servicePerimeters.create)
*
* @param string $parent Required. Resource name for the access policy which
* owns this Service Perimeter.
*
* Format: `accessPolicies/{policy_id}`
* @param Google_Service_AccessContextManager_ServicePerimeter $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function create($parent, Google_Service_AccessContextManager_ServicePerimeter $postBody, $optParams = array())
{
$params = array('parent' => $parent, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('create', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Delete an Service Perimeter by resource name. The longrunning operation from
* this RPC will have a successful status once the Service Perimeter has been
* removed from long-lasting storage. (servicePerimeters.delete)
*
* @param string $name Required. Resource name for the Service Perimeter.
*
* Format: `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function delete($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('delete', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Get an Service Perimeter by resource name. (servicePerimeters.get)
*
* @param string $name Required. Resource name for the Service Perimeter.
*
* Format:
* `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_ServicePerimeter
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessContextManager_ServicePerimeter");
}
/**
* List all Service Perimeters for an access policy.
* (servicePerimeters.listAccessPoliciesServicePerimeters)
*
* @param string $parent Required. Resource name for the access policy to list
* Service Perimeters from.
*
* Format: `accessPolicies/{policy_id}`
* @param array $optParams Optional parameters.
*
* @opt_param string pageToken Next page token for the next batch of Service
* Perimeter instances. Defaults to the first page of results.
* @opt_param int pageSize Number of Service Perimeters to include in the list.
* Default 100.
* @return Google_Service_AccessContextManager_ListServicePerimetersResponse
*/
public function listAccessPoliciesServicePerimeters($parent, $optParams = array())
{
$params = array('parent' => $parent);
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessContextManager_ListServicePerimetersResponse");
}
/**
* Update an Service Perimeter. The longrunning operation from this RPC will
* have a successful status once the changes to the Service Perimeter have
* propagated to long-lasting storage. Service Perimeter containing errors will
* result in an error response for the first error encountered.
* (servicePerimeters.patch)
*
* @param string $name Required. Resource name for the ServicePerimeter. The
* `short_name` component must begin with a letter and only include alphanumeric
* and '_'. Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`
* @param Google_Service_AccessContextManager_ServicePerimeter $postBody
* @param array $optParams Optional parameters.
*
* @opt_param string updateMask Required. Mask to control which fields get
* updated. Must be non-empty.
* @return Google_Service_AccessContextManager_Operation
*/
public function patch($name, Google_Service_AccessContextManager_ServicePerimeter $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('patch', array($params), "Google_Service_AccessContextManager_Operation");
}
}

View File

@@ -0,0 +1,107 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* The "operations" collection of methods.
* Typical usage is:
* <code>
* $accesscontextmanagerService = new Google_Service_AccessContextManager(...);
* $operations = $accesscontextmanagerService->operations;
* </code>
*/
class Google_Service_AccessContextManager_Resource_Operations extends Google_Service_Resource
{
/**
* Starts asynchronous cancellation on a long-running operation. The server
* makes a best effort to cancel the operation, but success is not guaranteed.
* If the server doesn't support this method, it returns
* `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or
* other methods to check whether the cancellation succeeded or whether the
* operation completed despite cancellation. On successful cancellation, the
* operation is not deleted; instead, it becomes an operation with an
* Operation.error value with a google.rpc.Status.code of 1, corresponding to
* `Code.CANCELLED`. (operations.cancel)
*
* @param string $name The name of the operation resource to be cancelled.
* @param Google_Service_AccessContextManager_CancelOperationRequest $postBody
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_AccesscontextmanagerEmpty
*/
public function cancel($name, Google_Service_AccessContextManager_CancelOperationRequest $postBody, $optParams = array())
{
$params = array('name' => $name, 'postBody' => $postBody);
$params = array_merge($params, $optParams);
return $this->call('cancel', array($params), "Google_Service_AccessContextManager_AccesscontextmanagerEmpty");
}
/**
* Deletes a long-running operation. This method indicates that the client is no
* longer interested in the operation result. It does not cancel the operation.
* If the server doesn't support this method, it returns
* `google.rpc.Code.UNIMPLEMENTED`. (operations.delete)
*
* @param string $name The name of the operation resource to be deleted.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_AccesscontextmanagerEmpty
*/
public function delete($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('delete', array($params), "Google_Service_AccessContextManager_AccesscontextmanagerEmpty");
}
/**
* Gets the latest state of a long-running operation. Clients can use this
* method to poll the operation result at intervals as recommended by the API
* service. (operations.get)
*
* @param string $name The name of the operation resource.
* @param array $optParams Optional parameters.
* @return Google_Service_AccessContextManager_Operation
*/
public function get($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('get', array($params), "Google_Service_AccessContextManager_Operation");
}
/**
* Lists operations that match the specified filter in the request. If the
* server doesn't support this method, it returns `UNIMPLEMENTED`.
*
* NOTE: the `name` binding allows API services to override the binding to use
* different resource name schemes, such as `users/operations`. To override the
* binding, API services can add a binding such as
* `"/v1/{name=users}/operations"` to their service configuration. For backwards
* compatibility, the default name includes the operations collection id,
* however overriding users must ensure the name binding is the parent resource,
* without the operations collection id. (operations.listOperations)
*
* @param string $name The name of the operation's parent resource.
* @param array $optParams Optional parameters.
*
* @opt_param int pageSize The standard list page size.
* @opt_param string filter The standard list filter.
* @opt_param string pageToken The standard list page token.
* @return Google_Service_AccessContextManager_ListOperationsResponse
*/
public function listOperations($name, $optParams = array())
{
$params = array('name' => $name);
$params = array_merge($params, $optParams);
return $this->call('list', array($params), "Google_Service_AccessContextManager_ListOperationsResponse");
}
}

View File

@@ -0,0 +1,91 @@
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
class Google_Service_AccessContextManager_ServicePerimeter extends Google_Model
{
public $createTime;
public $description;
public $name;
public $perimeterType;
protected $statusType = 'Google_Service_AccessContextManager_ServicePerimeterConfig';
protected $statusDataType = '';
public $title;
public $updateTime;
public function setCreateTime($createTime)
{
$this->createTime = $createTime;
}
public function getCreateTime()
{
return $this->createTime;
}
public function setDescription($description)
{
$this->description = $description;
}
public function getDescription()
{
return $this->description;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setPerimeterType($perimeterType)
{
$this->perimeterType = $perimeterType;
}
public function getPerimeterType()
{
return $this->perimeterType;
}
/**
* @param Google_Service_AccessContextManager_ServicePerimeterConfig
*/
public function setStatus(Google_Service_AccessContextManager_ServicePerimeterConfig $status)
{
$this->status = $status;
}
/**
* @return Google_Service_AccessContextManager_ServicePerimeterConfig
*/
public function getStatus()
{
return $this->status;
}
public function setTitle($title)
{
$this->title = $title;
}
public function getTitle()
{
return $this->title;
}
public function setUpdateTime($updateTime)
{
$this->updateTime = $updateTime;
}
public function getUpdateTime()
{
return $this->updateTime;
}
}

Some files were not shown because too many files have changed in this diff Show More