1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 namespace core\oauth2\service; 18 19 use core\oauth2\issuer; 20 21 /** 22 * Interface for services, with the methods to be implemented by all the issuer implementing it. 23 * 24 * @package core 25 * @copyright 2021 Sara Arjona (sara@moodle.com) 26 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 27 */ 28 interface issuer_interface { 29 30 /** 31 * Build an OAuth2 issuer, with all the default values for this service. 32 * 33 * @return issuer|null The issuer initialised with proper default values, or null if no issuer is initialised. 34 */ 35 public static function init(): ?issuer; 36 37 /** 38 * Create endpoints for this issuer. 39 * 40 * @param issuer $issuer Issuer the endpoints should be created for. 41 * @return issuer 42 */ 43 public static function create_endpoints(issuer $issuer): issuer; 44 45 /** 46 * If the discovery endpoint exists for this issuer, try and determine the list of valid endpoints. 47 * 48 * @param issuer $issuer 49 * @return int The number of discovered services. 50 */ 51 public static function discover_endpoints($issuer): int; 52 53 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body