42 lines
1.4 KiB
PHP
42 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Graph;
|
|
|
|
interface GraphClientInterface
|
|
{
|
|
/**
|
|
* List policies of a given type.
|
|
*
|
|
* @param string $policyType Graph policy type identifier
|
|
* @param array $options Additional filters (e.g., platform) and tenant/app context
|
|
*/
|
|
public function listPolicies(string $policyType, array $options = []): GraphResponse;
|
|
|
|
/**
|
|
* Fetch a single policy payload by type and identifier.
|
|
*/
|
|
public function getPolicy(string $policyType, string $policyId, array $options = []): GraphResponse;
|
|
|
|
/**
|
|
* Fetch basic organization metadata for connectivity validation.
|
|
*/
|
|
public function getOrganization(array $options = []): GraphResponse;
|
|
|
|
/**
|
|
* Apply or restore a policy payload.
|
|
*/
|
|
public function applyPolicy(string $policyType, string $policyId, array $payload, array $options = []): GraphResponse;
|
|
|
|
/**
|
|
* Get granted OAuth2 permissions for the service principal.
|
|
*/
|
|
public function getServicePrincipalPermissions(array $options = []): GraphResponse;
|
|
|
|
/**
|
|
* Execute an arbitrary Graph request (used for specialized operations like RBAC setup).
|
|
*
|
|
* Supported options: `query`, `json`, `tenant`, `client_id`, `client_secret`, `scope`, `token_url`, `access_token`.
|
|
*/
|
|
public function request(string $method, string $path, array $options = []): GraphResponse;
|
|
}
|