pub struct SchemaServiceClient<T> { /* private fields */ }Expand description
SchemaService implements operations on a Permissions System’s Schema.
Implementations§
Source§impl<T> SchemaServiceClient<T>where
T: GrpcService<Body>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
impl<T> SchemaServiceClient<T>where
T: GrpcService<Body>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
pub fn new(inner: T) -> Self
pub fn with_origin(inner: T, origin: Uri) -> Self
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> SchemaServiceClient<InterceptedService<T, F>>where
F: Interceptor,
T::ResponseBody: Default,
T: Service<Request<Body>, Response = Response<<T as GrpcService<Body>>::ResponseBody>>,
<T as Service<Request<Body>>>::Error: Into<StdError> + Send + Sync,
Sourcepub fn send_compressed(self, encoding: CompressionEncoding) -> Self
pub fn send_compressed(self, encoding: CompressionEncoding) -> Self
Compress requests with the given encoding.
This requires the server to support it otherwise it might respond with an error.
Sourcepub fn accept_compressed(self, encoding: CompressionEncoding) -> Self
pub fn accept_compressed(self, encoding: CompressionEncoding) -> Self
Enable decompressing responses.
Sourcepub fn max_decoding_message_size(self, limit: usize) -> Self
pub fn max_decoding_message_size(self, limit: usize) -> Self
Limits the maximum size of a decoded message.
Default: 4MB
Sourcepub fn max_encoding_message_size(self, limit: usize) -> Self
pub fn max_encoding_message_size(self, limit: usize) -> Self
Limits the maximum size of an encoded message.
Default: usize::MAX
Sourcepub async fn read_schema(
&mut self,
request: impl IntoRequest<ReadSchemaRequest>,
) -> Result<Response<ReadSchemaResponse>, Status>
pub async fn read_schema( &mut self, request: impl IntoRequest<ReadSchemaRequest>, ) -> Result<Response<ReadSchemaResponse>, Status>
Read returns the current Object Definitions for a Permissions System.
Errors include:
- INVALID_ARGUMENT: a provided value has failed to semantically validate
- NOT_FOUND: no schema has been defined
Sourcepub async fn write_schema(
&mut self,
request: impl IntoRequest<WriteSchemaRequest>,
) -> Result<Response<WriteSchemaResponse>, Status>
pub async fn write_schema( &mut self, request: impl IntoRequest<WriteSchemaRequest>, ) -> Result<Response<WriteSchemaResponse>, Status>
Write overwrites the current Object Definitions for a Permissions System.
Sourcepub async fn reflect_schema(
&mut self,
request: impl IntoRequest<ReflectSchemaRequest>,
) -> Result<Response<ReflectSchemaResponse>, Status>
pub async fn reflect_schema( &mut self, request: impl IntoRequest<ReflectSchemaRequest>, ) -> Result<Response<ReflectSchemaResponse>, Status>
ReflectSchema reflects the current schema stored in SpiceDB, returning a structural form of the schema for use by client tooling.
Sourcepub async fn computable_permissions(
&mut self,
request: impl IntoRequest<ComputablePermissionsRequest>,
) -> Result<Response<ComputablePermissionsResponse>, Status>
pub async fn computable_permissions( &mut self, request: impl IntoRequest<ComputablePermissionsRequest>, ) -> Result<Response<ComputablePermissionsResponse>, Status>
ComputablePermissions returns the set of permissions that compute based off a relation
in the current schema. For example, if the schema has a relation viewer and a permission
view defined as permission view = viewer + editor, then the
computable permissions for the relation viewer will include view.
Sourcepub async fn dependent_relations(
&mut self,
request: impl IntoRequest<DependentRelationsRequest>,
) -> Result<Response<DependentRelationsResponse>, Status>
pub async fn dependent_relations( &mut self, request: impl IntoRequest<DependentRelationsRequest>, ) -> Result<Response<DependentRelationsResponse>, Status>
DependentRelations returns the set of relations and permissions that used to compute a permission, recursively, in the current schema. It is the inverse of the ComputablePermissions API.
Sourcepub async fn diff_schema(
&mut self,
request: impl IntoRequest<DiffSchemaRequest>,
) -> Result<Response<DiffSchemaResponse>, Status>
pub async fn diff_schema( &mut self, request: impl IntoRequest<DiffSchemaRequest>, ) -> Result<Response<DiffSchemaResponse>, Status>
DiffSchema returns the difference between the specified schema and the current schema stored in SpiceDB.
Trait Implementations§
Source§impl<T: Clone> Clone for SchemaServiceClient<T>
impl<T: Clone> Clone for SchemaServiceClient<T>
Source§fn clone(&self) -> SchemaServiceClient<T>
fn clone(&self) -> SchemaServiceClient<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<T> !Freeze for SchemaServiceClient<T>
impl<T> RefUnwindSafe for SchemaServiceClient<T>where
T: RefUnwindSafe,
impl<T> Send for SchemaServiceClient<T>where
T: Send,
impl<T> Sync for SchemaServiceClient<T>where
T: Sync,
impl<T> Unpin for SchemaServiceClient<T>where
T: Unpin,
impl<T> UnwindSafe for SchemaServiceClient<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request