diff --git a/src/Sdk.UnitTests/Cerbos/Sdk/UnitTests/CerbosClientTest.cs b/src/Sdk.UnitTests/Cerbos/Sdk/UnitTests/CerbosClientTest.cs
index 8ae8686..bbf1f10 100644
--- a/src/Sdk.UnitTests/Cerbos/Sdk/UnitTests/CerbosClientTest.cs
+++ b/src/Sdk.UnitTests/Cerbos/Sdk/UnitTests/CerbosClientTest.cs
@@ -25,8 +25,8 @@ public class CerbosClientTest
private IContainer? _container;
- private CerbosClient? _client;
- private CerbosClient? _clientPlayground;
+ private ICerbosClient? _client;
+ private ICerbosClient? _clientPlayground;
private readonly string _jwt =
"eyJhbGciOiJFUzM4NCIsImtpZCI6IjE5TGZaYXRFZGc4M1lOYzVyMjNndU1KcXJuND0iLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiY2VyYm9zLWp3dC10ZXN0cyJdLCJjdXN0b21BcnJheSI6WyJBIiwiQiIsIkMiXSwiY3VzdG9tSW50Ijo0MiwiY3VzdG9tTWFwIjp7IkEiOiJBQSIsIkIiOiJCQiIsIkMiOiJDQyJ9LCJjdXN0b21TdHJpbmciOiJmb29iYXIiLCJleHAiOjE5NTAyNzc5MjYsImlzcyI6ImNlcmJvcy10ZXN0LXN1aXRlIn0._nCHIsuFI3wczeuUv_xjSwaVnIQUdYA9sGf_jVsrsDWloLs3iPWDaA1bXpuIUJVsi8-G6qqdrPI0cOBxEocg1NCm8fyD9T_3hsZV0fYWon_Je6Kl93a3JIW3S6kbvjsL";
diff --git a/src/Sdk/Cerbos/Sdk/Builder/CerbosClientBuilder.cs b/src/Sdk/Cerbos/Sdk/Builder/CerbosClientBuilder.cs
index 43f2d1a..104dc5d 100644
--- a/src/Sdk/Cerbos/Sdk/Builder/CerbosClientBuilder.cs
+++ b/src/Sdk/Cerbos/Sdk/Builder/CerbosClientBuilder.cs
@@ -69,7 +69,7 @@ public CerbosClientBuilder WithGrpcChannelOptions(GrpcChannelOptions grpcChannel
return this;
}
- public CerbosClient Build()
+ public ICerbosClient Build()
{
if (string.IsNullOrEmpty(Target))
{
diff --git a/src/Sdk/Cerbos/Sdk/CerbosClient.cs b/src/Sdk/Cerbos/Sdk/CerbosClient.cs
index de8ee09..fa7eabb 100644
--- a/src/Sdk/Cerbos/Sdk/CerbosClient.cs
+++ b/src/Sdk/Cerbos/Sdk/CerbosClient.cs
@@ -11,7 +11,7 @@ namespace Cerbos.Sdk
///
/// CerbosClient provides a client implementation that communicates with the PDP.
///
- public sealed class CerbosClient
+ public sealed class CerbosClient: ICerbosClient
{
private Api.V1.Svc.CerbosService.CerbosServiceClient CerbosServiceClient { get; }
private readonly Metadata _metadata;
diff --git a/src/Sdk/Cerbos/Sdk/ICerbosClient.cs b/src/Sdk/Cerbos/Sdk/ICerbosClient.cs
new file mode 100644
index 0000000..4c07c7e
--- /dev/null
+++ b/src/Sdk/Cerbos/Sdk/ICerbosClient.cs
@@ -0,0 +1,14 @@
+using System.Threading.Tasks;
+using Cerbos.Sdk.Response;
+using Grpc.Core;
+
+namespace Cerbos.Sdk
+{
+ public interface ICerbosClient
+ {
+ CheckResourcesResponse CheckResources(Builder.CheckResourcesRequest request, Metadata headers = null);
+ Task CheckResourcesAsync(Builder.CheckResourcesRequest request, Metadata headers = null);
+ PlanResourcesResponse PlanResources(Builder.PlanResourcesRequest request, Metadata headers = null);
+ Task PlanResourcesAsync(Builder.PlanResourcesRequest request, Metadata headers = null);
+ }
+}
\ No newline at end of file