Files
permission-manager-sdk-java/src/main/java/de/mummeit/pmg/api/PermissionManagerClient.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);
}