You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

authzed

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

authzed - pypi Package Compare versions

Comparing version
1.21.2
to
1.22.0
+47
-0
authzed/api/materialize/v0/watchpermissionsets_pb2_grpc.py

@@ -27,2 +27,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!

_registered_method=True)
self.DownloadPermissionSets = channel.unary_unary(
'/authzed.api.materialize.v0.WatchPermissionSetsService/DownloadPermissionSets',
request_serializer=authzed_dot_api_dot_materialize_dot_v0_dot_watchpermissionsets__pb2.DownloadPermissionSetsRequest.SerializeToString,
response_deserializer=authzed_dot_api_dot_materialize_dot_v0_dot_watchpermissionsets__pb2.DownloadPermissionSetsResponse.FromString,
_registered_method=True)

@@ -88,3 +93,13 @@

def DownloadPermissionSets(self, request, context):
"""DownloadPermissionSets returns URLs to download permission sets data as Avro files.
This provides an alternative to LookupPermissionSets for customers who need to download
large datasets efficiently. The returned URLs point to compressed Avro files containing
the permission sets data in a normalized format.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def add_WatchPermissionSetsServiceServicer_to_server(servicer, server):

@@ -102,2 +117,7 @@ rpc_method_handlers = {

),
'DownloadPermissionSets': grpc.unary_unary_rpc_method_handler(
servicer.DownloadPermissionSets,
request_deserializer=authzed_dot_api_dot_materialize_dot_v0_dot_watchpermissionsets__pb2.DownloadPermissionSetsRequest.FromString,
response_serializer=authzed_dot_api_dot_materialize_dot_v0_dot_watchpermissionsets__pb2.DownloadPermissionSetsResponse.SerializeToString,
),
}

@@ -167,1 +187,28 @@ generic_handler = grpc.method_handlers_generic_handler(

_registered_method=True)
@staticmethod
def DownloadPermissionSets(request,
target,
options=(),
channel_credentials=None,
call_credentials=None,
insecure=False,
compression=None,
wait_for_ready=None,
timeout=None,
metadata=None):
return grpc.experimental.unary_unary(
request,
target,
'/authzed.api.materialize.v0.WatchPermissionSetsService/DownloadPermissionSets',
authzed_dot_api_dot_materialize_dot_v0_dot_watchpermissionsets__pb2.DownloadPermissionSetsRequest.SerializeToString,
authzed_dot_api_dot_materialize_dot_v0_dot_watchpermissionsets__pb2.DownloadPermissionSetsResponse.FromString,
options,
channel_credentials,
insecure,
call_credentials,
compression,
wait_for_ready,
timeout,
metadata,
_registered_method=True)
+9
-3

@@ -28,3 +28,3 @@ # -*- coding: utf-8 -*-

DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n4authzed/api/materialize/v0/watchpermissionsets.proto\x12\x1a\x61uthzed.api.materialize.v0\x1a\x19\x61uthzed/api/v1/core.proto\"n\n\x1aWatchPermissionSetsRequest\x12P\n\x17optional_starting_after\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x15optionalStartingAfter\"\xad\x03\n\x1bWatchPermissionSetsResponse\x12I\n\x06\x63hange\x18\x01 \x01(\x0b\x32/.authzed.api.materialize.v0.PermissionSetChangeH\x00R\x06\x63hange\x12I\n\x12\x63ompleted_revision\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenH\x00R\x11\x63ompletedRevision\x12\x81\x01\n\x1flookup_permission_sets_required\x18\x03 \x01(\x0b\x32\x38.authzed.api.materialize.v0.LookupPermissionSetsRequiredH\x00R\x1clookupPermissionSetsRequired\x12h\n\x16\x62reaking_schema_change\x18\x04 \x01(\x0b\x32\x30.authzed.api.materialize.v0.BreakingSchemaChangeH\x00R\x14\x62reakingSchemaChangeB\n\n\x08response\"\xdd\x01\n\x06\x43ursor\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12.\n\x05token\x18\x04 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x05token\x12%\n\x0estarting_index\x18\x05 \x01(\rR\rstartingIndex\x12+\n\x11\x63ompleted_members\x18\x06 \x01(\x08R\x10\x63ompletedMembers\x12!\n\x0cstarting_key\x18\x07 \x01(\tR\x0bstartingKey\x12\x16\n\x06\x63ursor\x18\x08 \x01(\tR\x06\x63ursor\"\xe8\x01\n\x1bLookupPermissionSetsRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12J\n\x14optional_at_revision\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x12optionalAtRevision\x12g\n\x1eoptional_starting_after_cursor\x18\x04 \x01(\x0b\x32\".authzed.api.materialize.v0.CursorR\x1boptionalStartingAfterCursor\"\xa3\x01\n\x1cLookupPermissionSetsResponse\x12G\n\x06\x63hange\x18\x01 \x01(\x0b\x32/.authzed.api.materialize.v0.PermissionSetChangeR\x06\x63hange\x12:\n\x06\x63ursor\x18\x02 \x01(\x0b\x32\".authzed.api.materialize.v0.CursorR\x06\x63ursor\"\xfc\x03\n\x13PermissionSetChange\x12\x39\n\x0b\x61t_revision\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\natRevision\x12Z\n\toperation\x18\x02 \x01(\x0e\x32<.authzed.api.materialize.v0.PermissionSetChange.SetOperationR\toperation\x12G\n\nparent_set\x18\x03 \x01(\x0b\x32(.authzed.api.materialize.v0.SetReferenceR\tparentSet\x12G\n\tchild_set\x18\x04 \x01(\x0b\x32(.authzed.api.materialize.v0.SetReferenceH\x00R\x08\x63hildSet\x12P\n\x0c\x63hild_member\x18\x05 \x01(\x0b\x32+.authzed.api.materialize.v0.MemberReferenceH\x00R\x0b\x63hildMember\"a\n\x0cSetOperation\x12\x1d\n\x19SET_OPERATION_UNSPECIFIED\x10\x00\x12\x17\n\x13SET_OPERATION_ADDED\x10\x01\x12\x19\n\x15SET_OPERATION_REMOVED\x10\x02\x42\x07\n\x05\x63hild\"\x82\x01\n\x0cSetReference\x12\x1f\n\x0bobject_type\x18\x01 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x02 \x01(\tR\x08objectId\x12\x34\n\x16permission_or_relation\x18\x03 \x01(\tR\x14permissionOrRelation\"\x96\x01\n\x0fMemberReference\x12\x1f\n\x0bobject_type\x18\x01 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x02 \x01(\tR\x08objectId\x12\x45\n\x1foptional_permission_or_relation\x18\x03 \x01(\tR\x1coptionalPermissionOrRelation\"f\n\x1cLookupPermissionSetsRequired\x12\x46\n\x12required_lookup_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x10requiredLookupAt\"M\n\x14\x42reakingSchemaChange\x12\x35\n\tchange_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x08\x63hangeAt2\xb9\x02\n\x1aWatchPermissionSetsService\x12\x8a\x01\n\x13WatchPermissionSets\x12\x36.authzed.api.materialize.v0.WatchPermissionSetsRequest\x1a\x37.authzed.api.materialize.v0.WatchPermissionSetsResponse\"\x00\x30\x01\x12\x8d\x01\n\x14LookupPermissionSets\x12\x37.authzed.api.materialize.v0.LookupPermissionSetsRequest\x1a\x38.authzed.api.materialize.v0.LookupPermissionSetsResponse\"\x00\x30\x01\x42\x62\n\x1e\x63om.authzed.api.materialize.v0P\x01Z>github.com/authzed/authzed-go/proto/authzed/api/materialize/v0b\x06proto3')
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n4authzed/api/materialize/v0/watchpermissionsets.proto\x12\x1a\x61uthzed.api.materialize.v0\x1a\x19\x61uthzed/api/v1/core.proto\"n\n\x1aWatchPermissionSetsRequest\x12P\n\x17optional_starting_after\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x15optionalStartingAfter\"\xad\x03\n\x1bWatchPermissionSetsResponse\x12I\n\x06\x63hange\x18\x01 \x01(\x0b\x32/.authzed.api.materialize.v0.PermissionSetChangeH\x00R\x06\x63hange\x12I\n\x12\x63ompleted_revision\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenH\x00R\x11\x63ompletedRevision\x12\x81\x01\n\x1flookup_permission_sets_required\x18\x03 \x01(\x0b\x32\x38.authzed.api.materialize.v0.LookupPermissionSetsRequiredH\x00R\x1clookupPermissionSetsRequired\x12h\n\x16\x62reaking_schema_change\x18\x04 \x01(\x0b\x32\x30.authzed.api.materialize.v0.BreakingSchemaChangeH\x00R\x14\x62reakingSchemaChangeB\n\n\x08response\"\xdd\x01\n\x06\x43ursor\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12.\n\x05token\x18\x04 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x05token\x12%\n\x0estarting_index\x18\x05 \x01(\rR\rstartingIndex\x12+\n\x11\x63ompleted_members\x18\x06 \x01(\x08R\x10\x63ompletedMembers\x12!\n\x0cstarting_key\x18\x07 \x01(\tR\x0bstartingKey\x12\x16\n\x06\x63ursor\x18\x08 \x01(\tR\x06\x63ursor\"\xe8\x01\n\x1bLookupPermissionSetsRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12J\n\x14optional_at_revision\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x12optionalAtRevision\x12g\n\x1eoptional_starting_after_cursor\x18\x04 \x01(\x0b\x32\".authzed.api.materialize.v0.CursorR\x1boptionalStartingAfterCursor\"\xa3\x01\n\x1cLookupPermissionSetsResponse\x12G\n\x06\x63hange\x18\x01 \x01(\x0b\x32/.authzed.api.materialize.v0.PermissionSetChangeR\x06\x63hange\x12:\n\x06\x63ursor\x18\x02 \x01(\x0b\x32\".authzed.api.materialize.v0.CursorR\x06\x63ursor\"\xfc\x03\n\x13PermissionSetChange\x12\x39\n\x0b\x61t_revision\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\natRevision\x12Z\n\toperation\x18\x02 \x01(\x0e\x32<.authzed.api.materialize.v0.PermissionSetChange.SetOperationR\toperation\x12G\n\nparent_set\x18\x03 \x01(\x0b\x32(.authzed.api.materialize.v0.SetReferenceR\tparentSet\x12G\n\tchild_set\x18\x04 \x01(\x0b\x32(.authzed.api.materialize.v0.SetReferenceH\x00R\x08\x63hildSet\x12P\n\x0c\x63hild_member\x18\x05 \x01(\x0b\x32+.authzed.api.materialize.v0.MemberReferenceH\x00R\x0b\x63hildMember\"a\n\x0cSetOperation\x12\x1d\n\x19SET_OPERATION_UNSPECIFIED\x10\x00\x12\x17\n\x13SET_OPERATION_ADDED\x10\x01\x12\x19\n\x15SET_OPERATION_REMOVED\x10\x02\x42\x07\n\x05\x63hild\"\x82\x01\n\x0cSetReference\x12\x1f\n\x0bobject_type\x18\x01 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x02 \x01(\tR\x08objectId\x12\x34\n\x16permission_or_relation\x18\x03 \x01(\tR\x14permissionOrRelation\"\x96\x01\n\x0fMemberReference\x12\x1f\n\x0bobject_type\x18\x01 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x02 \x01(\tR\x08objectId\x12\x45\n\x1foptional_permission_or_relation\x18\x03 \x01(\tR\x1coptionalPermissionOrRelation\"f\n\x1cLookupPermissionSetsRequired\x12\x46\n\x12required_lookup_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x10requiredLookupAt\"M\n\x14\x42reakingSchemaChange\x12\x35\n\tchange_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x08\x63hangeAt\"k\n\x1d\x44ownloadPermissionSetsRequest\x12J\n\x14optional_at_revision\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x12optionalAtRevision\",\n\x04\x46ile\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03url\x18\x02 \x01(\tR\x03url\"X\n\x1e\x44ownloadPermissionSetsResponse\x12\x36\n\x05\x66iles\x18\x01 \x03(\x0b\x32 .authzed.api.materialize.v0.FileR\x05\x66iles2\xcd\x03\n\x1aWatchPermissionSetsService\x12\x8a\x01\n\x13WatchPermissionSets\x12\x36.authzed.api.materialize.v0.WatchPermissionSetsRequest\x1a\x37.authzed.api.materialize.v0.WatchPermissionSetsResponse\"\x00\x30\x01\x12\x8d\x01\n\x14LookupPermissionSets\x12\x37.authzed.api.materialize.v0.LookupPermissionSetsRequest\x1a\x38.authzed.api.materialize.v0.LookupPermissionSetsResponse\"\x00\x30\x01\x12\x91\x01\n\x16\x44ownloadPermissionSets\x12\x39.authzed.api.materialize.v0.DownloadPermissionSetsRequest\x1a:.authzed.api.materialize.v0.DownloadPermissionSetsResponse\"\x00\x42\x62\n\x1e\x63om.authzed.api.materialize.v0P\x01Z>github.com/authzed/authzed-go/proto/authzed/api/materialize/v0b\x06proto3')

@@ -59,4 +59,10 @@ _globals = globals()

_globals['_BREAKINGSCHEMACHANGE']._serialized_end=2258
_globals['_WATCHPERMISSIONSETSSERVICE']._serialized_start=2261
_globals['_WATCHPERMISSIONSETSSERVICE']._serialized_end=2574
_globals['_DOWNLOADPERMISSIONSETSREQUEST']._serialized_start=2260
_globals['_DOWNLOADPERMISSIONSETSREQUEST']._serialized_end=2367
_globals['_FILE']._serialized_start=2369
_globals['_FILE']._serialized_end=2413
_globals['_DOWNLOADPERMISSIONSETSRESPONSE']._serialized_start=2415
_globals['_DOWNLOADPERMISSIONSETSRESPONSE']._serialized_end=2503
_globals['_WATCHPERMISSIONSETSSERVICE']._serialized_start=2506
_globals['_WATCHPERMISSIONSETSSERVICE']._serialized_end=2967
# @@protoc_insertion_point(module_scope)

@@ -8,3 +8,5 @@ """

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper

@@ -356,1 +358,60 @@ import google.protobuf.message

global___BreakingSchemaChange = BreakingSchemaChange
@typing.final
class DownloadPermissionSetsRequest(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
OPTIONAL_AT_REVISION_FIELD_NUMBER: builtins.int
@property
def optional_at_revision(self) -> authzed.api.v1.core_pb2.ZedToken:
"""optional_at_revision is a specific revision to download; for now this will
just validate that it matches the backing store if provided.
"""
def __init__(
self,
*,
optional_at_revision: authzed.api.v1.core_pb2.ZedToken | None = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["optional_at_revision", b"optional_at_revision"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["optional_at_revision", b"optional_at_revision"]) -> None: ...
global___DownloadPermissionSetsRequest = DownloadPermissionSetsRequest
@typing.final
class File(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
NAME_FIELD_NUMBER: builtins.int
URL_FIELD_NUMBER: builtins.int
name: builtins.str
"""name is the filename of the downloadable file"""
url: builtins.str
"""url is the download URL for the file (typically a signed S3 URL)"""
def __init__(
self,
*,
name: builtins.str = ...,
url: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["name", b"name", "url", b"url"]) -> None: ...
global___File = File
@typing.final
class DownloadPermissionSetsResponse(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
FILES_FIELD_NUMBER: builtins.int
@property
def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___File]:
"""files contains the list of downloadable files with their URLs"""
def __init__(
self,
*,
files: collections.abc.Iterable[global___File] | None = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["files", b"files"]) -> None: ...
global___DownloadPermissionSetsResponse = DownloadPermissionSetsResponse

@@ -77,11 +77,3 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!

def BulkImportRelationships(self, request_iterator, context):
"""BulkImportRelationships is a faster path to writing a large number of
relationships at once. It is both batched and streaming. For maximum
performance, the caller should attempt to write relationships in as close
to relationship sort order as possible: (resource.object_type,
resource.object_id, relation, subject.object.object_type,
subject.object.object_id, subject.optional_relation)
EXPERIMENTAL
https://github.com/authzed/spicedb/issues/1303
"""DEPRECATED: Promoted to ImportBulkRelationships in the stable API.
"""

@@ -93,5 +85,3 @@ context.set_code(grpc.StatusCode.UNIMPLEMENTED)

def BulkExportRelationships(self, request, context):
"""BulkExportRelationships is the fastest path available to exporting
relationships from the server. It is resumable, and will return results
in an order determined by the server.
"""DEPRECATED: Promoted to ExportBulkRelationships in the stable API.
"""

@@ -103,4 +93,3 @@ context.set_code(grpc.StatusCode.UNIMPLEMENTED)

def BulkCheckPermission(self, request, context):
"""NOTE: BulkCheckPermission has been promoted to the stable API as "CheckBulkPermission" and the
API will be removed from experimental in a future release.
"""DEPRECATED: Promoted to CheckBulkPermission in the stable API.
"""

@@ -107,0 +96,0 @@ context.set_code(grpc.StatusCode.UNIMPLEMENTED)

@@ -31,6 +31,7 @@ # -*- coding: utf-8 -*-

from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
from validate import validate_pb2 as validate_dot_validate__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)authzed/api/v1/experimental_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\'authzed/api/v1/permission_service.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x17google/rpc/status.proto\x1a\x17validate/validate.proto\"\xff\x01\n.ExperimentalRegisterRelationshipCounterRequest\x12h\n\x04name\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x04name\x12\x63\n\x13relationship_filter\x18\x02 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x12relationshipFilter\"1\n/ExperimentalRegisterRelationshipCounterResponse\"\x91\x01\n%ExperimentalCountRelationshipsRequest\x12h\n\x04name\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x04name\"\xca\x01\n&ExperimentalCountRelationshipsResponse\x12<\n\x19\x63ounter_still_calculating\x18\x01 \x01(\x08H\x00R\x17\x63ounterStillCalculating\x12P\n\x12read_counter_value\x18\x02 \x01(\x0b\x32 .authzed.api.v1.ReadCounterValueH\x00R\x10readCounterValueB\x10\n\x0e\x63ounter_result\"\x84\x01\n\x10ReadCounterValue\x12-\n\x12relationship_count\x18\x01 \x01(\x04R\x11relationshipCount\x12\x41\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\"\x9c\x01\n0ExperimentalUnregisterRelationshipCounterRequest\x12h\n\x04name\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x04name\"3\n1ExperimentalUnregisterRelationshipCounterResponse\"\xbd\x01\n\x1a\x42ulkCheckPermissionRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12`\n\x05items\x18\x02 \x03(\x0b\x32..authzed.api.v1.BulkCheckPermissionRequestItemB\x1a\x18\x01\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05items\"\xf2\x02\n\x1e\x42ulkCheckPermissionRequestItem\x12K\n\x08resource\x18\x01 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x02 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12J\n\x07subject\x18\x03 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\"\xbf\x01\n\x1b\x42ulkCheckPermissionResponse\x12G\n\nchecked_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\tcheckedAt\x12W\n\x05pairs\x18\x02 \x03(\x0b\x32\'.authzed.api.v1.BulkCheckPermissionPairB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05pairs\"\xe2\x01\n\x17\x42ulkCheckPermissionPair\x12H\n\x07request\x18\x01 \x01(\x0b\x32..authzed.api.v1.BulkCheckPermissionRequestItemR\x07request\x12\x45\n\x04item\x18\x02 \x01(\x0b\x32/.authzed.api.v1.BulkCheckPermissionResponseItemH\x00R\x04item\x12*\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rrorB\n\n\x08response\"\xfa\x01\n\x1f\x42ulkCheckPermissionResponseItem\x12t\n\x0epermissionship\x18\x01 \x01(\x0e\x32\x36.authzed.api.v1.CheckPermissionResponse.PermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x02 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\"~\n\x1e\x42ulkImportRelationshipsRequest\x12\\\n\rrelationships\x18\x01 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\rrelationships\"@\n\x1f\x42ulkImportRelationshipsResponse\x12\x1d\n\nnum_loaded\x18\x01 \x01(\x04R\tnumLoaded\"\xbd\x02\n\x1e\x42ulkExportRelationshipsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\x35\n\x0eoptional_limit\x18\x02 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x03 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\x12\x64\n\x1coptional_relationship_filter\x18\x04 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterR\x1aoptionalRelationshipFilter\"\xad\x01\n\x1f\x42ulkExportRelationshipsResponse\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x01 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\x12\x42\n\rrelationships\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipR\rrelationships\"\xad\x01\n ExperimentalReflectSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12J\n\x10optional_filters\x18\x02 \x03(\x0b\x32\x1f.authzed.api.v1.ExpSchemaFilterR\x0foptionalFilters\"\xcc\x01\n!ExperimentalReflectSchemaResponse\x12?\n\x0b\x64\x65\x66initions\x18\x01 \x03(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionR\x0b\x64\x65\x66initions\x12\x33\n\x07\x63\x61veats\x18\x02 \x03(\x0b\x32\x19.authzed.api.v1.ExpCaveatR\x07\x63\x61veats\x12\x31\n\x07read_at\x18\x03 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xa1\x02\n\x0f\x45xpSchemaFilter\x12\x45\n\x1foptional_definition_name_filter\x18\x01 \x01(\tR\x1coptionalDefinitionNameFilter\x12=\n\x1boptional_caveat_name_filter\x18\x02 \x01(\tR\x18optionalCaveatNameFilter\x12\x41\n\x1doptional_relation_name_filter\x18\x03 \x01(\tR\x1aoptionalRelationNameFilter\x12\x45\n\x1foptional_permission_name_filter\x18\x04 \x01(\tR\x1coptionalPermissionNameFilter\"\xb9\x01\n\rExpDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x39\n\trelations\x18\x03 \x03(\x0b\x32\x1b.authzed.api.v1.ExpRelationR\trelations\x12?\n\x0bpermissions\x18\x04 \x03(\x0b\x32\x1d.authzed.api.v1.ExpPermissionR\x0bpermissions\"\x9d\x01\n\tExpCaveat\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x42\n\nparameters\x18\x03 \x03(\x0b\x32\".authzed.api.v1.ExpCaveatParameterR\nparameters\x12\x1e\n\nexpression\x18\x04 \x01(\tR\nexpression\"j\n\x12\x45xpCaveatParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12,\n\x12parent_caveat_name\x18\x03 \x01(\tR\x10parentCaveatName\"\xb8\x01\n\x0b\x45xpRelation\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\x12\x45\n\rsubject_types\x18\x04 \x03(\x0b\x32 .authzed.api.v1.ExpTypeReferenceR\x0csubjectTypes\"\xa1\x02\n\x10\x45xpTypeReference\x12\x36\n\x17subject_definition_name\x18\x01 \x01(\tR\x15subjectDefinitionName\x12\x30\n\x14optional_caveat_name\x18\x02 \x01(\tR\x12optionalCaveatName\x12\x30\n\x13is_terminal_subject\x18\x03 \x01(\x08H\x00R\x11isTerminalSubject\x12\x36\n\x16optional_relation_name\x18\x04 \x01(\tH\x00R\x14optionalRelationName\x12.\n\x12is_public_wildcard\x18\x05 \x01(\x08H\x00R\x10isPublicWildcardB\t\n\x07typeref\"s\n\rExpPermission\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\"\xfe\x01\n(ExperimentalComputablePermissionsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x03 \x01(\tR\x0crelationName\x12\x45\n\x1foptional_definition_name_filter\x18\x04 \x01(\tR\x1coptionalDefinitionNameFilter\"\x89\x01\n\x14\x45xpRelationReference\x12\'\n\x0f\x64\x65\x66inition_name\x18\x01 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x02 \x01(\tR\x0crelationName\x12#\n\ris_permission\x18\x03 \x01(\x08R\x0cisPermission\"\xa6\x01\n)ExperimentalComputablePermissionsResponse\x12\x46\n\x0bpermissions\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ExpRelationReferenceR\x0bpermissions\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xb8\x01\n%ExperimentalDependentRelationsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12\'\n\x0fpermission_name\x18\x03 \x01(\tR\x0epermissionName\"\x9f\x01\n&ExperimentalDependentRelationsResponse\x12\x42\n\trelations\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ExpRelationReferenceR\trelations\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\x8b\x01\n\x1d\x45xperimentalDiffSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12+\n\x11\x63omparison_schema\x18\x02 \x01(\tR\x10\x63omparisonSchema\"\x88\x01\n\x1e\x45xperimentalDiffSchemaResponse\x12\x33\n\x05\x64iffs\x18\x01 \x03(\x0b\x32\x1d.authzed.api.v1.ExpSchemaDiffR\x05\x64iffs\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xab\x01\n\x1c\x45xpRelationSubjectTypeChange\x12\x37\n\x08relation\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationR\x08relation\x12R\n\x14\x63hanged_subject_type\x18\x02 \x01(\x0b\x32 .authzed.api.v1.ExpTypeReferenceR\x12\x63hangedSubjectType\"\x85\x01\n\x1c\x45xpCaveatParameterTypeChange\x12@\n\tparameter\x18\x01 \x01(\x0b\x32\".authzed.api.v1.ExpCaveatParameterR\tparameter\x12#\n\rprevious_type\x18\x02 \x01(\tR\x0cpreviousType\"\xa0\r\n\rExpSchemaDiff\x12J\n\x10\x64\x65\x66inition_added\x18\x01 \x01(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionH\x00R\x0f\x64\x65\x66initionAdded\x12N\n\x12\x64\x65\x66inition_removed\x18\x02 \x01(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionH\x00R\x11\x64\x65\x66initionRemoved\x12\x64\n\x1e\x64\x65\x66inition_doc_comment_changed\x18\x03 \x01(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionH\x00R\x1b\x64\x65\x66initionDocCommentChanged\x12\x44\n\x0erelation_added\x18\x04 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationH\x00R\rrelationAdded\x12H\n\x10relation_removed\x18\x05 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationH\x00R\x0frelationRemoved\x12^\n\x1crelation_doc_comment_changed\x18\x06 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationH\x00R\x19relationDocCommentChanged\x12m\n\x1brelation_subject_type_added\x18\x07 \x01(\x0b\x32,.authzed.api.v1.ExpRelationSubjectTypeChangeH\x00R\x18relationSubjectTypeAdded\x12q\n\x1drelation_subject_type_removed\x18\x08 \x01(\x0b\x32,.authzed.api.v1.ExpRelationSubjectTypeChangeH\x00R\x1arelationSubjectTypeRemoved\x12J\n\x10permission_added\x18\t \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x0fpermissionAdded\x12N\n\x12permission_removed\x18\n \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x11permissionRemoved\x12\x64\n\x1epermission_doc_comment_changed\x18\x0b \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x1bpermissionDocCommentChanged\x12W\n\x17permission_expr_changed\x18\x0c \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x15permissionExprChanged\x12>\n\x0c\x63\x61veat_added\x18\r \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\x0b\x63\x61veatAdded\x12\x42\n\x0e\x63\x61veat_removed\x18\x0e \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\rcaveatRemoved\x12X\n\x1a\x63\x61veat_doc_comment_changed\x18\x0f \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\x17\x63\x61veatDocCommentChanged\x12K\n\x13\x63\x61veat_expr_changed\x18\x10 \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\x11\x63\x61veatExprChanged\x12Z\n\x16\x63\x61veat_parameter_added\x18\x11 \x01(\x0b\x32\".authzed.api.v1.ExpCaveatParameterH\x00R\x14\x63\x61veatParameterAdded\x12^\n\x18\x63\x61veat_parameter_removed\x18\x12 \x01(\x0b\x32\".authzed.api.v1.ExpCaveatParameterH\x00R\x16\x63\x61veatParameterRemoved\x12q\n\x1d\x63\x61veat_parameter_type_changed\x18\x13 \x01(\x0b\x32,.authzed.api.v1.ExpCaveatParameterTypeChangeH\x00R\x1a\x63\x61veatParameterTypeChangedB\x06\n\x04\x64iff2\xb6\x0f\n\x13\x45xperimentalService\x12\xb2\x01\n\x17\x42ulkImportRelationships\x12..authzed.api.v1.BulkImportRelationshipsRequest\x1a/.authzed.api.v1.BulkImportRelationshipsResponse\"4\x82\xd3\xe4\x93\x02.\")/v1/experimental/relationships/bulkimport:\x01*(\x01\x12\xb2\x01\n\x17\x42ulkExportRelationships\x12..authzed.api.v1.BulkExportRelationshipsRequest\x1a/.authzed.api.v1.BulkExportRelationshipsResponse\"4\x82\xd3\xe4\x93\x02.\")/v1/experimental/relationships/bulkexport:\x01*0\x01\x12\xae\x01\n\x13\x42ulkCheckPermission\x12*.authzed.api.v1.BulkCheckPermissionRequest\x1a+.authzed.api.v1.BulkCheckPermissionResponse\">\x88\x02\x01\x82\xd3\xe4\x93\x02\x35\"0/v1/experimental/permissions/bulkcheckpermission:\x01*\x12\xae\x01\n\x19\x45xperimentalReflectSchema\x12\x30.authzed.api.v1.ExperimentalReflectSchemaRequest\x1a\x31.authzed.api.v1.ExperimentalReflectSchemaResponse\",\x88\x02\x01\x82\xd3\xe4\x93\x02#\"\x1e/v1/experimental/reflectschema:\x01*\x12\xcf\x01\n!ExperimentalComputablePermissions\x12\x38.authzed.api.v1.ExperimentalComputablePermissionsRequest\x1a\x39.authzed.api.v1.ExperimentalComputablePermissionsResponse\"5\x88\x02\x01\x82\xd3\xe4\x93\x02,\"\'/v1/experimental/permissions/computable:\x01*\x12\xc5\x01\n\x1e\x45xperimentalDependentRelations\x12\x35.authzed.api.v1.ExperimentalDependentRelationsRequest\x1a\x36.authzed.api.v1.ExperimentalDependentRelationsResponse\"4\x88\x02\x01\x82\xd3\xe4\x93\x02+\"&/v1/experimental/permissions/dependent:\x01*\x12\xa2\x01\n\x16\x45xperimentalDiffSchema\x12-.authzed.api.v1.ExperimentalDiffSchemaRequest\x1a..authzed.api.v1.ExperimentalDiffSchemaResponse\")\x88\x02\x01\x82\xd3\xe4\x93\x02 \"\x1b/v1/experimental/diffschema:\x01*\x12\xe3\x01\n\'ExperimentalRegisterRelationshipCounter\x12>.authzed.api.v1.ExperimentalRegisterRelationshipCounterRequest\x1a?.authzed.api.v1.ExperimentalRegisterRelationshipCounterResponse\"7\x82\xd3\xe4\x93\x02\x31\",/v1/experimental/registerrelationshipcounter:\x01*\x12\xbf\x01\n\x1e\x45xperimentalCountRelationships\x12\x35.authzed.api.v1.ExperimentalCountRelationshipsRequest\x1a\x36.authzed.api.v1.ExperimentalCountRelationshipsResponse\".\x82\xd3\xe4\x93\x02(\"#/v1/experimental/countrelationships:\x01*\x12\xeb\x01\n)ExperimentalUnregisterRelationshipCounter\x12@.authzed.api.v1.ExperimentalUnregisterRelationshipCounterRequest\x1a\x41.authzed.api.v1.ExperimentalUnregisterRelationshipCounterResponse\"9\x82\xd3\xe4\x93\x02\x33\"./v1/experimental/unregisterrelationshipcounter:\x01*BJ\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)authzed/api/v1/experimental_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\'authzed/api/v1/permission_service.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x17google/rpc/status.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\xff\x01\n.ExperimentalRegisterRelationshipCounterRequest\x12h\n\x04name\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x04name\x12\x63\n\x13relationship_filter\x18\x02 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x12relationshipFilter\"1\n/ExperimentalRegisterRelationshipCounterResponse\"\x91\x01\n%ExperimentalCountRelationshipsRequest\x12h\n\x04name\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x04name\"\xca\x01\n&ExperimentalCountRelationshipsResponse\x12<\n\x19\x63ounter_still_calculating\x18\x01 \x01(\x08H\x00R\x17\x63ounterStillCalculating\x12P\n\x12read_counter_value\x18\x02 \x01(\x0b\x32 .authzed.api.v1.ReadCounterValueH\x00R\x10readCounterValueB\x10\n\x0e\x63ounter_result\"\x84\x01\n\x10ReadCounterValue\x12-\n\x12relationship_count\x18\x01 \x01(\x04R\x11relationshipCount\x12\x41\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\"\x9c\x01\n0ExperimentalUnregisterRelationshipCounterRequest\x12h\n\x04name\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x04name\"3\n1ExperimentalUnregisterRelationshipCounterResponse\"\xbd\x01\n\x1a\x42ulkCheckPermissionRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12`\n\x05items\x18\x02 \x03(\x0b\x32..authzed.api.v1.BulkCheckPermissionRequestItemB\x1a\x18\x01\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05items\"\xf2\x02\n\x1e\x42ulkCheckPermissionRequestItem\x12K\n\x08resource\x18\x01 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x02 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12J\n\x07subject\x18\x03 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\"\xbf\x01\n\x1b\x42ulkCheckPermissionResponse\x12G\n\nchecked_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\tcheckedAt\x12W\n\x05pairs\x18\x02 \x03(\x0b\x32\'.authzed.api.v1.BulkCheckPermissionPairB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05pairs\"\xe2\x01\n\x17\x42ulkCheckPermissionPair\x12H\n\x07request\x18\x01 \x01(\x0b\x32..authzed.api.v1.BulkCheckPermissionRequestItemR\x07request\x12\x45\n\x04item\x18\x02 \x01(\x0b\x32/.authzed.api.v1.BulkCheckPermissionResponseItemH\x00R\x04item\x12*\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rrorB\n\n\x08response\"\xfa\x01\n\x1f\x42ulkCheckPermissionResponseItem\x12t\n\x0epermissionship\x18\x01 \x01(\x0e\x32\x36.authzed.api.v1.CheckPermissionResponse.PermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x02 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\"~\n\x1e\x42ulkImportRelationshipsRequest\x12\\\n\rrelationships\x18\x01 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\rrelationships\"@\n\x1f\x42ulkImportRelationshipsResponse\x12\x1d\n\nnum_loaded\x18\x01 \x01(\x04R\tnumLoaded\"\xbd\x02\n\x1e\x42ulkExportRelationshipsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\x35\n\x0eoptional_limit\x18\x02 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x03 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\x12\x64\n\x1coptional_relationship_filter\x18\x04 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterR\x1aoptionalRelationshipFilter\"\xad\x01\n\x1f\x42ulkExportRelationshipsResponse\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x01 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\x12\x42\n\rrelationships\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipR\rrelationships\"\xad\x01\n ExperimentalReflectSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12J\n\x10optional_filters\x18\x02 \x03(\x0b\x32\x1f.authzed.api.v1.ExpSchemaFilterR\x0foptionalFilters\"\xcc\x01\n!ExperimentalReflectSchemaResponse\x12?\n\x0b\x64\x65\x66initions\x18\x01 \x03(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionR\x0b\x64\x65\x66initions\x12\x33\n\x07\x63\x61veats\x18\x02 \x03(\x0b\x32\x19.authzed.api.v1.ExpCaveatR\x07\x63\x61veats\x12\x31\n\x07read_at\x18\x03 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xa1\x02\n\x0f\x45xpSchemaFilter\x12\x45\n\x1foptional_definition_name_filter\x18\x01 \x01(\tR\x1coptionalDefinitionNameFilter\x12=\n\x1boptional_caveat_name_filter\x18\x02 \x01(\tR\x18optionalCaveatNameFilter\x12\x41\n\x1doptional_relation_name_filter\x18\x03 \x01(\tR\x1aoptionalRelationNameFilter\x12\x45\n\x1foptional_permission_name_filter\x18\x04 \x01(\tR\x1coptionalPermissionNameFilter\"\xb9\x01\n\rExpDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x39\n\trelations\x18\x03 \x03(\x0b\x32\x1b.authzed.api.v1.ExpRelationR\trelations\x12?\n\x0bpermissions\x18\x04 \x03(\x0b\x32\x1d.authzed.api.v1.ExpPermissionR\x0bpermissions\"\x9d\x01\n\tExpCaveat\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x42\n\nparameters\x18\x03 \x03(\x0b\x32\".authzed.api.v1.ExpCaveatParameterR\nparameters\x12\x1e\n\nexpression\x18\x04 \x01(\tR\nexpression\"j\n\x12\x45xpCaveatParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12,\n\x12parent_caveat_name\x18\x03 \x01(\tR\x10parentCaveatName\"\xb8\x01\n\x0b\x45xpRelation\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\x12\x45\n\rsubject_types\x18\x04 \x03(\x0b\x32 .authzed.api.v1.ExpTypeReferenceR\x0csubjectTypes\"\xa1\x02\n\x10\x45xpTypeReference\x12\x36\n\x17subject_definition_name\x18\x01 \x01(\tR\x15subjectDefinitionName\x12\x30\n\x14optional_caveat_name\x18\x02 \x01(\tR\x12optionalCaveatName\x12\x30\n\x13is_terminal_subject\x18\x03 \x01(\x08H\x00R\x11isTerminalSubject\x12\x36\n\x16optional_relation_name\x18\x04 \x01(\tH\x00R\x14optionalRelationName\x12.\n\x12is_public_wildcard\x18\x05 \x01(\x08H\x00R\x10isPublicWildcardB\t\n\x07typeref\"s\n\rExpPermission\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\"\xfe\x01\n(ExperimentalComputablePermissionsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x03 \x01(\tR\x0crelationName\x12\x45\n\x1foptional_definition_name_filter\x18\x04 \x01(\tR\x1coptionalDefinitionNameFilter\"\x89\x01\n\x14\x45xpRelationReference\x12\'\n\x0f\x64\x65\x66inition_name\x18\x01 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x02 \x01(\tR\x0crelationName\x12#\n\ris_permission\x18\x03 \x01(\x08R\x0cisPermission\"\xa6\x01\n)ExperimentalComputablePermissionsResponse\x12\x46\n\x0bpermissions\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ExpRelationReferenceR\x0bpermissions\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xb8\x01\n%ExperimentalDependentRelationsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12\'\n\x0fpermission_name\x18\x03 \x01(\tR\x0epermissionName\"\x9f\x01\n&ExperimentalDependentRelationsResponse\x12\x42\n\trelations\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ExpRelationReferenceR\trelations\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\x8b\x01\n\x1d\x45xperimentalDiffSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12+\n\x11\x63omparison_schema\x18\x02 \x01(\tR\x10\x63omparisonSchema\"\x88\x01\n\x1e\x45xperimentalDiffSchemaResponse\x12\x33\n\x05\x64iffs\x18\x01 \x03(\x0b\x32\x1d.authzed.api.v1.ExpSchemaDiffR\x05\x64iffs\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xab\x01\n\x1c\x45xpRelationSubjectTypeChange\x12\x37\n\x08relation\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationR\x08relation\x12R\n\x14\x63hanged_subject_type\x18\x02 \x01(\x0b\x32 .authzed.api.v1.ExpTypeReferenceR\x12\x63hangedSubjectType\"\x85\x01\n\x1c\x45xpCaveatParameterTypeChange\x12@\n\tparameter\x18\x01 \x01(\x0b\x32\".authzed.api.v1.ExpCaveatParameterR\tparameter\x12#\n\rprevious_type\x18\x02 \x01(\tR\x0cpreviousType\"\xa0\r\n\rExpSchemaDiff\x12J\n\x10\x64\x65\x66inition_added\x18\x01 \x01(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionH\x00R\x0f\x64\x65\x66initionAdded\x12N\n\x12\x64\x65\x66inition_removed\x18\x02 \x01(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionH\x00R\x11\x64\x65\x66initionRemoved\x12\x64\n\x1e\x64\x65\x66inition_doc_comment_changed\x18\x03 \x01(\x0b\x32\x1d.authzed.api.v1.ExpDefinitionH\x00R\x1b\x64\x65\x66initionDocCommentChanged\x12\x44\n\x0erelation_added\x18\x04 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationH\x00R\rrelationAdded\x12H\n\x10relation_removed\x18\x05 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationH\x00R\x0frelationRemoved\x12^\n\x1crelation_doc_comment_changed\x18\x06 \x01(\x0b\x32\x1b.authzed.api.v1.ExpRelationH\x00R\x19relationDocCommentChanged\x12m\n\x1brelation_subject_type_added\x18\x07 \x01(\x0b\x32,.authzed.api.v1.ExpRelationSubjectTypeChangeH\x00R\x18relationSubjectTypeAdded\x12q\n\x1drelation_subject_type_removed\x18\x08 \x01(\x0b\x32,.authzed.api.v1.ExpRelationSubjectTypeChangeH\x00R\x1arelationSubjectTypeRemoved\x12J\n\x10permission_added\x18\t \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x0fpermissionAdded\x12N\n\x12permission_removed\x18\n \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x11permissionRemoved\x12\x64\n\x1epermission_doc_comment_changed\x18\x0b \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x1bpermissionDocCommentChanged\x12W\n\x17permission_expr_changed\x18\x0c \x01(\x0b\x32\x1d.authzed.api.v1.ExpPermissionH\x00R\x15permissionExprChanged\x12>\n\x0c\x63\x61veat_added\x18\r \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\x0b\x63\x61veatAdded\x12\x42\n\x0e\x63\x61veat_removed\x18\x0e \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\rcaveatRemoved\x12X\n\x1a\x63\x61veat_doc_comment_changed\x18\x0f \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\x17\x63\x61veatDocCommentChanged\x12K\n\x13\x63\x61veat_expr_changed\x18\x10 \x01(\x0b\x32\x19.authzed.api.v1.ExpCaveatH\x00R\x11\x63\x61veatExprChanged\x12Z\n\x16\x63\x61veat_parameter_added\x18\x11 \x01(\x0b\x32\".authzed.api.v1.ExpCaveatParameterH\x00R\x14\x63\x61veatParameterAdded\x12^\n\x18\x63\x61veat_parameter_removed\x18\x12 \x01(\x0b\x32\".authzed.api.v1.ExpCaveatParameterH\x00R\x16\x63\x61veatParameterRemoved\x12q\n\x1d\x63\x61veat_parameter_type_changed\x18\x13 \x01(\x0b\x32,.authzed.api.v1.ExpCaveatParameterTypeChangeH\x00R\x1a\x63\x61veatParameterTypeChangedB\x06\n\x04\x64iff2\xd8\x10\n\x13\x45xperimentalService\x12\xc4\x01\n\x17\x42ulkImportRelationships\x12..authzed.api.v1.BulkImportRelationshipsRequest\x1a/.authzed.api.v1.BulkImportRelationshipsResponse\"F\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02.\")/v1/experimental/relationships/bulkimport:\x01*(\x01\x12\xc4\x01\n\x17\x42ulkExportRelationships\x12..authzed.api.v1.BulkExportRelationshipsRequest\x1a/.authzed.api.v1.BulkExportRelationshipsResponse\"F\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02.\")/v1/experimental/relationships/bulkexport:\x01*0\x01\x12\xbd\x01\n\x13\x42ulkCheckPermission\x12*.authzed.api.v1.BulkCheckPermissionRequest\x1a+.authzed.api.v1.BulkCheckPermissionResponse\"M\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02\x35\"0/v1/experimental/permissions/bulkcheckpermission:\x01*\x12\xbd\x01\n\x19\x45xperimentalReflectSchema\x12\x30.authzed.api.v1.ExperimentalReflectSchemaRequest\x1a\x31.authzed.api.v1.ExperimentalReflectSchemaResponse\";\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02#\"\x1e/v1/experimental/reflectschema:\x01*\x12\xde\x01\n!ExperimentalComputablePermissions\x12\x38.authzed.api.v1.ExperimentalComputablePermissionsRequest\x1a\x39.authzed.api.v1.ExperimentalComputablePermissionsResponse\"D\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02,\"\'/v1/experimental/permissions/computable:\x01*\x12\xd4\x01\n\x1e\x45xperimentalDependentRelations\x12\x35.authzed.api.v1.ExperimentalDependentRelationsRequest\x1a\x36.authzed.api.v1.ExperimentalDependentRelationsResponse\"C\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02+\"&/v1/experimental/permissions/dependent:\x01*\x12\xb1\x01\n\x16\x45xperimentalDiffSchema\x12-.authzed.api.v1.ExperimentalDiffSchemaRequest\x1a..authzed.api.v1.ExperimentalDiffSchemaResponse\"8\x88\x02\x01\x92\x41\x0c\n\nDeprecated\x82\xd3\xe4\x93\x02 \"\x1b/v1/experimental/diffschema:\x01*\x12\xf4\x01\n\'ExperimentalRegisterRelationshipCounter\x12>.authzed.api.v1.ExperimentalRegisterRelationshipCounterRequest\x1a?.authzed.api.v1.ExperimentalRegisterRelationshipCounterResponse\"H\x92\x41\x0e\n\x0c\x45xperimental\x82\xd3\xe4\x93\x02\x31\",/v1/experimental/registerrelationshipcounter:\x01*\x12\xd0\x01\n\x1e\x45xperimentalCountRelationships\x12\x35.authzed.api.v1.ExperimentalCountRelationshipsRequest\x1a\x36.authzed.api.v1.ExperimentalCountRelationshipsResponse\"?\x92\x41\x0e\n\x0c\x45xperimental\x82\xd3\xe4\x93\x02(\"#/v1/experimental/countrelationships:\x01*\x12\xfc\x01\n)ExperimentalUnregisterRelationshipCounter\x12@.authzed.api.v1.ExperimentalUnregisterRelationshipCounterRequest\x1a\x41.authzed.api.v1.ExperimentalUnregisterRelationshipCounterResponse\"J\x92\x41\x0e\n\x0c\x45xperimental\x82\xd3\xe4\x93\x02\x33\"./v1/experimental/unregisterrelationshipcounter:\x01*BJ\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')

@@ -76,93 +77,93 @@ _globals = globals()

_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkImportRelationships']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkImportRelationships']._serialized_options = b'\202\323\344\223\002.\")/v1/experimental/relationships/bulkimport:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkImportRelationships']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\002.\")/v1/experimental/relationships/bulkimport:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkExportRelationships']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkExportRelationships']._serialized_options = b'\202\323\344\223\002.\")/v1/experimental/relationships/bulkexport:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkExportRelationships']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\002.\")/v1/experimental/relationships/bulkexport:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkCheckPermission']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkCheckPermission']._serialized_options = b'\210\002\001\202\323\344\223\0025\"0/v1/experimental/permissions/bulkcheckpermission:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['BulkCheckPermission']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\0025\"0/v1/experimental/permissions/bulkcheckpermission:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalReflectSchema']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalReflectSchema']._serialized_options = b'\210\002\001\202\323\344\223\002#\"\036/v1/experimental/reflectschema:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalReflectSchema']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\002#\"\036/v1/experimental/reflectschema:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalComputablePermissions']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalComputablePermissions']._serialized_options = b'\210\002\001\202\323\344\223\002,\"\'/v1/experimental/permissions/computable:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalComputablePermissions']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\002,\"\'/v1/experimental/permissions/computable:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalDependentRelations']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalDependentRelations']._serialized_options = b'\210\002\001\202\323\344\223\002+\"&/v1/experimental/permissions/dependent:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalDependentRelations']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\002+\"&/v1/experimental/permissions/dependent:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalDiffSchema']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalDiffSchema']._serialized_options = b'\210\002\001\202\323\344\223\002 \"\033/v1/experimental/diffschema:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalDiffSchema']._serialized_options = b'\210\002\001\222A\014\n\nDeprecated\202\323\344\223\002 \"\033/v1/experimental/diffschema:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalRegisterRelationshipCounter']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalRegisterRelationshipCounter']._serialized_options = b'\202\323\344\223\0021\",/v1/experimental/registerrelationshipcounter:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalRegisterRelationshipCounter']._serialized_options = b'\222A\016\n\014Experimental\202\323\344\223\0021\",/v1/experimental/registerrelationshipcounter:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalCountRelationships']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalCountRelationships']._serialized_options = b'\202\323\344\223\002(\"#/v1/experimental/countrelationships:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalCountRelationships']._serialized_options = b'\222A\016\n\014Experimental\202\323\344\223\002(\"#/v1/experimental/countrelationships:\001*'
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalUnregisterRelationshipCounter']._loaded_options = None
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalUnregisterRelationshipCounter']._serialized_options = b'\202\323\344\223\0023\"./v1/experimental/unregisterrelationshipcounter:\001*'
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_start=269
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_end=524
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_start=526
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_end=575
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSREQUEST']._serialized_start=578
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSREQUEST']._serialized_end=723
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSRESPONSE']._serialized_start=726
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSRESPONSE']._serialized_end=928
_globals['_READCOUNTERVALUE']._serialized_start=931
_globals['_READCOUNTERVALUE']._serialized_end=1063
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_start=1066
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_end=1222
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_start=1224
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_end=1275
_globals['_BULKCHECKPERMISSIONREQUEST']._serialized_start=1278
_globals['_BULKCHECKPERMISSIONREQUEST']._serialized_end=1467
_globals['_BULKCHECKPERMISSIONREQUESTITEM']._serialized_start=1470
_globals['_BULKCHECKPERMISSIONREQUESTITEM']._serialized_end=1840
_globals['_BULKCHECKPERMISSIONRESPONSE']._serialized_start=1843
_globals['_BULKCHECKPERMISSIONRESPONSE']._serialized_end=2034
_globals['_BULKCHECKPERMISSIONPAIR']._serialized_start=2037
_globals['_BULKCHECKPERMISSIONPAIR']._serialized_end=2263
_globals['_BULKCHECKPERMISSIONRESPONSEITEM']._serialized_start=2266
_globals['_BULKCHECKPERMISSIONRESPONSEITEM']._serialized_end=2516
_globals['_BULKIMPORTRELATIONSHIPSREQUEST']._serialized_start=2518
_globals['_BULKIMPORTRELATIONSHIPSREQUEST']._serialized_end=2644
_globals['_BULKIMPORTRELATIONSHIPSRESPONSE']._serialized_start=2646
_globals['_BULKIMPORTRELATIONSHIPSRESPONSE']._serialized_end=2710
_globals['_BULKEXPORTRELATIONSHIPSREQUEST']._serialized_start=2713
_globals['_BULKEXPORTRELATIONSHIPSREQUEST']._serialized_end=3030
_globals['_BULKEXPORTRELATIONSHIPSRESPONSE']._serialized_start=3033
_globals['_BULKEXPORTRELATIONSHIPSRESPONSE']._serialized_end=3206
_globals['_EXPERIMENTALREFLECTSCHEMAREQUEST']._serialized_start=3209
_globals['_EXPERIMENTALREFLECTSCHEMAREQUEST']._serialized_end=3382
_globals['_EXPERIMENTALREFLECTSCHEMARESPONSE']._serialized_start=3385
_globals['_EXPERIMENTALREFLECTSCHEMARESPONSE']._serialized_end=3589
_globals['_EXPSCHEMAFILTER']._serialized_start=3592
_globals['_EXPSCHEMAFILTER']._serialized_end=3881
_globals['_EXPDEFINITION']._serialized_start=3884
_globals['_EXPDEFINITION']._serialized_end=4069
_globals['_EXPCAVEAT']._serialized_start=4072
_globals['_EXPCAVEAT']._serialized_end=4229
_globals['_EXPCAVEATPARAMETER']._serialized_start=4231
_globals['_EXPCAVEATPARAMETER']._serialized_end=4337
_globals['_EXPRELATION']._serialized_start=4340
_globals['_EXPRELATION']._serialized_end=4524
_globals['_EXPTYPEREFERENCE']._serialized_start=4527
_globals['_EXPTYPEREFERENCE']._serialized_end=4816
_globals['_EXPPERMISSION']._serialized_start=4818
_globals['_EXPPERMISSION']._serialized_end=4933
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSREQUEST']._serialized_start=4936
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSREQUEST']._serialized_end=5190
_globals['_EXPRELATIONREFERENCE']._serialized_start=5193
_globals['_EXPRELATIONREFERENCE']._serialized_end=5330
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSRESPONSE']._serialized_start=5333
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSRESPONSE']._serialized_end=5499
_globals['_EXPERIMENTALDEPENDENTRELATIONSREQUEST']._serialized_start=5502
_globals['_EXPERIMENTALDEPENDENTRELATIONSREQUEST']._serialized_end=5686
_globals['_EXPERIMENTALDEPENDENTRELATIONSRESPONSE']._serialized_start=5689
_globals['_EXPERIMENTALDEPENDENTRELATIONSRESPONSE']._serialized_end=5848
_globals['_EXPERIMENTALDIFFSCHEMAREQUEST']._serialized_start=5851
_globals['_EXPERIMENTALDIFFSCHEMAREQUEST']._serialized_end=5990
_globals['_EXPERIMENTALDIFFSCHEMARESPONSE']._serialized_start=5993
_globals['_EXPERIMENTALDIFFSCHEMARESPONSE']._serialized_end=6129
_globals['_EXPRELATIONSUBJECTTYPECHANGE']._serialized_start=6132
_globals['_EXPRELATIONSUBJECTTYPECHANGE']._serialized_end=6303
_globals['_EXPCAVEATPARAMETERTYPECHANGE']._serialized_start=6306
_globals['_EXPCAVEATPARAMETERTYPECHANGE']._serialized_end=6439
_globals['_EXPSCHEMADIFF']._serialized_start=6442
_globals['_EXPSCHEMADIFF']._serialized_end=8138
_globals['_EXPERIMENTALSERVICE']._serialized_start=8141
_globals['_EXPERIMENTALSERVICE']._serialized_end=10115
_globals['_EXPERIMENTALSERVICE'].methods_by_name['ExperimentalUnregisterRelationshipCounter']._serialized_options = b'\222A\016\n\014Experimental\202\323\344\223\0023\"./v1/experimental/unregisterrelationshipcounter:\001*'
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_start=317
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_end=572
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_start=574
_globals['_EXPERIMENTALREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_end=623
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSREQUEST']._serialized_start=626
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSREQUEST']._serialized_end=771
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSRESPONSE']._serialized_start=774
_globals['_EXPERIMENTALCOUNTRELATIONSHIPSRESPONSE']._serialized_end=976
_globals['_READCOUNTERVALUE']._serialized_start=979
_globals['_READCOUNTERVALUE']._serialized_end=1111
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_start=1114
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERREQUEST']._serialized_end=1270
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_start=1272
_globals['_EXPERIMENTALUNREGISTERRELATIONSHIPCOUNTERRESPONSE']._serialized_end=1323
_globals['_BULKCHECKPERMISSIONREQUEST']._serialized_start=1326
_globals['_BULKCHECKPERMISSIONREQUEST']._serialized_end=1515
_globals['_BULKCHECKPERMISSIONREQUESTITEM']._serialized_start=1518
_globals['_BULKCHECKPERMISSIONREQUESTITEM']._serialized_end=1888
_globals['_BULKCHECKPERMISSIONRESPONSE']._serialized_start=1891
_globals['_BULKCHECKPERMISSIONRESPONSE']._serialized_end=2082
_globals['_BULKCHECKPERMISSIONPAIR']._serialized_start=2085
_globals['_BULKCHECKPERMISSIONPAIR']._serialized_end=2311
_globals['_BULKCHECKPERMISSIONRESPONSEITEM']._serialized_start=2314
_globals['_BULKCHECKPERMISSIONRESPONSEITEM']._serialized_end=2564
_globals['_BULKIMPORTRELATIONSHIPSREQUEST']._serialized_start=2566
_globals['_BULKIMPORTRELATIONSHIPSREQUEST']._serialized_end=2692
_globals['_BULKIMPORTRELATIONSHIPSRESPONSE']._serialized_start=2694
_globals['_BULKIMPORTRELATIONSHIPSRESPONSE']._serialized_end=2758
_globals['_BULKEXPORTRELATIONSHIPSREQUEST']._serialized_start=2761
_globals['_BULKEXPORTRELATIONSHIPSREQUEST']._serialized_end=3078
_globals['_BULKEXPORTRELATIONSHIPSRESPONSE']._serialized_start=3081
_globals['_BULKEXPORTRELATIONSHIPSRESPONSE']._serialized_end=3254
_globals['_EXPERIMENTALREFLECTSCHEMAREQUEST']._serialized_start=3257
_globals['_EXPERIMENTALREFLECTSCHEMAREQUEST']._serialized_end=3430
_globals['_EXPERIMENTALREFLECTSCHEMARESPONSE']._serialized_start=3433
_globals['_EXPERIMENTALREFLECTSCHEMARESPONSE']._serialized_end=3637
_globals['_EXPSCHEMAFILTER']._serialized_start=3640
_globals['_EXPSCHEMAFILTER']._serialized_end=3929
_globals['_EXPDEFINITION']._serialized_start=3932
_globals['_EXPDEFINITION']._serialized_end=4117
_globals['_EXPCAVEAT']._serialized_start=4120
_globals['_EXPCAVEAT']._serialized_end=4277
_globals['_EXPCAVEATPARAMETER']._serialized_start=4279
_globals['_EXPCAVEATPARAMETER']._serialized_end=4385
_globals['_EXPRELATION']._serialized_start=4388
_globals['_EXPRELATION']._serialized_end=4572
_globals['_EXPTYPEREFERENCE']._serialized_start=4575
_globals['_EXPTYPEREFERENCE']._serialized_end=4864
_globals['_EXPPERMISSION']._serialized_start=4866
_globals['_EXPPERMISSION']._serialized_end=4981
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSREQUEST']._serialized_start=4984
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSREQUEST']._serialized_end=5238
_globals['_EXPRELATIONREFERENCE']._serialized_start=5241
_globals['_EXPRELATIONREFERENCE']._serialized_end=5378
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSRESPONSE']._serialized_start=5381
_globals['_EXPERIMENTALCOMPUTABLEPERMISSIONSRESPONSE']._serialized_end=5547
_globals['_EXPERIMENTALDEPENDENTRELATIONSREQUEST']._serialized_start=5550
_globals['_EXPERIMENTALDEPENDENTRELATIONSREQUEST']._serialized_end=5734
_globals['_EXPERIMENTALDEPENDENTRELATIONSRESPONSE']._serialized_start=5737
_globals['_EXPERIMENTALDEPENDENTRELATIONSRESPONSE']._serialized_end=5896
_globals['_EXPERIMENTALDIFFSCHEMAREQUEST']._serialized_start=5899
_globals['_EXPERIMENTALDIFFSCHEMAREQUEST']._serialized_end=6038
_globals['_EXPERIMENTALDIFFSCHEMARESPONSE']._serialized_start=6041
_globals['_EXPERIMENTALDIFFSCHEMARESPONSE']._serialized_end=6177
_globals['_EXPRELATIONSUBJECTTYPECHANGE']._serialized_start=6180
_globals['_EXPRELATIONSUBJECTTYPECHANGE']._serialized_end=6351
_globals['_EXPCAVEATPARAMETERTYPECHANGE']._serialized_start=6354
_globals['_EXPCAVEATPARAMETERTYPECHANGE']._serialized_end=6487
_globals['_EXPSCHEMADIFF']._serialized_start=6490
_globals['_EXPSCHEMADIFF']._serialized_end=8186
_globals['_EXPERIMENTALSERVICE']._serialized_start=8189
_globals['_EXPERIMENTALSERVICE']._serialized_end=10325
# @@protoc_insertion_point(module_scope)

@@ -32,6 +32,7 @@ # -*- coding: utf-8 -*-

from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
from validate import validate_pb2 as validate_dot_validate__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'authzed/api/v1/permission_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\x1a\x61uthzed/api/v1/debug.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x17validate/validate.proto\"\xaf\x02\n\x0b\x43onsistency\x12;\n\x10minimize_latency\x18\x01 \x01(\x08\x42\x0e\xfa\x42\x04j\x02\x08\x01\xbaH\x04j\x02\x08\x01H\x00R\x0fminimizeLatency\x12\x45\n\x11\x61t_least_as_fresh\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenH\x00R\x0e\x61tLeastAsFresh\x12\x46\n\x11\x61t_exact_snapshot\x18\x03 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenH\x00R\x0f\x61tExactSnapshot\x12;\n\x10\x66ully_consistent\x18\x04 \x01(\x08\x42\x0e\xfa\x42\x04j\x02\x08\x01\xbaH\x04j\x02\x08\x01H\x00R\x0f\x66ullyConsistentB\x17\n\x0brequirement\x12\x08\xf8\x42\x01\xbaH\x02\x08\x01\"\xb8\x05\n\x12RelationshipFilter\x12\xbc\x01\n\rresource_type\x18\x01 \x01(\tB\x96\x01\xfa\x42HrF(\x80\x01\x32\x41^(([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaHHrF(\x80\x01\x32\x41^(([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x0cresourceType\x12|\n\x14optional_resource_id\x18\x02 \x01(\tBJ\xfa\x42\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$\xbaH\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$R\x12optionalResourceId\x12\x89\x01\n\x1boptional_resource_id_prefix\x18\x05 \x01(\tBJ\xfa\x42\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$\xbaH\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$R\x18optionalResourceIdPrefix\x12\x81\x01\n\x11optional_relation\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x10optionalRelation\x12U\n\x17optional_subject_filter\x18\x04 \x01(\x0b\x32\x1d.authzed.api.v1.SubjectFilterR\x15optionalSubjectFilter\"\xad\x04\n\rSubjectFilter\x12\xb4\x01\n\x0csubject_type\x18\x01 \x01(\tB\x90\x01\xfa\x42\x45rC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x0bsubjectType\x12\x84\x01\n\x13optional_subject_id\x18\x02 \x01(\tBT\xfa\x42\'r%(\x80\x08\x32 ^(([a-zA-Z0-9/_|\\-=+]{1,})|\\*)?$\xbaH\'r%(\x80\x08\x32 ^(([a-zA-Z0-9/_|\\-=+]{1,})|\\*)?$R\x11optionalSubjectId\x12Y\n\x11optional_relation\x18\x03 \x01(\x0b\x32,.authzed.api.v1.SubjectFilter.RelationFilterR\x10optionalRelation\x1a\x82\x01\n\x0eRelationFilter\x12p\n\x08relation\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x08relation\"\xb6\x02\n\x18ReadRelationshipsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\x63\n\x13relationship_filter\x18\x02 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x12relationshipFilter\x12\x35\n\x0eoptional_limit\x18\x03 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x04 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\"\xf8\x01\n\x19ReadRelationshipsResponse\x12\x41\n\x07read_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\x12P\n\x0crelationship\x18\x02 \x01(\x0b\x32\x1c.authzed.api.v1.RelationshipB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x0crelationship\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x03 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\"\x96\x02\n\x0cPrecondition\x12Z\n\toperation\x18\x01 \x01(\x0e\x32&.authzed.api.v1.Precondition.OperationB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\toperation\x12J\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06\x66ilter\"^\n\tOperation\x12\x19\n\x15OPERATION_UNSPECIFIED\x10\x00\x12\x1c\n\x18OPERATION_MUST_NOT_MATCH\x10\x01\x12\x18\n\x14OPERATION_MUST_MATCH\x10\x02\"\xcf\x02\n\x19WriteRelationshipsRequest\x12V\n\x07updates\x18\x01 \x03(\x0b\x32\".authzed.api.v1.RelationshipUpdateB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x07updates\x12m\n\x16optional_preconditions\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.PreconditionB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x15optionalPreconditions\x12k\n\x1doptional_transaction_metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x1boptionalTransactionMetadata\"U\n\x1aWriteRelationshipsResponse\x12\x37\n\nwritten_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\twrittenAt\"\xdd\x03\n\x1a\x44\x65leteRelationshipsRequest\x12\x63\n\x13relationship_filter\x18\x01 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x12relationshipFilter\x12m\n\x16optional_preconditions\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.PreconditionB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x15optionalPreconditions\x12\x35\n\x0eoptional_limit\x18\x03 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12G\n optional_allow_partial_deletions\x18\x04 \x01(\x08R\x1doptionalAllowPartialDeletions\x12k\n\x1doptional_transaction_metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x1boptionalTransactionMetadata\"\xf7\x02\n\x1b\x44\x65leteRelationshipsResponse\x12\x37\n\ndeleted_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\tdeletedAt\x12i\n\x11\x64\x65letion_progress\x18\x02 \x01(\x0e\x32<.authzed.api.v1.DeleteRelationshipsResponse.DeletionProgressR\x10\x64\x65letionProgress\x12>\n\x1brelationships_deleted_count\x18\x03 \x01(\x04R\x19relationshipsDeletedCount\"t\n\x10\x44\x65letionProgress\x12!\n\x1d\x44\x45LETION_PROGRESS_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x44\x45LETION_PROGRESS_COMPLETE\x10\x01\x12\x1d\n\x19\x44\x45LETION_PROGRESS_PARTIAL\x10\x02\"\xcc\x03\n\x16\x43heckPermissionRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12K\n\x08resource\x18\x02 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12J\n\x07subject\x18\x04 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\x12!\n\x0cwith_tracing\x18\x06 \x01(\x08R\x0bwithTracing\"\xed\x04\n\x17\x43heckPermissionResponse\x12G\n\nchecked_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\tcheckedAt\x12t\n\x0epermissionship\x18\x02 \x01(\x0e\x32\x36.authzed.api.v1.CheckPermissionResponse.PermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x03 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x41\n\x0b\x64\x65\x62ug_trace\x18\x04 \x01(\x0b\x32 .authzed.api.v1.DebugInformationR\ndebugTrace\x12J\n\x13optional_expires_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x11optionalExpiresAt\"\xa0\x01\n\x0ePermissionship\x12\x1e\n\x1aPERMISSIONSHIP_UNSPECIFIED\x10\x00\x12 \n\x1cPERMISSIONSHIP_NO_PERMISSION\x10\x01\x12!\n\x1dPERMISSIONSHIP_HAS_PERMISSION\x10\x02\x12)\n%PERMISSIONSHIP_CONDITIONAL_PERMISSION\x10\x03\"\xe0\x01\n\x1b\x43heckBulkPermissionsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12_\n\x05items\x18\x02 \x03(\x0b\x32/.authzed.api.v1.CheckBulkPermissionsRequestItemB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05items\x12!\n\x0cwith_tracing\x18\x03 \x01(\x08R\x0bwithTracing\"\xf3\x02\n\x1f\x43heckBulkPermissionsRequestItem\x12K\n\x08resource\x18\x01 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x02 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12J\n\x07subject\x18\x03 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\"\xc1\x01\n\x1c\x43heckBulkPermissionsResponse\x12G\n\nchecked_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\tcheckedAt\x12X\n\x05pairs\x18\x02 \x03(\x0b\x32(.authzed.api.v1.CheckBulkPermissionsPairB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05pairs\"\xe5\x01\n\x18\x43heckBulkPermissionsPair\x12I\n\x07request\x18\x01 \x01(\x0b\x32/.authzed.api.v1.CheckBulkPermissionsRequestItemR\x07request\x12\x46\n\x04item\x18\x02 \x01(\x0b\x32\x30.authzed.api.v1.CheckBulkPermissionsResponseItemH\x00R\x04item\x12*\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rrorB\n\n\x08response\"\xbe\x02\n CheckBulkPermissionsResponseItem\x12t\n\x0epermissionship\x18\x01 \x01(\x0e\x32\x36.authzed.api.v1.CheckPermissionResponse.PermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x02 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x41\n\x0b\x64\x65\x62ug_trace\x18\x03 \x01(\x0b\x32 .authzed.api.v1.DebugInformationR\ndebugTrace\"\x9f\x02\n\x1b\x45xpandPermissionTreeRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12K\n\x08resource\x18\x02 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\"\xa2\x01\n\x1c\x45xpandPermissionTreeResponse\x12\x39\n\x0b\x65xpanded_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\nexpandedAt\x12G\n\ttree_root\x18\x02 \x01(\x0b\x32*.authzed.api.v1.PermissionRelationshipTreeR\x08treeRoot\"\x94\x05\n\x16LookupResourcesRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\xc3\x01\n\x14resource_object_type\x18\x02 \x01(\tB\x90\x01\xfa\x42\x45rC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x12resourceObjectType\x12n\n\npermission\x18\x03 \x01(\tBN\xfa\x42$r\"(@2\x1e^[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaH$r\"(@2\x1e^[a-z][a-z0-9_]{1,62}[a-z0-9]$R\npermission\x12J\n\x07subject\x18\x04 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\x12\x35\n\x0eoptional_limit\x18\x06 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x07 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\"\x92\x03\n\x17LookupResourcesResponse\x12:\n\x0clooked_up_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\nlookedUpAt\x12,\n\x12resource_object_id\x18\x02 \x01(\tR\x10resourceObjectId\x12\x62\n\x0epermissionship\x18\x03 \x01(\x0e\x32$.authzed.api.v1.LookupPermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x04 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x05 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\"\x9c\x08\n\x15LookupSubjectsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12K\n\x08resource\x18\x02 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12\xc1\x01\n\x13subject_object_type\x18\x04 \x01(\tB\x90\x01\xfa\x42\x45rC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x11subjectObjectType\x12\x90\x01\n\x19optional_subject_relation\x18\x05 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x17optionalSubjectRelation\x12\x41\n\x07\x63ontext\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\x12\x46\n\x17optional_concrete_limit\x18\x07 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\x15optionalConcreteLimit\x12?\n\x0foptional_cursor\x18\x08 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\x12]\n\x0fwildcard_option\x18\t \x01(\x0e\x32\x34.authzed.api.v1.LookupSubjectsRequest.WildcardOptionR\x0ewildcardOption\"\x7f\n\x0eWildcardOption\x12\x1f\n\x1bWILDCARD_OPTION_UNSPECIFIED\x10\x00\x12%\n!WILDCARD_OPTION_INCLUDE_WILDCARDS\x10\x01\x12%\n!WILDCARD_OPTION_EXCLUDE_WILDCARDS\x10\x02\"\xd6\x04\n\x16LookupSubjectsResponse\x12:\n\x0clooked_up_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\nlookedUpAt\x12.\n\x11subject_object_id\x18\x02 \x01(\tB\x02\x18\x01R\x0fsubjectObjectId\x12\x34\n\x14\x65xcluded_subject_ids\x18\x03 \x03(\tB\x02\x18\x01R\x12\x65xcludedSubjectIds\x12\x64\n\x0epermissionship\x18\x04 \x01(\x0e\x32$.authzed.api.v1.LookupPermissionshipB\x16\x18\x01\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x63\n\x13partial_caveat_info\x18\x05 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x10\x18\x01\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x39\n\x07subject\x18\x06 \x01(\x0b\x32\x1f.authzed.api.v1.ResolvedSubjectR\x07subject\x12L\n\x11\x65xcluded_subjects\x18\x07 \x03(\x0b\x32\x1f.authzed.api.v1.ResolvedSubjectR\x10\x65xcludedSubjects\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x08 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\"\x84\x02\n\x0fResolvedSubject\x12*\n\x11subject_object_id\x18\x01 \x01(\tR\x0fsubjectObjectId\x12\x62\n\x0epermissionship\x18\x02 \x01(\x0e\x32$.authzed.api.v1.LookupPermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x03 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\"~\n\x1eImportBulkRelationshipsRequest\x12\\\n\rrelationships\x18\x01 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\rrelationships\"@\n\x1fImportBulkRelationshipsResponse\x12\x1d\n\nnum_loaded\x18\x01 \x01(\x04R\tnumLoaded\"\xbd\x02\n\x1e\x45xportBulkRelationshipsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\x35\n\x0eoptional_limit\x18\x02 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x03 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\x12\x64\n\x1coptional_relationship_filter\x18\x04 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterR\x1aoptionalRelationshipFilter\"\xad\x01\n\x1f\x45xportBulkRelationshipsResponse\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x01 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\x12\x42\n\rrelationships\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipR\rrelationships*\x99\x01\n\x14LookupPermissionship\x12%\n!LOOKUP_PERMISSIONSHIP_UNSPECIFIED\x10\x00\x12(\n$LOOKUP_PERMISSIONSHIP_HAS_PERMISSION\x10\x01\x12\x30\n,LOOKUP_PERMISSIONSHIP_CONDITIONAL_PERMISSION\x10\x02\x32\xea\x0b\n\x12PermissionsService\x12\x8d\x01\n\x11ReadRelationships\x12(.authzed.api.v1.ReadRelationshipsRequest\x1a).authzed.api.v1.ReadRelationshipsResponse\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/v1/relationships/read:\x01*0\x01\x12\x8f\x01\n\x12WriteRelationships\x12).authzed.api.v1.WriteRelationshipsRequest\x1a*.authzed.api.v1.WriteRelationshipsResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/v1/relationships/write:\x01*\x12\x93\x01\n\x13\x44\x65leteRelationships\x12*.authzed.api.v1.DeleteRelationshipsRequest\x1a+.authzed.api.v1.DeleteRelationshipsResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/relationships/delete:\x01*\x12\x84\x01\n\x0f\x43heckPermission\x12&.authzed.api.v1.CheckPermissionRequest\x1a\'.authzed.api.v1.CheckPermissionResponse\" \x82\xd3\xe4\x93\x02\x1a\"\x15/v1/permissions/check:\x01*\x12\x97\x01\n\x14\x43heckBulkPermissions\x12+.authzed.api.v1.CheckBulkPermissionsRequest\x1a,.authzed.api.v1.CheckBulkPermissionsResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/v1/permissions/checkbulk:\x01*\x12\x94\x01\n\x14\x45xpandPermissionTree\x12+.authzed.api.v1.ExpandPermissionTreeRequest\x1a,.authzed.api.v1.ExpandPermissionTreeResponse\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/v1/permissions/expand:\x01*\x12\x8a\x01\n\x0fLookupResources\x12&.authzed.api.v1.LookupResourcesRequest\x1a\'.authzed.api.v1.LookupResourcesResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/v1/permissions/resources:\x01*0\x01\x12\x86\x01\n\x0eLookupSubjects\x12%.authzed.api.v1.LookupSubjectsRequest\x1a&.authzed.api.v1.LookupSubjectsResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/permissions/subjects:\x01*0\x01\x12\xa5\x01\n\x17ImportBulkRelationships\x12..authzed.api.v1.ImportBulkRelationshipsRequest\x1a/.authzed.api.v1.ImportBulkRelationshipsResponse\"\'\x82\xd3\xe4\x93\x02!\"\x1c/v1/relationships/importbulk:\x01*(\x01\x12\xa5\x01\n\x17\x45xportBulkRelationships\x12..authzed.api.v1.ExportBulkRelationshipsRequest\x1a/.authzed.api.v1.ExportBulkRelationshipsResponse\"\'\x82\xd3\xe4\x93\x02!\"\x1c/v1/relationships/exportbulk:\x01*0\x01\x42J\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'authzed/api/v1/permission_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\x1a\x61uthzed/api/v1/debug.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\xaf\x02\n\x0b\x43onsistency\x12;\n\x10minimize_latency\x18\x01 \x01(\x08\x42\x0e\xfa\x42\x04j\x02\x08\x01\xbaH\x04j\x02\x08\x01H\x00R\x0fminimizeLatency\x12\x45\n\x11\x61t_least_as_fresh\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenH\x00R\x0e\x61tLeastAsFresh\x12\x46\n\x11\x61t_exact_snapshot\x18\x03 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenH\x00R\x0f\x61tExactSnapshot\x12;\n\x10\x66ully_consistent\x18\x04 \x01(\x08\x42\x0e\xfa\x42\x04j\x02\x08\x01\xbaH\x04j\x02\x08\x01H\x00R\x0f\x66ullyConsistentB\x17\n\x0brequirement\x12\x08\xf8\x42\x01\xbaH\x02\x08\x01\"\xb8\x05\n\x12RelationshipFilter\x12\xbc\x01\n\rresource_type\x18\x01 \x01(\tB\x96\x01\xfa\x42HrF(\x80\x01\x32\x41^(([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaHHrF(\x80\x01\x32\x41^(([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x0cresourceType\x12|\n\x14optional_resource_id\x18\x02 \x01(\tBJ\xfa\x42\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$\xbaH\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$R\x12optionalResourceId\x12\x89\x01\n\x1boptional_resource_id_prefix\x18\x05 \x01(\tBJ\xfa\x42\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$\xbaH\"r (\x80\x08\x32\x1b^([a-zA-Z0-9/_|\\-=+]{1,})?$R\x18optionalResourceIdPrefix\x12\x81\x01\n\x11optional_relation\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x10optionalRelation\x12U\n\x17optional_subject_filter\x18\x04 \x01(\x0b\x32\x1d.authzed.api.v1.SubjectFilterR\x15optionalSubjectFilter\"\xad\x04\n\rSubjectFilter\x12\xb4\x01\n\x0csubject_type\x18\x01 \x01(\tB\x90\x01\xfa\x42\x45rC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x0bsubjectType\x12\x84\x01\n\x13optional_subject_id\x18\x02 \x01(\tBT\xfa\x42\'r%(\x80\x08\x32 ^(([a-zA-Z0-9/_|\\-=+]{1,})|\\*)?$\xbaH\'r%(\x80\x08\x32 ^(([a-zA-Z0-9/_|\\-=+]{1,})|\\*)?$R\x11optionalSubjectId\x12Y\n\x11optional_relation\x18\x03 \x01(\x0b\x32,.authzed.api.v1.SubjectFilter.RelationFilterR\x10optionalRelation\x1a\x82\x01\n\x0eRelationFilter\x12p\n\x08relation\x18\x01 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x08relation\"\xb6\x02\n\x18ReadRelationshipsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\x63\n\x13relationship_filter\x18\x02 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x12relationshipFilter\x12\x35\n\x0eoptional_limit\x18\x03 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x04 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\"\xf8\x01\n\x19ReadRelationshipsResponse\x12\x41\n\x07read_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\x12P\n\x0crelationship\x18\x02 \x01(\x0b\x32\x1c.authzed.api.v1.RelationshipB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x0crelationship\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x03 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\"\x96\x02\n\x0cPrecondition\x12Z\n\toperation\x18\x01 \x01(\x0e\x32&.authzed.api.v1.Precondition.OperationB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\toperation\x12J\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06\x66ilter\"^\n\tOperation\x12\x19\n\x15OPERATION_UNSPECIFIED\x10\x00\x12\x1c\n\x18OPERATION_MUST_NOT_MATCH\x10\x01\x12\x18\n\x14OPERATION_MUST_MATCH\x10\x02\"\xcf\x02\n\x19WriteRelationshipsRequest\x12V\n\x07updates\x18\x01 \x03(\x0b\x32\".authzed.api.v1.RelationshipUpdateB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x07updates\x12m\n\x16optional_preconditions\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.PreconditionB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x15optionalPreconditions\x12k\n\x1doptional_transaction_metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x1boptionalTransactionMetadata\"U\n\x1aWriteRelationshipsResponse\x12\x37\n\nwritten_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\twrittenAt\"\xdd\x03\n\x1a\x44\x65leteRelationshipsRequest\x12\x63\n\x13relationship_filter\x18\x01 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x12relationshipFilter\x12m\n\x16optional_preconditions\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.PreconditionB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x15optionalPreconditions\x12\x35\n\x0eoptional_limit\x18\x03 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12G\n optional_allow_partial_deletions\x18\x04 \x01(\x08R\x1doptionalAllowPartialDeletions\x12k\n\x1doptional_transaction_metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x1boptionalTransactionMetadata\"\xf7\x02\n\x1b\x44\x65leteRelationshipsResponse\x12\x37\n\ndeleted_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\tdeletedAt\x12i\n\x11\x64\x65letion_progress\x18\x02 \x01(\x0e\x32<.authzed.api.v1.DeleteRelationshipsResponse.DeletionProgressR\x10\x64\x65letionProgress\x12>\n\x1brelationships_deleted_count\x18\x03 \x01(\x04R\x19relationshipsDeletedCount\"t\n\x10\x44\x65letionProgress\x12!\n\x1d\x44\x45LETION_PROGRESS_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x44\x45LETION_PROGRESS_COMPLETE\x10\x01\x12\x1d\n\x19\x44\x45LETION_PROGRESS_PARTIAL\x10\x02\"\xcc\x03\n\x16\x43heckPermissionRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12K\n\x08resource\x18\x02 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12J\n\x07subject\x18\x04 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\x12!\n\x0cwith_tracing\x18\x06 \x01(\x08R\x0bwithTracing\"\xed\x04\n\x17\x43heckPermissionResponse\x12G\n\nchecked_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\tcheckedAt\x12t\n\x0epermissionship\x18\x02 \x01(\x0e\x32\x36.authzed.api.v1.CheckPermissionResponse.PermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x03 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x41\n\x0b\x64\x65\x62ug_trace\x18\x04 \x01(\x0b\x32 .authzed.api.v1.DebugInformationR\ndebugTrace\x12J\n\x13optional_expires_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x11optionalExpiresAt\"\xa0\x01\n\x0ePermissionship\x12\x1e\n\x1aPERMISSIONSHIP_UNSPECIFIED\x10\x00\x12 \n\x1cPERMISSIONSHIP_NO_PERMISSION\x10\x01\x12!\n\x1dPERMISSIONSHIP_HAS_PERMISSION\x10\x02\x12)\n%PERMISSIONSHIP_CONDITIONAL_PERMISSION\x10\x03\"\xe0\x01\n\x1b\x43heckBulkPermissionsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12_\n\x05items\x18\x02 \x03(\x0b\x32/.authzed.api.v1.CheckBulkPermissionsRequestItemB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05items\x12!\n\x0cwith_tracing\x18\x03 \x01(\x08R\x0bwithTracing\"\xf3\x02\n\x1f\x43heckBulkPermissionsRequestItem\x12K\n\x08resource\x18\x01 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x02 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12J\n\x07subject\x18\x03 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\"\xc1\x01\n\x1c\x43heckBulkPermissionsResponse\x12G\n\nchecked_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\tcheckedAt\x12X\n\x05pairs\x18\x02 \x03(\x0b\x32(.authzed.api.v1.CheckBulkPermissionsPairB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\x05pairs\"\xe5\x01\n\x18\x43heckBulkPermissionsPair\x12I\n\x07request\x18\x01 \x01(\x0b\x32/.authzed.api.v1.CheckBulkPermissionsRequestItemR\x07request\x12\x46\n\x04item\x18\x02 \x01(\x0b\x32\x30.authzed.api.v1.CheckBulkPermissionsResponseItemH\x00R\x04item\x12*\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rrorB\n\n\x08response\"\xbe\x02\n CheckBulkPermissionsResponseItem\x12t\n\x0epermissionship\x18\x01 \x01(\x0e\x32\x36.authzed.api.v1.CheckPermissionResponse.PermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x02 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x41\n\x0b\x64\x65\x62ug_trace\x18\x03 \x01(\x0b\x32 .authzed.api.v1.DebugInformationR\ndebugTrace\"\x9f\x02\n\x1b\x45xpandPermissionTreeRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12K\n\x08resource\x18\x02 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\"\xa2\x01\n\x1c\x45xpandPermissionTreeResponse\x12\x39\n\x0b\x65xpanded_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\nexpandedAt\x12G\n\ttree_root\x18\x02 \x01(\x0b\x32*.authzed.api.v1.PermissionRelationshipTreeR\x08treeRoot\"\x94\x05\n\x16LookupResourcesRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\xc3\x01\n\x14resource_object_type\x18\x02 \x01(\tB\x90\x01\xfa\x42\x45rC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x12resourceObjectType\x12n\n\npermission\x18\x03 \x01(\tBN\xfa\x42$r\"(@2\x1e^[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaH$r\"(@2\x1e^[a-z][a-z0-9_]{1,62}[a-z0-9]$R\npermission\x12J\n\x07subject\x18\x04 \x01(\x0b\x32 .authzed.api.v1.SubjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x07subject\x12\x41\n\x07\x63ontext\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\x12\x35\n\x0eoptional_limit\x18\x06 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x07 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\"\x92\x03\n\x17LookupResourcesResponse\x12:\n\x0clooked_up_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\nlookedUpAt\x12,\n\x12resource_object_id\x18\x02 \x01(\tR\x10resourceObjectId\x12\x62\n\x0epermissionship\x18\x03 \x01(\x0e\x32$.authzed.api.v1.LookupPermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x04 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x05 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\"\x9c\x08\n\x15LookupSubjectsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12K\n\x08resource\x18\x02 \x01(\x0b\x32\x1f.authzed.api.v1.ObjectReferenceB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x08resource\x12t\n\npermission\x18\x03 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\npermission\x12\xc1\x01\n\x13subject_object_type\x18\x04 \x01(\tB\x90\x01\xfa\x42\x45rC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x11subjectObjectType\x12\x90\x01\n\x19optional_subject_relation\x18\x05 \x01(\tBT\xfa\x42\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$\xbaH\'r%(@2!^([a-z][a-z0-9_]{1,62}[a-z0-9])?$R\x17optionalSubjectRelation\x12\x41\n\x07\x63ontext\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x07\x63ontext\x12\x46\n\x17optional_concrete_limit\x18\x07 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\x15optionalConcreteLimit\x12?\n\x0foptional_cursor\x18\x08 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\x12]\n\x0fwildcard_option\x18\t \x01(\x0e\x32\x34.authzed.api.v1.LookupSubjectsRequest.WildcardOptionR\x0ewildcardOption\"\x7f\n\x0eWildcardOption\x12\x1f\n\x1bWILDCARD_OPTION_UNSPECIFIED\x10\x00\x12%\n!WILDCARD_OPTION_INCLUDE_WILDCARDS\x10\x01\x12%\n!WILDCARD_OPTION_EXCLUDE_WILDCARDS\x10\x02\"\xd6\x04\n\x16LookupSubjectsResponse\x12:\n\x0clooked_up_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\nlookedUpAt\x12.\n\x11subject_object_id\x18\x02 \x01(\tB\x02\x18\x01R\x0fsubjectObjectId\x12\x34\n\x14\x65xcluded_subject_ids\x18\x03 \x03(\tB\x02\x18\x01R\x12\x65xcludedSubjectIds\x12\x64\n\x0epermissionship\x18\x04 \x01(\x0e\x32$.authzed.api.v1.LookupPermissionshipB\x16\x18\x01\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x63\n\x13partial_caveat_info\x18\x05 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x10\x18\x01\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\x12\x39\n\x07subject\x18\x06 \x01(\x0b\x32\x1f.authzed.api.v1.ResolvedSubjectR\x07subject\x12L\n\x11\x65xcluded_subjects\x18\x07 \x03(\x0b\x32\x1f.authzed.api.v1.ResolvedSubjectR\x10\x65xcludedSubjects\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x08 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\"\x84\x02\n\x0fResolvedSubject\x12*\n\x11subject_object_id\x18\x01 \x01(\tR\x0fsubjectObjectId\x12\x62\n\x0epermissionship\x18\x02 \x01(\x0e\x32$.authzed.api.v1.LookupPermissionshipB\x14\xfa\x42\x07\x82\x01\x04\x10\x01 \x00\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0epermissionship\x12\x61\n\x13partial_caveat_info\x18\x03 \x01(\x0b\x32!.authzed.api.v1.PartialCaveatInfoB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x00\xbaH\x03\xc8\x01\x00R\x11partialCaveatInfo\"~\n\x1eImportBulkRelationshipsRequest\x12\\\n\rrelationships\x18\x01 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipB\x18\xfa\x42\n\x92\x01\x07\"\x05\x8a\x01\x02\x10\x01\xbaH\x08\x92\x01\x05\"\x03\xc8\x01\x01R\rrelationships\"@\n\x1fImportBulkRelationshipsResponse\x12\x1d\n\nnum_loaded\x18\x01 \x01(\x04R\tnumLoaded\"\xbd\x02\n\x1e\x45xportBulkRelationshipsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\x35\n\x0eoptional_limit\x18\x02 \x01(\rB\x0e\xfa\x42\x04*\x02(\x00\xbaH\x04*\x02(\x00R\roptionalLimit\x12?\n\x0foptional_cursor\x18\x03 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x0eoptionalCursor\x12\x64\n\x1coptional_relationship_filter\x18\x04 \x01(\x0b\x32\".authzed.api.v1.RelationshipFilterR\x1aoptionalRelationshipFilter\"\xad\x01\n\x1f\x45xportBulkRelationshipsResponse\x12\x46\n\x13\x61\x66ter_result_cursor\x18\x01 \x01(\x0b\x32\x16.authzed.api.v1.CursorR\x11\x61\x66terResultCursor\x12\x42\n\rrelationships\x18\x02 \x03(\x0b\x32\x1c.authzed.api.v1.RelationshipR\rrelationships*\x99\x01\n\x14LookupPermissionship\x12%\n!LOOKUP_PERMISSIONSHIP_UNSPECIFIED\x10\x00\x12(\n$LOOKUP_PERMISSIONSHIP_HAS_PERMISSION\x10\x01\x12\x30\n,LOOKUP_PERMISSIONSHIP_CONDITIONAL_PERMISSION\x10\x02\x32\x8a\r\n\x12PermissionsService\x12\x9d\x01\n\x11ReadRelationships\x12(.authzed.api.v1.ReadRelationshipsRequest\x1a).authzed.api.v1.ReadRelationshipsResponse\"1\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1b\"\x16/v1/relationships/read:\x01*0\x01\x12\x9f\x01\n\x12WriteRelationships\x12).authzed.api.v1.WriteRelationshipsRequest\x1a*.authzed.api.v1.WriteRelationshipsResponse\"2\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1c\"\x17/v1/relationships/write:\x01*\x12\xa3\x01\n\x13\x44\x65leteRelationships\x12*.authzed.api.v1.DeleteRelationshipsRequest\x1a+.authzed.api.v1.DeleteRelationshipsResponse\"3\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/relationships/delete:\x01*\x12\x94\x01\n\x0f\x43heckPermission\x12&.authzed.api.v1.CheckPermissionRequest\x1a\'.authzed.api.v1.CheckPermissionResponse\"0\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1a\"\x15/v1/permissions/check:\x01*\x12\xa7\x01\n\x14\x43heckBulkPermissions\x12+.authzed.api.v1.CheckBulkPermissionsRequest\x1a,.authzed.api.v1.CheckBulkPermissionsResponse\"4\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1e\"\x19/v1/permissions/checkbulk:\x01*\x12\xa4\x01\n\x14\x45xpandPermissionTree\x12+.authzed.api.v1.ExpandPermissionTreeRequest\x1a,.authzed.api.v1.ExpandPermissionTreeResponse\"1\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1b\"\x16/v1/permissions/expand:\x01*\x12\x9a\x01\n\x0fLookupResources\x12&.authzed.api.v1.LookupResourcesRequest\x1a\'.authzed.api.v1.LookupResourcesResponse\"4\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1e\"\x19/v1/permissions/resources:\x01*0\x01\x12\x96\x01\n\x0eLookupSubjects\x12%.authzed.api.v1.LookupSubjectsRequest\x1a&.authzed.api.v1.LookupSubjectsResponse\"3\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/permissions/subjects:\x01*0\x01\x12\xb5\x01\n\x17ImportBulkRelationships\x12..authzed.api.v1.ImportBulkRelationshipsRequest\x1a/.authzed.api.v1.ImportBulkRelationshipsResponse\"7\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02!\"\x1c/v1/relationships/importbulk:\x01*(\x01\x12\xb5\x01\n\x17\x45xportBulkRelationships\x12..authzed.api.v1.ExportBulkRelationshipsRequest\x1a/.authzed.api.v1.ExportBulkRelationshipsResponse\"7\x92\x41\r\n\x0bPermissions\x82\xd3\xe4\x93\x02!\"\x1c/v1/relationships/exportbulk:\x01*0\x01\x42J\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')

@@ -169,91 +170,91 @@ _globals = globals()

_globals['_PERMISSIONSSERVICE'].methods_by_name['ReadRelationships']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['ReadRelationships']._serialized_options = b'\202\323\344\223\002\033\"\026/v1/relationships/read:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['ReadRelationships']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\033\"\026/v1/relationships/read:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['WriteRelationships']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['WriteRelationships']._serialized_options = b'\202\323\344\223\002\034\"\027/v1/relationships/write:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['WriteRelationships']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\034\"\027/v1/relationships/write:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['DeleteRelationships']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['DeleteRelationships']._serialized_options = b'\202\323\344\223\002\035\"\030/v1/relationships/delete:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['DeleteRelationships']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\035\"\030/v1/relationships/delete:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['CheckPermission']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['CheckPermission']._serialized_options = b'\202\323\344\223\002\032\"\025/v1/permissions/check:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['CheckPermission']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\032\"\025/v1/permissions/check:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['CheckBulkPermissions']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['CheckBulkPermissions']._serialized_options = b'\202\323\344\223\002\036\"\031/v1/permissions/checkbulk:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['CheckBulkPermissions']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\036\"\031/v1/permissions/checkbulk:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['ExpandPermissionTree']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['ExpandPermissionTree']._serialized_options = b'\202\323\344\223\002\033\"\026/v1/permissions/expand:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['ExpandPermissionTree']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\033\"\026/v1/permissions/expand:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['LookupResources']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['LookupResources']._serialized_options = b'\202\323\344\223\002\036\"\031/v1/permissions/resources:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['LookupResources']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\036\"\031/v1/permissions/resources:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['LookupSubjects']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['LookupSubjects']._serialized_options = b'\202\323\344\223\002\035\"\030/v1/permissions/subjects:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['LookupSubjects']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002\035\"\030/v1/permissions/subjects:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['ImportBulkRelationships']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['ImportBulkRelationships']._serialized_options = b'\202\323\344\223\002!\"\034/v1/relationships/importbulk:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['ImportBulkRelationships']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002!\"\034/v1/relationships/importbulk:\001*'
_globals['_PERMISSIONSSERVICE'].methods_by_name['ExportBulkRelationships']._loaded_options = None
_globals['_PERMISSIONSSERVICE'].methods_by_name['ExportBulkRelationships']._serialized_options = b'\202\323\344\223\002!\"\034/v1/relationships/exportbulk:\001*'
_globals['_LOOKUPPERMISSIONSHIP']._serialized_start=10549
_globals['_LOOKUPPERMISSIONSHIP']._serialized_end=10702
_globals['_CONSISTENCY']._serialized_start=287
_globals['_CONSISTENCY']._serialized_end=590
_globals['_RELATIONSHIPFILTER']._serialized_start=593
_globals['_RELATIONSHIPFILTER']._serialized_end=1289
_globals['_SUBJECTFILTER']._serialized_start=1292
_globals['_SUBJECTFILTER']._serialized_end=1849
_globals['_SUBJECTFILTER_RELATIONFILTER']._serialized_start=1719
_globals['_SUBJECTFILTER_RELATIONFILTER']._serialized_end=1849
_globals['_READRELATIONSHIPSREQUEST']._serialized_start=1852
_globals['_READRELATIONSHIPSREQUEST']._serialized_end=2162
_globals['_READRELATIONSHIPSRESPONSE']._serialized_start=2165
_globals['_READRELATIONSHIPSRESPONSE']._serialized_end=2413
_globals['_PRECONDITION']._serialized_start=2416
_globals['_PRECONDITION']._serialized_end=2694
_globals['_PRECONDITION_OPERATION']._serialized_start=2600
_globals['_PRECONDITION_OPERATION']._serialized_end=2694
_globals['_WRITERELATIONSHIPSREQUEST']._serialized_start=2697
_globals['_WRITERELATIONSHIPSREQUEST']._serialized_end=3032
_globals['_WRITERELATIONSHIPSRESPONSE']._serialized_start=3034
_globals['_WRITERELATIONSHIPSRESPONSE']._serialized_end=3119
_globals['_DELETERELATIONSHIPSREQUEST']._serialized_start=3122
_globals['_DELETERELATIONSHIPSREQUEST']._serialized_end=3599
_globals['_DELETERELATIONSHIPSRESPONSE']._serialized_start=3602
_globals['_DELETERELATIONSHIPSRESPONSE']._serialized_end=3977
_globals['_DELETERELATIONSHIPSRESPONSE_DELETIONPROGRESS']._serialized_start=3861
_globals['_DELETERELATIONSHIPSRESPONSE_DELETIONPROGRESS']._serialized_end=3977
_globals['_CHECKPERMISSIONREQUEST']._serialized_start=3980
_globals['_CHECKPERMISSIONREQUEST']._serialized_end=4440
_globals['_CHECKPERMISSIONRESPONSE']._serialized_start=4443
_globals['_CHECKPERMISSIONRESPONSE']._serialized_end=5064
_globals['_CHECKPERMISSIONRESPONSE_PERMISSIONSHIP']._serialized_start=4904
_globals['_CHECKPERMISSIONRESPONSE_PERMISSIONSHIP']._serialized_end=5064
_globals['_CHECKBULKPERMISSIONSREQUEST']._serialized_start=5067
_globals['_CHECKBULKPERMISSIONSREQUEST']._serialized_end=5291
_globals['_CHECKBULKPERMISSIONSREQUESTITEM']._serialized_start=5294
_globals['_CHECKBULKPERMISSIONSREQUESTITEM']._serialized_end=5665
_globals['_CHECKBULKPERMISSIONSRESPONSE']._serialized_start=5668
_globals['_CHECKBULKPERMISSIONSRESPONSE']._serialized_end=5861
_globals['_CHECKBULKPERMISSIONSPAIR']._serialized_start=5864
_globals['_CHECKBULKPERMISSIONSPAIR']._serialized_end=6093
_globals['_CHECKBULKPERMISSIONSRESPONSEITEM']._serialized_start=6096
_globals['_CHECKBULKPERMISSIONSRESPONSEITEM']._serialized_end=6414
_globals['_EXPANDPERMISSIONTREEREQUEST']._serialized_start=6417
_globals['_EXPANDPERMISSIONTREEREQUEST']._serialized_end=6704
_globals['_EXPANDPERMISSIONTREERESPONSE']._serialized_start=6707
_globals['_EXPANDPERMISSIONTREERESPONSE']._serialized_end=6869
_globals['_LOOKUPRESOURCESREQUEST']._serialized_start=6872
_globals['_LOOKUPRESOURCESREQUEST']._serialized_end=7532
_globals['_LOOKUPRESOURCESRESPONSE']._serialized_start=7535
_globals['_LOOKUPRESOURCESRESPONSE']._serialized_end=7937
_globals['_LOOKUPSUBJECTSREQUEST']._serialized_start=7940
_globals['_LOOKUPSUBJECTSREQUEST']._serialized_end=8992
_globals['_LOOKUPSUBJECTSREQUEST_WILDCARDOPTION']._serialized_start=8865
_globals['_LOOKUPSUBJECTSREQUEST_WILDCARDOPTION']._serialized_end=8992
_globals['_LOOKUPSUBJECTSRESPONSE']._serialized_start=8995
_globals['_LOOKUPSUBJECTSRESPONSE']._serialized_end=9593
_globals['_RESOLVEDSUBJECT']._serialized_start=9596
_globals['_RESOLVEDSUBJECT']._serialized_end=9856
_globals['_IMPORTBULKRELATIONSHIPSREQUEST']._serialized_start=9858
_globals['_IMPORTBULKRELATIONSHIPSREQUEST']._serialized_end=9984
_globals['_IMPORTBULKRELATIONSHIPSRESPONSE']._serialized_start=9986
_globals['_IMPORTBULKRELATIONSHIPSRESPONSE']._serialized_end=10050
_globals['_EXPORTBULKRELATIONSHIPSREQUEST']._serialized_start=10053
_globals['_EXPORTBULKRELATIONSHIPSREQUEST']._serialized_end=10370
_globals['_EXPORTBULKRELATIONSHIPSRESPONSE']._serialized_start=10373
_globals['_EXPORTBULKRELATIONSHIPSRESPONSE']._serialized_end=10546
_globals['_PERMISSIONSSERVICE']._serialized_start=10705
_globals['_PERMISSIONSSERVICE']._serialized_end=12219
_globals['_PERMISSIONSSERVICE'].methods_by_name['ExportBulkRelationships']._serialized_options = b'\222A\r\n\013Permissions\202\323\344\223\002!\"\034/v1/relationships/exportbulk:\001*'
_globals['_LOOKUPPERMISSIONSHIP']._serialized_start=10597
_globals['_LOOKUPPERMISSIONSHIP']._serialized_end=10750
_globals['_CONSISTENCY']._serialized_start=335
_globals['_CONSISTENCY']._serialized_end=638
_globals['_RELATIONSHIPFILTER']._serialized_start=641
_globals['_RELATIONSHIPFILTER']._serialized_end=1337
_globals['_SUBJECTFILTER']._serialized_start=1340
_globals['_SUBJECTFILTER']._serialized_end=1897
_globals['_SUBJECTFILTER_RELATIONFILTER']._serialized_start=1767
_globals['_SUBJECTFILTER_RELATIONFILTER']._serialized_end=1897
_globals['_READRELATIONSHIPSREQUEST']._serialized_start=1900
_globals['_READRELATIONSHIPSREQUEST']._serialized_end=2210
_globals['_READRELATIONSHIPSRESPONSE']._serialized_start=2213
_globals['_READRELATIONSHIPSRESPONSE']._serialized_end=2461
_globals['_PRECONDITION']._serialized_start=2464
_globals['_PRECONDITION']._serialized_end=2742
_globals['_PRECONDITION_OPERATION']._serialized_start=2648
_globals['_PRECONDITION_OPERATION']._serialized_end=2742
_globals['_WRITERELATIONSHIPSREQUEST']._serialized_start=2745
_globals['_WRITERELATIONSHIPSREQUEST']._serialized_end=3080
_globals['_WRITERELATIONSHIPSRESPONSE']._serialized_start=3082
_globals['_WRITERELATIONSHIPSRESPONSE']._serialized_end=3167
_globals['_DELETERELATIONSHIPSREQUEST']._serialized_start=3170
_globals['_DELETERELATIONSHIPSREQUEST']._serialized_end=3647
_globals['_DELETERELATIONSHIPSRESPONSE']._serialized_start=3650
_globals['_DELETERELATIONSHIPSRESPONSE']._serialized_end=4025
_globals['_DELETERELATIONSHIPSRESPONSE_DELETIONPROGRESS']._serialized_start=3909
_globals['_DELETERELATIONSHIPSRESPONSE_DELETIONPROGRESS']._serialized_end=4025
_globals['_CHECKPERMISSIONREQUEST']._serialized_start=4028
_globals['_CHECKPERMISSIONREQUEST']._serialized_end=4488
_globals['_CHECKPERMISSIONRESPONSE']._serialized_start=4491
_globals['_CHECKPERMISSIONRESPONSE']._serialized_end=5112
_globals['_CHECKPERMISSIONRESPONSE_PERMISSIONSHIP']._serialized_start=4952
_globals['_CHECKPERMISSIONRESPONSE_PERMISSIONSHIP']._serialized_end=5112
_globals['_CHECKBULKPERMISSIONSREQUEST']._serialized_start=5115
_globals['_CHECKBULKPERMISSIONSREQUEST']._serialized_end=5339
_globals['_CHECKBULKPERMISSIONSREQUESTITEM']._serialized_start=5342
_globals['_CHECKBULKPERMISSIONSREQUESTITEM']._serialized_end=5713
_globals['_CHECKBULKPERMISSIONSRESPONSE']._serialized_start=5716
_globals['_CHECKBULKPERMISSIONSRESPONSE']._serialized_end=5909
_globals['_CHECKBULKPERMISSIONSPAIR']._serialized_start=5912
_globals['_CHECKBULKPERMISSIONSPAIR']._serialized_end=6141
_globals['_CHECKBULKPERMISSIONSRESPONSEITEM']._serialized_start=6144
_globals['_CHECKBULKPERMISSIONSRESPONSEITEM']._serialized_end=6462
_globals['_EXPANDPERMISSIONTREEREQUEST']._serialized_start=6465
_globals['_EXPANDPERMISSIONTREEREQUEST']._serialized_end=6752
_globals['_EXPANDPERMISSIONTREERESPONSE']._serialized_start=6755
_globals['_EXPANDPERMISSIONTREERESPONSE']._serialized_end=6917
_globals['_LOOKUPRESOURCESREQUEST']._serialized_start=6920
_globals['_LOOKUPRESOURCESREQUEST']._serialized_end=7580
_globals['_LOOKUPRESOURCESRESPONSE']._serialized_start=7583
_globals['_LOOKUPRESOURCESRESPONSE']._serialized_end=7985
_globals['_LOOKUPSUBJECTSREQUEST']._serialized_start=7988
_globals['_LOOKUPSUBJECTSREQUEST']._serialized_end=9040
_globals['_LOOKUPSUBJECTSREQUEST_WILDCARDOPTION']._serialized_start=8913
_globals['_LOOKUPSUBJECTSREQUEST_WILDCARDOPTION']._serialized_end=9040
_globals['_LOOKUPSUBJECTSRESPONSE']._serialized_start=9043
_globals['_LOOKUPSUBJECTSRESPONSE']._serialized_end=9641
_globals['_RESOLVEDSUBJECT']._serialized_start=9644
_globals['_RESOLVEDSUBJECT']._serialized_end=9904
_globals['_IMPORTBULKRELATIONSHIPSREQUEST']._serialized_start=9906
_globals['_IMPORTBULKRELATIONSHIPSREQUEST']._serialized_end=10032
_globals['_IMPORTBULKRELATIONSHIPSRESPONSE']._serialized_start=10034
_globals['_IMPORTBULKRELATIONSHIPSRESPONSE']._serialized_end=10098
_globals['_EXPORTBULKRELATIONSHIPSREQUEST']._serialized_start=10101
_globals['_EXPORTBULKRELATIONSHIPSREQUEST']._serialized_end=10418
_globals['_EXPORTBULKRELATIONSHIPSRESPONSE']._serialized_start=10421
_globals['_EXPORTBULKRELATIONSHIPSRESPONSE']._serialized_end=10594
_globals['_PERMISSIONSSERVICE']._serialized_start=10753
_globals['_PERMISSIONSSERVICE']._serialized_end=12427
# @@protoc_insertion_point(module_scope)

@@ -957,22 +957,5 @@ """

optional_concrete_limit: builtins.int
"""optional_concrete_limit, if non-zero, specifies the limit on the number of
*concrete* (non-wildcard) subjects to return before the stream is closed on the
server side. With the default value of zero, the stream will continue resolving
concrete subjects until exhausted or the stream is closed due to the client or
a network issue.
NOTE: Wildcard subjects ("*") have special treatment when cursors and limits are used. Because
wildcards can apply to *any* concrete subjects, if a wildcard subject is found within the dataset,
a wildcard subject can be returned for *all* LookupSubjects calls, regardless of the cursor or
limit.
For example, if wildcards are requested, a wildcard subject exists, there is a specified limit
of 10 concrete subjects, and at least 10 concrete subjects exist, the API will return 11 subjects
in total: the 10 concrete + the wildcard
Furthermore, if a wildcard has a set of exclusions generated by the dataset,
the exclusions *will respect the cursor* and only a *partial* set of exclusions will be returned
for each invocation of the API.
***IT IS UP TO THE CALLER IN THIS CASE TO COMBINE THE EXCLUSIONS IF DESIRED***
"""optional_concrete_limit is currently unimplemented for LookupSubjects
and will return an error as of SpiceDB version 1.40.1. This will
be implemented in a future version of SpiceDB.
"""

@@ -997,6 +980,5 @@ wildcard_option: global___LookupSubjectsRequest.WildcardOption.ValueType

def optional_cursor(self) -> authzed.api.v1.core_pb2.Cursor:
"""optional_cursor, if specified, indicates the cursor after which results should resume being returned.
The cursor can be found on the LookupSubjectsResponse object.
NOTE: See above for notes about how cursors interact with wildcard subjects.
"""optional_cursor is currently unimplemented for LookupSubjects
and will be ignored as of SpiceDB version 1.40.1. This will
be implemented in a future version of SpiceDB.
"""

@@ -1003,0 +985,0 @@

@@ -29,6 +29,7 @@ # -*- coding: utf-8 -*-

from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
from validate import validate_pb2 as validate_dot_validate__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#authzed/api/v1/schema_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\'authzed/api/v1/permission_service.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17validate/validate.proto\"\x13\n\x11ReadSchemaRequest\"x\n\x12ReadSchemaResponse\x12\x1f\n\x0bschema_text\x18\x01 \x01(\tR\nschemaText\x12\x41\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\"B\n\x12WriteSchemaRequest\x12,\n\x06schema\x18\x01 \x01(\tB\x14\xfa\x42\x07r\x05(\x80\x80\x80\x02\xbaH\x07r\x05(\x80\x80\x80\x02R\x06schema\"^\n\x13WriteSchemaResponse\x12G\n\nwritten_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\twrittenAt\"\xa8\x01\n\x14ReflectSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12Q\n\x10optional_filters\x18\x02 \x03(\x0b\x32&.authzed.api.v1.ReflectionSchemaFilterR\x0foptionalFilters\"\xce\x01\n\x15ReflectSchemaResponse\x12\x46\n\x0b\x64\x65\x66initions\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ReflectionDefinitionR\x0b\x64\x65\x66initions\x12:\n\x07\x63\x61veats\x18\x02 \x03(\x0b\x32 .authzed.api.v1.ReflectionCaveatR\x07\x63\x61veats\x12\x31\n\x07read_at\x18\x03 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xa8\x02\n\x16ReflectionSchemaFilter\x12\x45\n\x1foptional_definition_name_filter\x18\x01 \x01(\tR\x1coptionalDefinitionNameFilter\x12=\n\x1boptional_caveat_name_filter\x18\x02 \x01(\tR\x18optionalCaveatNameFilter\x12\x41\n\x1doptional_relation_name_filter\x18\x03 \x01(\tR\x1aoptionalRelationNameFilter\x12\x45\n\x1foptional_permission_name_filter\x18\x04 \x01(\tR\x1coptionalPermissionNameFilter\"\xce\x01\n\x14ReflectionDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12@\n\trelations\x18\x03 \x03(\x0b\x32\".authzed.api.v1.ReflectionRelationR\trelations\x12\x46\n\x0bpermissions\x18\x04 \x03(\x0b\x32$.authzed.api.v1.ReflectionPermissionR\x0bpermissions\"\xab\x01\n\x10ReflectionCaveat\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12I\n\nparameters\x18\x03 \x03(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterR\nparameters\x12\x1e\n\nexpression\x18\x04 \x01(\tR\nexpression\"q\n\x19ReflectionCaveatParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12,\n\x12parent_caveat_name\x18\x03 \x01(\tR\x10parentCaveatName\"\xc6\x01\n\x12ReflectionRelation\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\x12L\n\rsubject_types\x18\x04 \x03(\x0b\x32\'.authzed.api.v1.ReflectionTypeReferenceR\x0csubjectTypes\"\xa8\x02\n\x17ReflectionTypeReference\x12\x36\n\x17subject_definition_name\x18\x01 \x01(\tR\x15subjectDefinitionName\x12\x30\n\x14optional_caveat_name\x18\x02 \x01(\tR\x12optionalCaveatName\x12\x30\n\x13is_terminal_subject\x18\x03 \x01(\x08H\x00R\x11isTerminalSubject\x12\x36\n\x16optional_relation_name\x18\x04 \x01(\tH\x00R\x14optionalRelationName\x12.\n\x12is_public_wildcard\x18\x05 \x01(\x08H\x00R\x10isPublicWildcardB\t\n\x07typeref\"z\n\x14ReflectionPermission\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\"\xf2\x01\n\x1c\x43omputablePermissionsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x03 \x01(\tR\x0crelationName\x12\x45\n\x1foptional_definition_name_filter\x18\x04 \x01(\tR\x1coptionalDefinitionNameFilter\"\x90\x01\n\x1bReflectionRelationReference\x12\'\n\x0f\x64\x65\x66inition_name\x18\x01 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x02 \x01(\tR\x0crelationName\x12#\n\ris_permission\x18\x03 \x01(\x08R\x0cisPermission\"\xa1\x01\n\x1d\x43omputablePermissionsResponse\x12M\n\x0bpermissions\x18\x01 \x03(\x0b\x32+.authzed.api.v1.ReflectionRelationReferenceR\x0bpermissions\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xac\x01\n\x19\x44\x65pendentRelationsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12\'\n\x0fpermission_name\x18\x03 \x01(\tR\x0epermissionName\"\x9a\x01\n\x1a\x44\x65pendentRelationsResponse\x12I\n\trelations\x18\x01 \x03(\x0b\x32+.authzed.api.v1.ReflectionRelationReferenceR\trelations\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\x7f\n\x11\x44iffSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12+\n\x11\x63omparison_schema\x18\x02 \x01(\tR\x10\x63omparisonSchema\"\x83\x01\n\x12\x44iffSchemaResponse\x12:\n\x05\x64iffs\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ReflectionSchemaDiffR\x05\x64iffs\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xc0\x01\n#ReflectionRelationSubjectTypeChange\x12>\n\x08relation\x18\x01 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationR\x08relation\x12Y\n\x14\x63hanged_subject_type\x18\x02 \x01(\x0b\x32\'.authzed.api.v1.ReflectionTypeReferenceR\x12\x63hangedSubjectType\"\x93\x01\n#ReflectionCaveatParameterTypeChange\x12G\n\tparameter\x18\x01 \x01(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterR\tparameter\x12#\n\rprevious_type\x18\x02 \x01(\tR\x0cpreviousType\"\xac\x0e\n\x14ReflectionSchemaDiff\x12Q\n\x10\x64\x65\x66inition_added\x18\x01 \x01(\x0b\x32$.authzed.api.v1.ReflectionDefinitionH\x00R\x0f\x64\x65\x66initionAdded\x12U\n\x12\x64\x65\x66inition_removed\x18\x02 \x01(\x0b\x32$.authzed.api.v1.ReflectionDefinitionH\x00R\x11\x64\x65\x66initionRemoved\x12k\n\x1e\x64\x65\x66inition_doc_comment_changed\x18\x03 \x01(\x0b\x32$.authzed.api.v1.ReflectionDefinitionH\x00R\x1b\x64\x65\x66initionDocCommentChanged\x12K\n\x0erelation_added\x18\x04 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationH\x00R\rrelationAdded\x12O\n\x10relation_removed\x18\x05 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationH\x00R\x0frelationRemoved\x12\x65\n\x1crelation_doc_comment_changed\x18\x06 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationH\x00R\x19relationDocCommentChanged\x12t\n\x1brelation_subject_type_added\x18\x07 \x01(\x0b\x32\x33.authzed.api.v1.ReflectionRelationSubjectTypeChangeH\x00R\x18relationSubjectTypeAdded\x12x\n\x1drelation_subject_type_removed\x18\x08 \x01(\x0b\x32\x33.authzed.api.v1.ReflectionRelationSubjectTypeChangeH\x00R\x1arelationSubjectTypeRemoved\x12Q\n\x10permission_added\x18\t \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x0fpermissionAdded\x12U\n\x12permission_removed\x18\n \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x11permissionRemoved\x12k\n\x1epermission_doc_comment_changed\x18\x0b \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x1bpermissionDocCommentChanged\x12^\n\x17permission_expr_changed\x18\x0c \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x15permissionExprChanged\x12\x45\n\x0c\x63\x61veat_added\x18\r \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\x0b\x63\x61veatAdded\x12I\n\x0e\x63\x61veat_removed\x18\x0e \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\rcaveatRemoved\x12_\n\x1a\x63\x61veat_doc_comment_changed\x18\x0f \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\x17\x63\x61veatDocCommentChanged\x12R\n\x13\x63\x61veat_expr_changed\x18\x10 \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\x11\x63\x61veatExprChanged\x12\x61\n\x16\x63\x61veat_parameter_added\x18\x11 \x01(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterH\x00R\x14\x63\x61veatParameterAdded\x12\x65\n\x18\x63\x61veat_parameter_removed\x18\x12 \x01(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterH\x00R\x16\x63\x61veatParameterRemoved\x12x\n\x1d\x63\x61veat_parameter_type_changed\x18\x13 \x01(\x0b\x32\x33.authzed.api.v1.ReflectionCaveatParameterTypeChangeH\x00R\x1a\x63\x61veatParameterTypeChangedB\x06\n\x04\x64iff2\xb0\x06\n\rSchemaService\x12o\n\nReadSchema\x12!.authzed.api.v1.ReadSchemaRequest\x1a\".authzed.api.v1.ReadSchemaResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\"\x0f/v1/schema/read:\x01*\x12s\n\x0bWriteSchema\x12\".authzed.api.v1.WriteSchemaRequest\x1a#.authzed.api.v1.WriteSchemaResponse\"\x1b\x82\xd3\xe4\x93\x02\x15\"\x10/v1/schema/write:\x01*\x12\x81\x01\n\rReflectSchema\x12$.authzed.api.v1.ReflectSchemaRequest\x1a%.authzed.api.v1.ReflectSchemaResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/schema/reflectschema:\x01*\x12\xa2\x01\n\x15\x43omputablePermissions\x12,.authzed.api.v1.ComputablePermissionsRequest\x1a-.authzed.api.v1.ComputablePermissionsResponse\",\x82\xd3\xe4\x93\x02&\"!/v1/schema/permissions/computable:\x01*\x12\x98\x01\n\x12\x44\x65pendentRelations\x12).authzed.api.v1.DependentRelationsRequest\x1a*.authzed.api.v1.DependentRelationsResponse\"+\x82\xd3\xe4\x93\x02%\" /v1/schema/permissions/dependent:\x01*\x12u\n\nDiffSchema\x12!.authzed.api.v1.DiffSchemaRequest\x1a\".authzed.api.v1.DiffSchemaResponse\" \x82\xd3\xe4\x93\x02\x1a\"\x15/v1/schema/diffschema:\x01*BJ\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#authzed/api/v1/schema_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\'authzed/api/v1/permission_service.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\x13\n\x11ReadSchemaRequest\"x\n\x12ReadSchemaResponse\x12\x1f\n\x0bschema_text\x18\x01 \x01(\tR\nschemaText\x12\x41\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\"B\n\x12WriteSchemaRequest\x12,\n\x06schema\x18\x01 \x01(\tB\x14\xfa\x42\x07r\x05(\x80\x80\x80\x02\xbaH\x07r\x05(\x80\x80\x80\x02R\x06schema\"^\n\x13WriteSchemaResponse\x12G\n\nwritten_at\x18\x01 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenB\x0e\xfa\x42\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\twrittenAt\"\xa8\x01\n\x14ReflectSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12Q\n\x10optional_filters\x18\x02 \x03(\x0b\x32&.authzed.api.v1.ReflectionSchemaFilterR\x0foptionalFilters\"\xce\x01\n\x15ReflectSchemaResponse\x12\x46\n\x0b\x64\x65\x66initions\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ReflectionDefinitionR\x0b\x64\x65\x66initions\x12:\n\x07\x63\x61veats\x18\x02 \x03(\x0b\x32 .authzed.api.v1.ReflectionCaveatR\x07\x63\x61veats\x12\x31\n\x07read_at\x18\x03 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xa8\x02\n\x16ReflectionSchemaFilter\x12\x45\n\x1foptional_definition_name_filter\x18\x01 \x01(\tR\x1coptionalDefinitionNameFilter\x12=\n\x1boptional_caveat_name_filter\x18\x02 \x01(\tR\x18optionalCaveatNameFilter\x12\x41\n\x1doptional_relation_name_filter\x18\x03 \x01(\tR\x1aoptionalRelationNameFilter\x12\x45\n\x1foptional_permission_name_filter\x18\x04 \x01(\tR\x1coptionalPermissionNameFilter\"\xce\x01\n\x14ReflectionDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12@\n\trelations\x18\x03 \x03(\x0b\x32\".authzed.api.v1.ReflectionRelationR\trelations\x12\x46\n\x0bpermissions\x18\x04 \x03(\x0b\x32$.authzed.api.v1.ReflectionPermissionR\x0bpermissions\"\xab\x01\n\x10ReflectionCaveat\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12I\n\nparameters\x18\x03 \x03(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterR\nparameters\x12\x1e\n\nexpression\x18\x04 \x01(\tR\nexpression\"q\n\x19ReflectionCaveatParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12,\n\x12parent_caveat_name\x18\x03 \x01(\tR\x10parentCaveatName\"\xc6\x01\n\x12ReflectionRelation\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\x12L\n\rsubject_types\x18\x04 \x03(\x0b\x32\'.authzed.api.v1.ReflectionTypeReferenceR\x0csubjectTypes\"\xa8\x02\n\x17ReflectionTypeReference\x12\x36\n\x17subject_definition_name\x18\x01 \x01(\tR\x15subjectDefinitionName\x12\x30\n\x14optional_caveat_name\x18\x02 \x01(\tR\x12optionalCaveatName\x12\x30\n\x13is_terminal_subject\x18\x03 \x01(\x08H\x00R\x11isTerminalSubject\x12\x36\n\x16optional_relation_name\x18\x04 \x01(\tH\x00R\x14optionalRelationName\x12.\n\x12is_public_wildcard\x18\x05 \x01(\x08H\x00R\x10isPublicWildcardB\t\n\x07typeref\"z\n\x14ReflectionPermission\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x63omment\x18\x02 \x01(\tR\x07\x63omment\x12\x34\n\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\"\xf2\x01\n\x1c\x43omputablePermissionsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x03 \x01(\tR\x0crelationName\x12\x45\n\x1foptional_definition_name_filter\x18\x04 \x01(\tR\x1coptionalDefinitionNameFilter\"\x90\x01\n\x1bReflectionRelationReference\x12\'\n\x0f\x64\x65\x66inition_name\x18\x01 \x01(\tR\x0e\x64\x65\x66initionName\x12#\n\rrelation_name\x18\x02 \x01(\tR\x0crelationName\x12#\n\ris_permission\x18\x03 \x01(\x08R\x0cisPermission\"\xa1\x01\n\x1d\x43omputablePermissionsResponse\x12M\n\x0bpermissions\x18\x01 \x03(\x0b\x32+.authzed.api.v1.ReflectionRelationReferenceR\x0bpermissions\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xac\x01\n\x19\x44\x65pendentRelationsRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12\'\n\x0f\x64\x65\x66inition_name\x18\x02 \x01(\tR\x0e\x64\x65\x66initionName\x12\'\n\x0fpermission_name\x18\x03 \x01(\tR\x0epermissionName\"\x9a\x01\n\x1a\x44\x65pendentRelationsResponse\x12I\n\trelations\x18\x01 \x03(\x0b\x32+.authzed.api.v1.ReflectionRelationReferenceR\trelations\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\x7f\n\x11\x44iffSchemaRequest\x12=\n\x0b\x63onsistency\x18\x01 \x01(\x0b\x32\x1b.authzed.api.v1.ConsistencyR\x0b\x63onsistency\x12+\n\x11\x63omparison_schema\x18\x02 \x01(\tR\x10\x63omparisonSchema\"\x83\x01\n\x12\x44iffSchemaResponse\x12:\n\x05\x64iffs\x18\x01 \x03(\x0b\x32$.authzed.api.v1.ReflectionSchemaDiffR\x05\x64iffs\x12\x31\n\x07read_at\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xc0\x01\n#ReflectionRelationSubjectTypeChange\x12>\n\x08relation\x18\x01 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationR\x08relation\x12Y\n\x14\x63hanged_subject_type\x18\x02 \x01(\x0b\x32\'.authzed.api.v1.ReflectionTypeReferenceR\x12\x63hangedSubjectType\"\x93\x01\n#ReflectionCaveatParameterTypeChange\x12G\n\tparameter\x18\x01 \x01(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterR\tparameter\x12#\n\rprevious_type\x18\x02 \x01(\tR\x0cpreviousType\"\xac\x0e\n\x14ReflectionSchemaDiff\x12Q\n\x10\x64\x65\x66inition_added\x18\x01 \x01(\x0b\x32$.authzed.api.v1.ReflectionDefinitionH\x00R\x0f\x64\x65\x66initionAdded\x12U\n\x12\x64\x65\x66inition_removed\x18\x02 \x01(\x0b\x32$.authzed.api.v1.ReflectionDefinitionH\x00R\x11\x64\x65\x66initionRemoved\x12k\n\x1e\x64\x65\x66inition_doc_comment_changed\x18\x03 \x01(\x0b\x32$.authzed.api.v1.ReflectionDefinitionH\x00R\x1b\x64\x65\x66initionDocCommentChanged\x12K\n\x0erelation_added\x18\x04 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationH\x00R\rrelationAdded\x12O\n\x10relation_removed\x18\x05 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationH\x00R\x0frelationRemoved\x12\x65\n\x1crelation_doc_comment_changed\x18\x06 \x01(\x0b\x32\".authzed.api.v1.ReflectionRelationH\x00R\x19relationDocCommentChanged\x12t\n\x1brelation_subject_type_added\x18\x07 \x01(\x0b\x32\x33.authzed.api.v1.ReflectionRelationSubjectTypeChangeH\x00R\x18relationSubjectTypeAdded\x12x\n\x1drelation_subject_type_removed\x18\x08 \x01(\x0b\x32\x33.authzed.api.v1.ReflectionRelationSubjectTypeChangeH\x00R\x1arelationSubjectTypeRemoved\x12Q\n\x10permission_added\x18\t \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x0fpermissionAdded\x12U\n\x12permission_removed\x18\n \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x11permissionRemoved\x12k\n\x1epermission_doc_comment_changed\x18\x0b \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x1bpermissionDocCommentChanged\x12^\n\x17permission_expr_changed\x18\x0c \x01(\x0b\x32$.authzed.api.v1.ReflectionPermissionH\x00R\x15permissionExprChanged\x12\x45\n\x0c\x63\x61veat_added\x18\r \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\x0b\x63\x61veatAdded\x12I\n\x0e\x63\x61veat_removed\x18\x0e \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\rcaveatRemoved\x12_\n\x1a\x63\x61veat_doc_comment_changed\x18\x0f \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\x17\x63\x61veatDocCommentChanged\x12R\n\x13\x63\x61veat_expr_changed\x18\x10 \x01(\x0b\x32 .authzed.api.v1.ReflectionCaveatH\x00R\x11\x63\x61veatExprChanged\x12\x61\n\x16\x63\x61veat_parameter_added\x18\x11 \x01(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterH\x00R\x14\x63\x61veatParameterAdded\x12\x65\n\x18\x63\x61veat_parameter_removed\x18\x12 \x01(\x0b\x32).authzed.api.v1.ReflectionCaveatParameterH\x00R\x16\x63\x61veatParameterRemoved\x12x\n\x1d\x63\x61veat_parameter_type_changed\x18\x13 \x01(\x0b\x32\x33.authzed.api.v1.ReflectionCaveatParameterTypeChangeH\x00R\x1a\x63\x61veatParameterTypeChangedB\x06\n\x04\x64iff2\xf3\x06\n\rSchemaService\x12z\n\nReadSchema\x12!.authzed.api.v1.ReadSchemaRequest\x1a\".authzed.api.v1.ReadSchemaResponse\"%\x92\x41\x08\n\x06Schema\x82\xd3\xe4\x93\x02\x14\"\x0f/v1/schema/read:\x01*\x12~\n\x0bWriteSchema\x12\".authzed.api.v1.WriteSchemaRequest\x1a#.authzed.api.v1.WriteSchemaResponse\"&\x92\x41\x08\n\x06Schema\x82\xd3\xe4\x93\x02\x15\"\x10/v1/schema/write:\x01*\x12\x8c\x01\n\rReflectSchema\x12$.authzed.api.v1.ReflectSchemaRequest\x1a%.authzed.api.v1.ReflectSchemaResponse\".\x92\x41\x08\n\x06Schema\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/schema/reflectschema:\x01*\x12\xad\x01\n\x15\x43omputablePermissions\x12,.authzed.api.v1.ComputablePermissionsRequest\x1a-.authzed.api.v1.ComputablePermissionsResponse\"7\x92\x41\x08\n\x06Schema\x82\xd3\xe4\x93\x02&\"!/v1/schema/permissions/computable:\x01*\x12\xa3\x01\n\x12\x44\x65pendentRelations\x12).authzed.api.v1.DependentRelationsRequest\x1a*.authzed.api.v1.DependentRelationsResponse\"6\x92\x41\x08\n\x06Schema\x82\xd3\xe4\x93\x02%\" /v1/schema/permissions/dependent:\x01*\x12\x80\x01\n\nDiffSchema\x12!.authzed.api.v1.DiffSchemaRequest\x1a\".authzed.api.v1.DiffSchemaResponse\"+\x92\x41\x08\n\x06Schema\x82\xd3\xe4\x93\x02\x1a\"\x15/v1/schema/diffschema:\x01*BJ\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')

@@ -48,61 +49,61 @@ _globals = globals()

_globals['_SCHEMASERVICE'].methods_by_name['ReadSchema']._loaded_options = None
_globals['_SCHEMASERVICE'].methods_by_name['ReadSchema']._serialized_options = b'\202\323\344\223\002\024\"\017/v1/schema/read:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['ReadSchema']._serialized_options = b'\222A\010\n\006Schema\202\323\344\223\002\024\"\017/v1/schema/read:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['WriteSchema']._loaded_options = None
_globals['_SCHEMASERVICE'].methods_by_name['WriteSchema']._serialized_options = b'\202\323\344\223\002\025\"\020/v1/schema/write:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['WriteSchema']._serialized_options = b'\222A\010\n\006Schema\202\323\344\223\002\025\"\020/v1/schema/write:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['ReflectSchema']._loaded_options = None
_globals['_SCHEMASERVICE'].methods_by_name['ReflectSchema']._serialized_options = b'\202\323\344\223\002\035\"\030/v1/schema/reflectschema:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['ReflectSchema']._serialized_options = b'\222A\010\n\006Schema\202\323\344\223\002\035\"\030/v1/schema/reflectschema:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['ComputablePermissions']._loaded_options = None
_globals['_SCHEMASERVICE'].methods_by_name['ComputablePermissions']._serialized_options = b'\202\323\344\223\002&\"!/v1/schema/permissions/computable:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['ComputablePermissions']._serialized_options = b'\222A\010\n\006Schema\202\323\344\223\002&\"!/v1/schema/permissions/computable:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['DependentRelations']._loaded_options = None
_globals['_SCHEMASERVICE'].methods_by_name['DependentRelations']._serialized_options = b'\202\323\344\223\002%\" /v1/schema/permissions/dependent:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['DependentRelations']._serialized_options = b'\222A\010\n\006Schema\202\323\344\223\002%\" /v1/schema/permissions/dependent:\001*'
_globals['_SCHEMASERVICE'].methods_by_name['DiffSchema']._loaded_options = None
_globals['_SCHEMASERVICE'].methods_by_name['DiffSchema']._serialized_options = b'\202\323\344\223\002\032\"\025/v1/schema/diffschema:\001*'
_globals['_READSCHEMAREQUEST']._serialized_start=207
_globals['_READSCHEMAREQUEST']._serialized_end=226
_globals['_READSCHEMARESPONSE']._serialized_start=228
_globals['_READSCHEMARESPONSE']._serialized_end=348
_globals['_WRITESCHEMAREQUEST']._serialized_start=350
_globals['_WRITESCHEMAREQUEST']._serialized_end=416
_globals['_WRITESCHEMARESPONSE']._serialized_start=418
_globals['_WRITESCHEMARESPONSE']._serialized_end=512
_globals['_REFLECTSCHEMAREQUEST']._serialized_start=515
_globals['_REFLECTSCHEMAREQUEST']._serialized_end=683
_globals['_REFLECTSCHEMARESPONSE']._serialized_start=686
_globals['_REFLECTSCHEMARESPONSE']._serialized_end=892
_globals['_REFLECTIONSCHEMAFILTER']._serialized_start=895
_globals['_REFLECTIONSCHEMAFILTER']._serialized_end=1191
_globals['_REFLECTIONDEFINITION']._serialized_start=1194
_globals['_REFLECTIONDEFINITION']._serialized_end=1400
_globals['_REFLECTIONCAVEAT']._serialized_start=1403
_globals['_REFLECTIONCAVEAT']._serialized_end=1574
_globals['_REFLECTIONCAVEATPARAMETER']._serialized_start=1576
_globals['_REFLECTIONCAVEATPARAMETER']._serialized_end=1689
_globals['_REFLECTIONRELATION']._serialized_start=1692
_globals['_REFLECTIONRELATION']._serialized_end=1890
_globals['_REFLECTIONTYPEREFERENCE']._serialized_start=1893
_globals['_REFLECTIONTYPEREFERENCE']._serialized_end=2189
_globals['_REFLECTIONPERMISSION']._serialized_start=2191
_globals['_REFLECTIONPERMISSION']._serialized_end=2313
_globals['_COMPUTABLEPERMISSIONSREQUEST']._serialized_start=2316
_globals['_COMPUTABLEPERMISSIONSREQUEST']._serialized_end=2558
_globals['_REFLECTIONRELATIONREFERENCE']._serialized_start=2561
_globals['_REFLECTIONRELATIONREFERENCE']._serialized_end=2705
_globals['_COMPUTABLEPERMISSIONSRESPONSE']._serialized_start=2708
_globals['_COMPUTABLEPERMISSIONSRESPONSE']._serialized_end=2869
_globals['_DEPENDENTRELATIONSREQUEST']._serialized_start=2872
_globals['_DEPENDENTRELATIONSREQUEST']._serialized_end=3044
_globals['_DEPENDENTRELATIONSRESPONSE']._serialized_start=3047
_globals['_DEPENDENTRELATIONSRESPONSE']._serialized_end=3201
_globals['_DIFFSCHEMAREQUEST']._serialized_start=3203
_globals['_DIFFSCHEMAREQUEST']._serialized_end=3330
_globals['_DIFFSCHEMARESPONSE']._serialized_start=3333
_globals['_DIFFSCHEMARESPONSE']._serialized_end=3464
_globals['_REFLECTIONRELATIONSUBJECTTYPECHANGE']._serialized_start=3467
_globals['_REFLECTIONRELATIONSUBJECTTYPECHANGE']._serialized_end=3659
_globals['_REFLECTIONCAVEATPARAMETERTYPECHANGE']._serialized_start=3662
_globals['_REFLECTIONCAVEATPARAMETERTYPECHANGE']._serialized_end=3809
_globals['_REFLECTIONSCHEMADIFF']._serialized_start=3812
_globals['_REFLECTIONSCHEMADIFF']._serialized_end=5648
_globals['_SCHEMASERVICE']._serialized_start=5651
_globals['_SCHEMASERVICE']._serialized_end=6467
_globals['_SCHEMASERVICE'].methods_by_name['DiffSchema']._serialized_options = b'\222A\010\n\006Schema\202\323\344\223\002\032\"\025/v1/schema/diffschema:\001*'
_globals['_READSCHEMAREQUEST']._serialized_start=255
_globals['_READSCHEMAREQUEST']._serialized_end=274
_globals['_READSCHEMARESPONSE']._serialized_start=276
_globals['_READSCHEMARESPONSE']._serialized_end=396
_globals['_WRITESCHEMAREQUEST']._serialized_start=398
_globals['_WRITESCHEMAREQUEST']._serialized_end=464
_globals['_WRITESCHEMARESPONSE']._serialized_start=466
_globals['_WRITESCHEMARESPONSE']._serialized_end=560
_globals['_REFLECTSCHEMAREQUEST']._serialized_start=563
_globals['_REFLECTSCHEMAREQUEST']._serialized_end=731
_globals['_REFLECTSCHEMARESPONSE']._serialized_start=734
_globals['_REFLECTSCHEMARESPONSE']._serialized_end=940
_globals['_REFLECTIONSCHEMAFILTER']._serialized_start=943
_globals['_REFLECTIONSCHEMAFILTER']._serialized_end=1239
_globals['_REFLECTIONDEFINITION']._serialized_start=1242
_globals['_REFLECTIONDEFINITION']._serialized_end=1448
_globals['_REFLECTIONCAVEAT']._serialized_start=1451
_globals['_REFLECTIONCAVEAT']._serialized_end=1622
_globals['_REFLECTIONCAVEATPARAMETER']._serialized_start=1624
_globals['_REFLECTIONCAVEATPARAMETER']._serialized_end=1737
_globals['_REFLECTIONRELATION']._serialized_start=1740
_globals['_REFLECTIONRELATION']._serialized_end=1938
_globals['_REFLECTIONTYPEREFERENCE']._serialized_start=1941
_globals['_REFLECTIONTYPEREFERENCE']._serialized_end=2237
_globals['_REFLECTIONPERMISSION']._serialized_start=2239
_globals['_REFLECTIONPERMISSION']._serialized_end=2361
_globals['_COMPUTABLEPERMISSIONSREQUEST']._serialized_start=2364
_globals['_COMPUTABLEPERMISSIONSREQUEST']._serialized_end=2606
_globals['_REFLECTIONRELATIONREFERENCE']._serialized_start=2609
_globals['_REFLECTIONRELATIONREFERENCE']._serialized_end=2753
_globals['_COMPUTABLEPERMISSIONSRESPONSE']._serialized_start=2756
_globals['_COMPUTABLEPERMISSIONSRESPONSE']._serialized_end=2917
_globals['_DEPENDENTRELATIONSREQUEST']._serialized_start=2920
_globals['_DEPENDENTRELATIONSREQUEST']._serialized_end=3092
_globals['_DEPENDENTRELATIONSRESPONSE']._serialized_start=3095
_globals['_DEPENDENTRELATIONSRESPONSE']._serialized_end=3249
_globals['_DIFFSCHEMAREQUEST']._serialized_start=3251
_globals['_DIFFSCHEMAREQUEST']._serialized_end=3378
_globals['_DIFFSCHEMARESPONSE']._serialized_start=3381
_globals['_DIFFSCHEMARESPONSE']._serialized_end=3512
_globals['_REFLECTIONRELATIONSUBJECTTYPECHANGE']._serialized_start=3515
_globals['_REFLECTIONRELATIONSUBJECTTYPECHANGE']._serialized_end=3707
_globals['_REFLECTIONCAVEATPARAMETERTYPECHANGE']._serialized_start=3710
_globals['_REFLECTIONCAVEATPARAMETERTYPECHANGE']._serialized_end=3857
_globals['_REFLECTIONSCHEMADIFF']._serialized_start=3860
_globals['_REFLECTIONSCHEMADIFF']._serialized_end=5696
_globals['_SCHEMASERVICE']._serialized_start=5699
_globals['_SCHEMASERVICE']._serialized_end=6582
# @@protoc_insertion_point(module_scope)

@@ -28,3 +28,5 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!

def Watch(self, request, context):
"""Missing associated documentation comment in .proto file."""
"""Watch returns a stream of events that occurred in the datastore in ascending timestamp order.
The events can be relationship updates, schema updates, or checkpoints.
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)

@@ -31,0 +33,0 @@ context.set_details('Method not implemented!')

@@ -30,6 +30,7 @@ # -*- coding: utf-8 -*-

from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
from validate import validate_pb2 as validate_dot_validate__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"authzed/api/v1/watch_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\'authzed/api/v1/permission_service.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x17validate/validate.proto\"\x9a\x03\n\x0cWatchRequest\x12\xd3\x01\n\x15optional_object_types\x18\x01 \x03(\tB\x9e\x01\xfa\x42L\x92\x01I\x08\x00\"ErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,62}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHL\x92\x01I\x08\x00\"ErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,62}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x13optionalObjectTypes\x12L\n\x15optional_start_cursor\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x13optionalStartCursor\x12\x66\n\x1doptional_relationship_filters\x18\x03 \x03(\x0b\x32\".authzed.api.v1.RelationshipFilterR\x1boptionalRelationshipFilters\"\xed\x01\n\rWatchResponse\x12<\n\x07updates\x18\x01 \x03(\x0b\x32\".authzed.api.v1.RelationshipUpdateR\x07updates\x12\x41\n\x0f\x63hanges_through\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x0e\x63hangesThrough\x12[\n\x1doptional_transaction_metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x1boptionalTransactionMetadata2l\n\x0cWatchService\x12\\\n\x05Watch\x12\x1c.authzed.api.v1.WatchRequest\x1a\x1d.authzed.api.v1.WatchResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\"\t/v1/watch:\x01*0\x01\x42J\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"authzed/api/v1/watch_service.proto\x12\x0e\x61uthzed.api.v1\x1a\x19\x61uthzed/api/v1/core.proto\x1a\'authzed/api/v1/permission_service.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\xe9\x03\n\x0cWatchRequest\x12\xd3\x01\n\x15optional_object_types\x18\x01 \x03(\tB\x9e\x01\xfa\x42L\x92\x01I\x08\x00\"ErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,62}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$\xbaHL\x92\x01I\x08\x00\"ErC(\x80\x01\x32>^([a-z][a-z0-9_]{1,62}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$R\x13optionalObjectTypes\x12L\n\x15optional_start_cursor\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x13optionalStartCursor\x12\x66\n\x1doptional_relationship_filters\x18\x03 \x03(\x0b\x32\".authzed.api.v1.RelationshipFilterR\x1boptionalRelationshipFilters\x12M\n\x15optional_update_kinds\x18\x04 \x03(\x0e\x32\x19.authzed.api.v1.WatchKindR\x13optionalUpdateKinds\"\xb9\x02\n\rWatchResponse\x12<\n\x07updates\x18\x01 \x03(\x0b\x32\".authzed.api.v1.RelationshipUpdateR\x07updates\x12\x41\n\x0f\x63hanges_through\x18\x02 \x01(\x0b\x32\x18.authzed.api.v1.ZedTokenR\x0e\x63hangesThrough\x12[\n\x1doptional_transaction_metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x1boptionalTransactionMetadata\x12%\n\x0eschema_updated\x18\x04 \x01(\x08R\rschemaUpdated\x12#\n\ris_checkpoint\x18\x05 \x01(\x08R\x0cisCheckpoint*\x9f\x01\n\tWatchKind\x12\x1a\n\x16WATCH_KIND_UNSPECIFIED\x10\x00\x12+\n\'WATCH_KIND_INCLUDE_RELATIONSHIP_UPDATES\x10\x01\x12%\n!WATCH_KIND_INCLUDE_SCHEMA_UPDATES\x10\x02\x12\"\n\x1eWATCH_KIND_INCLUDE_CHECKPOINTS\x10\x03\x32v\n\x0cWatchService\x12\x66\n\x05Watch\x12\x1c.authzed.api.v1.WatchRequest\x1a\x1d.authzed.api.v1.WatchResponse\"\x1e\x92\x41\x07\n\x05Watch\x82\xd3\xe4\x93\x02\x0e\"\t/v1/watch:\x01*0\x01\x42J\n\x12\x63om.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3')

@@ -45,9 +46,11 @@ _globals = globals()

_globals['_WATCHSERVICE'].methods_by_name['Watch']._loaded_options = None
_globals['_WATCHSERVICE'].methods_by_name['Watch']._serialized_options = b'\202\323\344\223\002\016\"\t/v1/watch:\001*'
_globals['_WATCHREQUEST']._serialized_start=237
_globals['_WATCHREQUEST']._serialized_end=647
_globals['_WATCHRESPONSE']._serialized_start=650
_globals['_WATCHRESPONSE']._serialized_end=887
_globals['_WATCHSERVICE']._serialized_start=889
_globals['_WATCHSERVICE']._serialized_end=997
_globals['_WATCHSERVICE'].methods_by_name['Watch']._serialized_options = b'\222A\007\n\005Watch\202\323\344\223\002\016\"\t/v1/watch:\001*'
_globals['_WATCHKIND']._serialized_start=1093
_globals['_WATCHKIND']._serialized_end=1252
_globals['_WATCHREQUEST']._serialized_start=285
_globals['_WATCHREQUEST']._serialized_end=774
_globals['_WATCHRESPONSE']._serialized_start=777
_globals['_WATCHRESPONSE']._serialized_end=1090
_globals['_WATCHSERVICE']._serialized_start=1254
_globals['_WATCHSERVICE']._serialized_end=1372
# @@protoc_insertion_point(module_scope)

@@ -12,12 +12,39 @@ """

import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.struct_pb2
import sys
import typing
if sys.version_info >= (3, 10):
import typing as typing_extensions
else:
import typing_extensions
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
class _WatchKind:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _WatchKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WatchKind.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
WATCH_KIND_UNSPECIFIED: _WatchKind.ValueType # 0
"""Default, just relationship updates (for backwards compatibility)"""
WATCH_KIND_INCLUDE_RELATIONSHIP_UPDATES: _WatchKind.ValueType # 1
WATCH_KIND_INCLUDE_SCHEMA_UPDATES: _WatchKind.ValueType # 2
WATCH_KIND_INCLUDE_CHECKPOINTS: _WatchKind.ValueType # 3
class WatchKind(_WatchKind, metaclass=_WatchKindEnumTypeWrapper): ...
WATCH_KIND_UNSPECIFIED: WatchKind.ValueType # 0
"""Default, just relationship updates (for backwards compatibility)"""
WATCH_KIND_INCLUDE_RELATIONSHIP_UPDATES: WatchKind.ValueType # 1
WATCH_KIND_INCLUDE_SCHEMA_UPDATES: WatchKind.ValueType # 2
WATCH_KIND_INCLUDE_CHECKPOINTS: WatchKind.ValueType # 3
global___WatchKind = WatchKind
@typing.final
class WatchRequest(google.protobuf.message.Message):
"""WatchRequest specifies the object definitions for which we want to start
watching mutations, and an optional start snapshot for when to start
"""WatchRequest specifies what mutations to watch for, and an optional start snapshot for when to start
watching.

@@ -31,5 +58,6 @@ """

OPTIONAL_RELATIONSHIP_FILTERS_FIELD_NUMBER: builtins.int
OPTIONAL_UPDATE_KINDS_FIELD_NUMBER: builtins.int
@property
def optional_object_types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
"""optional_object_types is a filter of resource object types to watch for changes.
"""optional_object_types is a filter of resource object types to watch for relationship changes.
If specified, only changes to the specified object types will be returned and

@@ -59,2 +87,6 @@ optional_relationship_filters cannot be used.

@property
def optional_update_kinds(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___WatchKind.ValueType]:
"""optional_update_kinds, if specified, indicates what kinds of mutations to include."""
def __init__(

@@ -66,5 +98,6 @@ self,

optional_relationship_filters: collections.abc.Iterable[authzed.api.v1.permission_service_pb2.RelationshipFilter] | None = ...,
optional_update_kinds: collections.abc.Iterable[global___WatchKind.ValueType] | None = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["optional_start_cursor", b"optional_start_cursor"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["optional_object_types", b"optional_object_types", "optional_relationship_filters", b"optional_relationship_filters", "optional_start_cursor", b"optional_start_cursor"]) -> None: ...
def ClearField(self, field_name: typing.Literal["optional_object_types", b"optional_object_types", "optional_relationship_filters", b"optional_relationship_filters", "optional_start_cursor", b"optional_start_cursor", "optional_update_kinds", b"optional_update_kinds"]) -> None: ...

@@ -75,4 +108,4 @@ global___WatchRequest = WatchRequest

class WatchResponse(google.protobuf.message.Message):
"""WatchResponse contains all tuple modification events in ascending
timestamp order, from the requested start snapshot to a snapshot
"""WatchResponse contains all mutation events in ascending timestamp order,
from the requested start snapshot to a snapshot
encoded in the watch response. The client can use the snapshot to resume

@@ -87,2 +120,11 @@ watching where the previous watch response left off.

OPTIONAL_TRANSACTION_METADATA_FIELD_NUMBER: builtins.int
SCHEMA_UPDATED_FIELD_NUMBER: builtins.int
IS_CHECKPOINT_FIELD_NUMBER: builtins.int
schema_updated: builtins.bool
"""schema_updated, if true, indicates that the schema was changed in this revision."""
is_checkpoint: builtins.bool
"""is_checkpoint, if true, indicates that a checkpoint was reached.
A checkpoint indicates that the server guarantees that the client
will not observe any changes at a revision below or equal to the revision in this response.
"""
@property

@@ -114,6 +156,8 @@ def updates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[authzed.api.v1.core_pb2.RelationshipUpdate]:

optional_transaction_metadata: google.protobuf.struct_pb2.Struct | None = ...,
schema_updated: builtins.bool = ...,
is_checkpoint: builtins.bool = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["changes_through", b"changes_through", "optional_transaction_metadata", b"optional_transaction_metadata"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["changes_through", b"changes_through", "optional_transaction_metadata", b"optional_transaction_metadata", "updates", b"updates"]) -> None: ...
def ClearField(self, field_name: typing.Literal["changes_through", b"changes_through", "is_checkpoint", b"is_checkpoint", "optional_transaction_metadata", b"optional_transaction_metadata", "schema_updated", b"schema_updated", "updates", b"updates"]) -> None: ...
global___WatchResponse = WatchResponse
Metadata-Version: 2.3
Name: authzed
Version: 1.21.2
Version: 1.22.0
Summary: Client library for SpiceDB.

@@ -18,3 +18,3 @@ Author: Authzed

Requires-Dist: protobuf (>=5.26,<6)
Requires-Dist: protovalidate (>=0.7.1,<0.13.0)
Requires-Dist: protovalidate (>=0.7.1,<0.16.0)
Description-Content-Type: text/markdown

@@ -21,0 +21,0 @@

@@ -8,3 +8,3 @@ [tool.poetry]

# where the tag comes from the release.
version = "1.21.2"
version = "1.22.0"
packages = [

@@ -27,3 +27,3 @@ {include = "authzed"},

googleapis-common-protos = "^1.65.0"
protovalidate = ">=0.7.1,<0.13.0"
protovalidate = ">=0.7.1,<0.16.0"

@@ -35,3 +35,3 @@ [tool.poetry.group.dev.dependencies]

isort = ">=5.6.4,<7.0.0"
mypy = "1.16.1"
mypy = "1.17.1"
mypy-protobuf = "3.6.0"

@@ -41,3 +41,3 @@ mock = "^5.1.0"

pytest = ">=7.1.3,<9.0.0"
pytest-asyncio = ">=0.21,<1.1"
pytest-asyncio = ">=0.21,<1.2"
types-protobuf = ">=5.26,<7.0"

@@ -44,0 +44,0 @@ typing-extensions = ">=3.7.4,<5"

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display