102 lines
4.0 KiB
Java
102 lines
4.0 KiB
Java
package de.mummeit.pmg.api;
|
|
|
|
import de.mummeit.pmg.api.model.access.request.CheckAccessRequest;
|
|
import de.mummeit.pmg.api.model.access.request.PermitRequest;
|
|
import de.mummeit.pmg.api.model.access.request.RevokeScopeAccessRequest;
|
|
import de.mummeit.pmg.api.model.access.request.RevokeUserAccessRequest;
|
|
import de.mummeit.pmg.api.model.access.request.SearchPermitRequest;
|
|
import de.mummeit.pmg.api.model.access.request.ListPermittedScopesRequest;
|
|
import de.mummeit.pmg.api.model.access.response.PermittedResponse;
|
|
import de.mummeit.pmg.api.model.access.response.ListPermittedScopesResponse;
|
|
import de.mummeit.pmg.api.model.integration.Integration;
|
|
import de.mummeit.pmg.api.model.structure.Domain;
|
|
import de.mummeit.pmg.api.model.structure.Permission;
|
|
import de.mummeit.pmg.api.model.structure.Role;
|
|
import org.springframework.cloud.openfeign.FeignClient;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
|
|
@FeignClient(
|
|
name = "permission-manager",
|
|
url = "${permission-manager.url}"
|
|
)
|
|
public interface PermissionManagerClient {
|
|
|
|
@GetMapping("/health")
|
|
String getHealthStatus();
|
|
|
|
// Access Management
|
|
@PostMapping("/api/v1/access/check")
|
|
PermittedResponse checkAccess(@RequestBody CheckAccessRequest request);
|
|
|
|
@PostMapping("/api/v1/access/permit")
|
|
void permitAccess(@RequestBody PermitRequest request);
|
|
|
|
@PostMapping("/api/v1/access/permits/search")
|
|
List<Permission> searchPermits(@RequestBody SearchPermitRequest request);
|
|
|
|
@PatchMapping("/api/v1/access/revoke")
|
|
void revokeAccess(@RequestBody PermitRequest request);
|
|
|
|
@PatchMapping("/api/v1/access/revoke/scope")
|
|
void revokeScopeAccess(@RequestBody RevokeScopeAccessRequest request);
|
|
|
|
@PatchMapping("/api/v1/access/revoke/user")
|
|
void revokeUserAccess(@RequestBody RevokeUserAccessRequest request);
|
|
|
|
@PostMapping("/api/v1/access/scopes")
|
|
ListPermittedScopesResponse listPermittedScopes(@RequestBody ListPermittedScopesRequest request);
|
|
|
|
// Domain Management
|
|
@PostMapping("/api/v1/domains")
|
|
Domain createDomain(@RequestBody Domain domain);
|
|
|
|
@GetMapping("/api/v1/domains/{domain}")
|
|
Domain getDomain(@PathVariable("domain") String domain);
|
|
|
|
@PutMapping("/api/v1/domains/{domain}")
|
|
Domain updateDomain(@PathVariable("domain") String domain, @RequestBody Domain domainRequest);
|
|
|
|
@DeleteMapping("/api/v1/domains/{domain}")
|
|
void deleteDomain(@PathVariable("domain") String domain);
|
|
|
|
// Permission Management
|
|
@PostMapping("/api/v1/domains/{domain}/permissions")
|
|
Permission createPermission(@PathVariable("domain") String domain, @RequestBody Permission permission);
|
|
|
|
@GetMapping("/api/v1/domains/{domain}/permissions/{permission}")
|
|
Permission getPermission(@PathVariable("domain") String domain, @PathVariable("permission") String permission);
|
|
|
|
@PutMapping("/api/v1/domains/{domain}/permissions/{permission}")
|
|
Permission updatePermission(
|
|
@PathVariable("domain") String domain,
|
|
@PathVariable("permission") String permission,
|
|
@RequestBody Permission permissionRequest
|
|
);
|
|
|
|
@DeleteMapping("/api/v1/domains/{domain}/permissions/{permission}")
|
|
void deletePermission(@PathVariable("domain") String domain, @PathVariable("permission") String permission);
|
|
|
|
// Role Management
|
|
@PostMapping("/api/v1/domains/{domain}/roles")
|
|
Role createRole(@PathVariable("domain") String domain, @RequestBody Role role);
|
|
|
|
@GetMapping("/api/v1/domains/{domain}/roles/{role}")
|
|
Role getRole(@PathVariable("domain") String domain, @PathVariable("role") String role);
|
|
|
|
@PutMapping("/api/v1/domains/{domain}/roles/{role}")
|
|
Role updateRole(
|
|
@PathVariable("domain") String domain,
|
|
@PathVariable("role") String role,
|
|
@RequestBody Role roleRequest
|
|
);
|
|
|
|
@DeleteMapping("/api/v1/domains/{domain}/roles/{role}")
|
|
void deleteRole(@PathVariable("domain") String domain, @PathVariable("role") String role);
|
|
|
|
// Integration
|
|
@PostMapping("/api/v1/integration/perform")
|
|
void performIntegration(List<Integration<?>> integrations);
|
|
}
|