From 19f94d2044f05304895174220a933ebf68837aed Mon Sep 17 00:00:00 2001
From: authzedbot <86801627+authzedbot@users.noreply.github.com>
Date: Tue, 26 May 2026 16:28:38 +0000
Subject: [PATCH] feat: update api version
---
buf.gen.yaml | 2 +-
.../Api/Materialize/V0/Relationships.cs | 521 ++++++++++++++++++
.../Api/Materialize/V0/RelationshipsGrpc.cs | 152 +++++
.../Api/Materialize/V0/Watchpermissions.cs | 10 +-
.../Materialize/V0/WatchpermissionsGrpc.cs | 2 +
.../Api/Materialize/V0/Watchpermissionsets.cs | 279 +++++++---
src/Authzed.Net/Authzed/Api/V1/Core.cs | 24 +-
src/Authzed.Net/Authzed/Api/V1/ErrorReason.cs | 23 +-
.../Authzed/Api/V1/ExperimentalService.cs | 403 +++++++-------
.../Authzed/Api/V1/PermissionService.cs | 510 +++++++++--------
10 files changed, 1413 insertions(+), 513 deletions(-)
create mode 100644 src/Authzed.Net/Authzed/Api/Materialize/V0/Relationships.cs
create mode 100644 src/Authzed.Net/Authzed/Api/Materialize/V0/RelationshipsGrpc.cs
diff --git a/buf.gen.yaml b/buf.gen.yaml
index 6a23e0f..ac4b0ec 100644
--- a/buf.gen.yaml
+++ b/buf.gen.yaml
@@ -12,4 +12,4 @@ plugins:
- "base_namespace="
- "no_server=on"
inputs:
- - module: buf.build/authzed/api:v1.45.4
+ - module: buf.build/authzed/api:v1.53.0
diff --git a/src/Authzed.Net/Authzed/Api/Materialize/V0/Relationships.cs b/src/Authzed.Net/Authzed/Api/Materialize/V0/Relationships.cs
new file mode 100644
index 0000000..e02b8e1
--- /dev/null
+++ b/src/Authzed.Net/Authzed/Api/Materialize/V0/Relationships.cs
@@ -0,0 +1,521 @@
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: authzed/api/materialize/v0/relationships.proto
+//
+#pragma warning disable 1591, 0612, 3021, 8981
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Authzed.Api.Materialize.V0 {
+
+ /// Holder for reflection information generated from authzed/api/materialize/v0/relationships.proto
+ public static partial class RelationshipsReflection {
+
+ #region Descriptor
+ /// File descriptor for authzed/api/materialize/v0/relationships.proto
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static RelationshipsReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ci5hdXRoemVkL2FwaS9tYXRlcmlhbGl6ZS92MC9yZWxhdGlvbnNoaXBzLnBy",
+ "b3RvEhphdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MBoZYXV0aHplZC9hcGkv",
+ "djEvY29yZS5wcm90bxonYXV0aHplZC9hcGkvdjEvcGVybWlzc2lvbl9zZXJ2",
+ "aWNlLnByb3RvGhtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8aF3ZhbGlk",
+ "YXRlL3ZhbGlkYXRlLnByb3RvIpQBCi1FeHBlcmltZW50YWxDb3VudFJlbGF0",
+ "aW9uc2hpcHNCeUZpbHRlclJlcXVlc3QSYwoTcmVsYXRpb25zaGlwX2ZpbHRl",
+ "chgBIAEoCzIiLmF1dGh6ZWQuYXBpLnYxLlJlbGF0aW9uc2hpcEZpbHRlckIO",
+ "+kIFigECEAG6SAPIAQFSEnJlbGF0aW9uc2hpcEZpbHRlciKiAQouRXhwZXJp",
+ "bWVudGFsQ291bnRSZWxhdGlvbnNoaXBzQnlGaWx0ZXJSZXNwb25zZRItChJy",
+ "ZWxhdGlvbnNoaXBfY291bnQYASABKARSEXJlbGF0aW9uc2hpcENvdW50EkEK",
+ "B3JlYWRfYXQYAiABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tlbkIO+kIF",
+ "igECEAG6SAPIAQFSBnJlYWRBdDLaAQoUUmVsYXRpb25zaGlwc1NlcnZpY2US",
+ "wQEKJkV4cGVyaW1lbnRhbENvdW50UmVsYXRpb25zaGlwc0J5RmlsdGVyEkku",
+ "YXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuRXhwZXJpbWVudGFsQ291bnRS",
+ "ZWxhdGlvbnNoaXBzQnlGaWx0ZXJSZXF1ZXN0GkouYXV0aHplZC5hcGkubWF0",
+ "ZXJpYWxpemUudjAuRXhwZXJpbWVudGFsQ291bnRSZWxhdGlvbnNoaXBzQnlG",
+ "aWx0ZXJSZXNwb25zZSIAQmIKHmNvbS5hdXRoemVkLmFwaS5tYXRlcmlhbGl6",
+ "ZS52MFABWj5naXRodWIuY29tL2F1dGh6ZWQvYXV0aHplZC1nby9wcm90by9h",
+ "dXRoemVkL2FwaS9tYXRlcmlhbGl6ZS92MGIGcHJvdG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::Authzed.Api.V1.CoreReflection.Descriptor, global::Authzed.Api.V1.PermissionServiceReflection.Descriptor, global::Buf.Validate.ValidateReflection.Descriptor, global::Validate.ValidateReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest), global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest.Parser, new[]{ "RelationshipFilter" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterResponse), global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterResponse.Parser, new[]{ "RelationshipCount", "ReadAt" }, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class ExperimentalCountRelationshipsByFilterRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExperimentalCountRelationshipsByFilterRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Authzed.Api.Materialize.V0.RelationshipsReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ExperimentalCountRelationshipsByFilterRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ExperimentalCountRelationshipsByFilterRequest(ExperimentalCountRelationshipsByFilterRequest other) : this() {
+ relationshipFilter_ = other.relationshipFilter_ != null ? other.relationshipFilter_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ExperimentalCountRelationshipsByFilterRequest Clone() {
+ return new ExperimentalCountRelationshipsByFilterRequest(this);
+ }
+
+ /// Field number for the "relationship_filter" field.
+ public const int RelationshipFilterFieldNumber = 1;
+ private global::Authzed.Api.V1.RelationshipFilter relationshipFilter_;
+ ///
+ /// relationship_filter specifies the filter to apply when counting relationships.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Authzed.Api.V1.RelationshipFilter RelationshipFilter {
+ get { return relationshipFilter_; }
+ set {
+ relationshipFilter_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as ExperimentalCountRelationshipsByFilterRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(ExperimentalCountRelationshipsByFilterRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(RelationshipFilter, other.RelationshipFilter)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (relationshipFilter_ != null) hash ^= RelationshipFilter.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (relationshipFilter_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(RelationshipFilter);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (relationshipFilter_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(RelationshipFilter);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (relationshipFilter_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(RelationshipFilter);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(ExperimentalCountRelationshipsByFilterRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.relationshipFilter_ != null) {
+ if (relationshipFilter_ == null) {
+ RelationshipFilter = new global::Authzed.Api.V1.RelationshipFilter();
+ }
+ RelationshipFilter.MergeFrom(other.RelationshipFilter);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (relationshipFilter_ == null) {
+ RelationshipFilter = new global::Authzed.Api.V1.RelationshipFilter();
+ }
+ input.ReadMessage(RelationshipFilter);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (relationshipFilter_ == null) {
+ RelationshipFilter = new global::Authzed.Api.V1.RelationshipFilter();
+ }
+ input.ReadMessage(RelationshipFilter);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class ExperimentalCountRelationshipsByFilterResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExperimentalCountRelationshipsByFilterResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Authzed.Api.Materialize.V0.RelationshipsReflection.Descriptor.MessageTypes[1]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ExperimentalCountRelationshipsByFilterResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ExperimentalCountRelationshipsByFilterResponse(ExperimentalCountRelationshipsByFilterResponse other) : this() {
+ relationshipCount_ = other.relationshipCount_;
+ readAt_ = other.readAt_ != null ? other.readAt_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ExperimentalCountRelationshipsByFilterResponse Clone() {
+ return new ExperimentalCountRelationshipsByFilterResponse(this);
+ }
+
+ /// Field number for the "relationship_count" field.
+ public const int RelationshipCountFieldNumber = 1;
+ private ulong relationshipCount_;
+ ///
+ /// relationship_count is the count of relationships that match the filter.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong RelationshipCount {
+ get { return relationshipCount_; }
+ set {
+ relationshipCount_ = value;
+ }
+ }
+
+ /// Field number for the "read_at" field.
+ public const int ReadAtFieldNumber = 2;
+ private global::Authzed.Api.V1.ZedToken readAt_;
+ ///
+ /// read_at is the ZedToken at which the relationship count applies.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Authzed.Api.V1.ZedToken ReadAt {
+ get { return readAt_; }
+ set {
+ readAt_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as ExperimentalCountRelationshipsByFilterResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(ExperimentalCountRelationshipsByFilterResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (RelationshipCount != other.RelationshipCount) return false;
+ if (!object.Equals(ReadAt, other.ReadAt)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (RelationshipCount != 0UL) hash ^= RelationshipCount.GetHashCode();
+ if (readAt_ != null) hash ^= ReadAt.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (RelationshipCount != 0UL) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(RelationshipCount);
+ }
+ if (readAt_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(ReadAt);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (RelationshipCount != 0UL) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(RelationshipCount);
+ }
+ if (readAt_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(ReadAt);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (RelationshipCount != 0UL) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RelationshipCount);
+ }
+ if (readAt_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(ReadAt);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(ExperimentalCountRelationshipsByFilterResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.RelationshipCount != 0UL) {
+ RelationshipCount = other.RelationshipCount;
+ }
+ if (other.readAt_ != null) {
+ if (readAt_ == null) {
+ ReadAt = new global::Authzed.Api.V1.ZedToken();
+ }
+ ReadAt.MergeFrom(other.ReadAt);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ RelationshipCount = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (readAt_ == null) {
+ ReadAt = new global::Authzed.Api.V1.ZedToken();
+ }
+ input.ReadMessage(ReadAt);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ RelationshipCount = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (readAt_ == null) {
+ ReadAt = new global::Authzed.Api.V1.ZedToken();
+ }
+ input.ReadMessage(ReadAt);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/src/Authzed.Net/Authzed/Api/Materialize/V0/RelationshipsGrpc.cs b/src/Authzed.Net/Authzed/Api/Materialize/V0/RelationshipsGrpc.cs
new file mode 100644
index 0000000..032fbdf
--- /dev/null
+++ b/src/Authzed.Net/Authzed/Api/Materialize/V0/RelationshipsGrpc.cs
@@ -0,0 +1,152 @@
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: authzed/api/materialize/v0/relationships.proto
+//
+#pragma warning disable 0414, 1591, 8981, 0612
+#region Designer generated code
+
+using grpc = global::Grpc.Core;
+
+namespace Authzed.Api.Materialize.V0 {
+ public static partial class RelationshipsService
+ {
+ static readonly string __ServiceName = "authzed.api.materialize.v0.RelationshipsService";
+
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
+ {
+ #if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
+ if (message is global::Google.Protobuf.IBufferMessage)
+ {
+ context.SetPayloadLength(message.CalculateSize());
+ global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
+ context.Complete();
+ return;
+ }
+ #endif
+ context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
+ }
+
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ static class __Helper_MessageCache
+ {
+ public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
+ }
+
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ static T __Helper_DeserializeMessage(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser parser) where T : global::Google.Protobuf.IMessage
+ {
+ #if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
+ if (__Helper_MessageCache.IsBufferMessage)
+ {
+ return parser.ParseFrom(context.PayloadAsReadOnlySequence());
+ }
+ #endif
+ return parser.ParseFrom(context.PayloadAsNewBuffer());
+ }
+
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ static readonly grpc::Marshaller __Marshaller_authzed_api_materialize_v0_ExperimentalCountRelationshipsByFilterRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest.Parser));
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ static readonly grpc::Marshaller __Marshaller_authzed_api_materialize_v0_ExperimentalCountRelationshipsByFilterResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterResponse.Parser));
+
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ static readonly grpc::Method __Method_ExperimentalCountRelationshipsByFilter = new grpc::Method(
+ grpc::MethodType.Unary,
+ __ServiceName,
+ "ExperimentalCountRelationshipsByFilter",
+ __Marshaller_authzed_api_materialize_v0_ExperimentalCountRelationshipsByFilterRequest,
+ __Marshaller_authzed_api_materialize_v0_ExperimentalCountRelationshipsByFilterResponse);
+
+ /// Service descriptor
+ public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
+ {
+ get { return global::Authzed.Api.Materialize.V0.RelationshipsReflection.Descriptor.Services[0]; }
+ }
+
+ /// Client for RelationshipsService
+ public partial class RelationshipsServiceClient : grpc::ClientBase
+ {
+ /// Creates a new client for RelationshipsService
+ /// The channel to use to make remote calls.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ public RelationshipsServiceClient(grpc::ChannelBase channel) : base(channel)
+ {
+ }
+ /// Creates a new client for RelationshipsService that uses a custom CallInvoker.
+ /// The callInvoker to use to make remote calls.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ public RelationshipsServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+ /// Protected parameterless constructor to allow creation of test doubles.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ protected RelationshipsServiceClient() : base()
+ {
+ }
+ /// Protected constructor to allow creation of configured clients.
+ /// The client configuration.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ protected RelationshipsServiceClient(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ ///
+ /// EXPERIMENTAL: CountRelationships returns the count of relationships for a given filter.
+ ///
+ /// The request to send to the server.
+ /// The initial metadata to send with the call. This parameter is optional.
+ /// An optional deadline for the call. The call will be cancelled if deadline is hit.
+ /// An optional token for canceling the call.
+ /// The response received from the server.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ public virtual global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterResponse ExperimentalCountRelationshipsByFilter(global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
+ {
+ return ExperimentalCountRelationshipsByFilter(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+ }
+ ///
+ /// EXPERIMENTAL: CountRelationships returns the count of relationships for a given filter.
+ ///
+ /// The request to send to the server.
+ /// The options for the call.
+ /// The response received from the server.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ public virtual global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterResponse ExperimentalCountRelationshipsByFilter(global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest request, grpc::CallOptions options)
+ {
+ return CallInvoker.BlockingUnaryCall(__Method_ExperimentalCountRelationshipsByFilter, null, options, request);
+ }
+ ///
+ /// EXPERIMENTAL: CountRelationships returns the count of relationships for a given filter.
+ ///
+ /// The request to send to the server.
+ /// The initial metadata to send with the call. This parameter is optional.
+ /// An optional deadline for the call. The call will be cancelled if deadline is hit.
+ /// An optional token for canceling the call.
+ /// The call object.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ public virtual grpc::AsyncUnaryCall ExperimentalCountRelationshipsByFilterAsync(global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
+ {
+ return ExperimentalCountRelationshipsByFilterAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+ }
+ ///
+ /// EXPERIMENTAL: CountRelationships returns the count of relationships for a given filter.
+ ///
+ /// The request to send to the server.
+ /// The options for the call.
+ /// The call object.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ public virtual grpc::AsyncUnaryCall ExperimentalCountRelationshipsByFilterAsync(global::Authzed.Api.Materialize.V0.ExperimentalCountRelationshipsByFilterRequest request, grpc::CallOptions options)
+ {
+ return CallInvoker.AsyncUnaryCall(__Method_ExperimentalCountRelationshipsByFilter, null, options, request);
+ }
+ /// Creates a new instance of client from given ClientBaseConfiguration.
+ [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
+ protected override RelationshipsServiceClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new RelationshipsServiceClient(configuration);
+ }
+ }
+
+ }
+}
+#endregion
diff --git a/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissions.cs b/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissions.cs
index 24df3e2..22c0378 100644
--- a/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissions.cs
+++ b/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissions.cs
@@ -49,13 +49,13 @@ static WatchpermissionsReflection() {
"aXNzaW9uc2hpcCKgAQoOUGVybWlzc2lvbnNoaXASHgoaUEVSTUlTU0lPTlNI",
"SVBfVU5TUEVDSUZJRUQQABIgChxQRVJNSVNTSU9OU0hJUF9OT19QRVJNSVNT",
"SU9OEAESIQodUEVSTUlTU0lPTlNISVBfSEFTX1BFUk1JU1NJT04QAhIpCiVQ",
- "RVJNSVNTSU9OU0hJUF9DT05ESVRJT05BTF9QRVJNSVNTSU9OEAMynQEKF1dh",
- "dGNoUGVybWlzc2lvbnNTZXJ2aWNlEoEBChBXYXRjaFBlcm1pc3Npb25zEjMu",
+ "RVJNSVNTSU9OU0hJUF9DT05ESVRJT05BTF9QRVJNSVNTSU9OEAMyoAEKF1dh",
+ "dGNoUGVybWlzc2lvbnNTZXJ2aWNlEoQBChBXYXRjaFBlcm1pc3Npb25zEjMu",
"YXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuV2F0Y2hQZXJtaXNzaW9uc1Jl",
"cXVlc3QaNC5hdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MC5XYXRjaFBlcm1p",
- "c3Npb25zUmVzcG9uc2UiADABQmIKHmNvbS5hdXRoemVkLmFwaS5tYXRlcmlh",
- "bGl6ZS52MFABWj5naXRodWIuY29tL2F1dGh6ZWQvYXV0aHplZC1nby9wcm90",
- "by9hdXRoemVkL2FwaS9tYXRlcmlhbGl6ZS92MGIGcHJvdG8z"));
+ "c3Npb25zUmVzcG9uc2UiA4gCATABQmIKHmNvbS5hdXRoemVkLmFwaS5tYXRl",
+ "cmlhbGl6ZS52MFABWj5naXRodWIuY29tL2F1dGh6ZWQvYXV0aHplZC1nby9w",
+ "cm90by9hdXRoemVkL2FwaS9tYXRlcmlhbGl6ZS92MGIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Authzed.Api.V1.CoreReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
diff --git a/src/Authzed.Net/Authzed/Api/Materialize/V0/WatchpermissionsGrpc.cs b/src/Authzed.Net/Authzed/Api/Materialize/V0/WatchpermissionsGrpc.cs
index d933ef7..5c04ffc 100644
--- a/src/Authzed.Net/Authzed/Api/Materialize/V0/WatchpermissionsGrpc.cs
+++ b/src/Authzed.Net/Authzed/Api/Materialize/V0/WatchpermissionsGrpc.cs
@@ -113,6 +113,7 @@ protected WatchPermissionsServiceClient(ClientBaseConfiguration configuration) :
/// An optional deadline for the call. The call will be cancelled if deadline is hit.
/// An optional token for canceling the call.
/// The call object.
+ [global::System.ObsoleteAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncServerStreamingCall WatchPermissions(global::Authzed.Api.Materialize.V0.WatchPermissionsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
@@ -138,6 +139,7 @@ protected WatchPermissionsServiceClient(ClientBaseConfiguration configuration) :
/// The request to send to the server.
/// The options for the call.
/// The call object.
+ [global::System.ObsoleteAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncServerStreamingCall WatchPermissions(global::Authzed.Api.Materialize.V0.WatchPermissionsRequest request, grpc::CallOptions options)
{
diff --git a/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissionsets.cs b/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissionsets.cs
index 32ea076..b90b8a9 100644
--- a/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissionsets.cs
+++ b/src/Authzed.Net/Authzed/Api/Materialize/V0/Watchpermissionsets.cs
@@ -25,76 +25,83 @@ static WatchpermissionsetsReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CjRhdXRoemVkL2FwaS9tYXRlcmlhbGl6ZS92MC93YXRjaHBlcm1pc3Npb25z",
- "ZXRzLnByb3RvEhphdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MBoZYXV0aHpl",
- "ZC9hcGkvdjEvY29yZS5wcm90byJuChpXYXRjaFBlcm1pc3Npb25TZXRzUmVx",
- "dWVzdBJQChdvcHRpb25hbF9zdGFydGluZ19hZnRlchgBIAEoCzIYLmF1dGh6",
- "ZWQuYXBpLnYxLlplZFRva2VuUhVvcHRpb25hbFN0YXJ0aW5nQWZ0ZXIirQMK",
- "G1dhdGNoUGVybWlzc2lvblNldHNSZXNwb25zZRJJCgZjaGFuZ2UYASABKAsy",
- "Ly5hdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MC5QZXJtaXNzaW9uU2V0Q2hh",
- "bmdlSABSBmNoYW5nZRJJChJjb21wbGV0ZWRfcmV2aXNpb24YAiABKAsyGC5h",
- "dXRoemVkLmFwaS52MS5aZWRUb2tlbkgAUhFjb21wbGV0ZWRSZXZpc2lvbhKB",
- "AQofbG9va3VwX3Blcm1pc3Npb25fc2V0c19yZXF1aXJlZBgDIAEoCzI4LmF1",
- "dGh6ZWQuYXBpLm1hdGVyaWFsaXplLnYwLkxvb2t1cFBlcm1pc3Npb25TZXRz",
- "UmVxdWlyZWRIAFIcbG9va3VwUGVybWlzc2lvblNldHNSZXF1aXJlZBJoChZi",
- "cmVha2luZ19zY2hlbWFfY2hhbmdlGAQgASgLMjAuYXV0aHplZC5hcGkubWF0",
- "ZXJpYWxpemUudjAuQnJlYWtpbmdTY2hlbWFDaGFuZ2VIAFIUYnJlYWtpbmdT",
- "Y2hlbWFDaGFuZ2VCCgoIcmVzcG9uc2Ui3QEKBkN1cnNvchIUCgVsaW1pdBgB",
- "IAEoDVIFbGltaXQSLgoFdG9rZW4YBCABKAsyGC5hdXRoemVkLmFwaS52MS5a",
- "ZWRUb2tlblIFdG9rZW4SJQoOc3RhcnRpbmdfaW5kZXgYBSABKA1SDXN0YXJ0",
- "aW5nSW5kZXgSKwoRY29tcGxldGVkX21lbWJlcnMYBiABKAhSEGNvbXBsZXRl",
- "ZE1lbWJlcnMSIQoMc3RhcnRpbmdfa2V5GAcgASgJUgtzdGFydGluZ0tleRIW",
- "CgZjdXJzb3IYCCABKAlSBmN1cnNvciLoAQobTG9va3VwUGVybWlzc2lvblNl",
- "dHNSZXF1ZXN0EhQKBWxpbWl0GAEgASgNUgVsaW1pdBJKChRvcHRpb25hbF9h",
- "dF9yZXZpc2lvbhgCIAEoCzIYLmF1dGh6ZWQuYXBpLnYxLlplZFRva2VuUhJv",
- "cHRpb25hbEF0UmV2aXNpb24SZwoeb3B0aW9uYWxfc3RhcnRpbmdfYWZ0ZXJf",
- "Y3Vyc29yGAQgASgLMiIuYXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuQ3Vy",
- "c29yUhtvcHRpb25hbFN0YXJ0aW5nQWZ0ZXJDdXJzb3IiowEKHExvb2t1cFBl",
- "cm1pc3Npb25TZXRzUmVzcG9uc2USRwoGY2hhbmdlGAEgASgLMi8uYXV0aHpl",
- "ZC5hcGkubWF0ZXJpYWxpemUudjAuUGVybWlzc2lvblNldENoYW5nZVIGY2hh",
- "bmdlEjoKBmN1cnNvchgCIAEoCzIiLmF1dGh6ZWQuYXBpLm1hdGVyaWFsaXpl",
- "LnYwLkN1cnNvclIGY3Vyc29yIvwDChNQZXJtaXNzaW9uU2V0Q2hhbmdlEjkK",
- "C2F0X3JldmlzaW9uGAEgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5S",
- "CmF0UmV2aXNpb24SWgoJb3BlcmF0aW9uGAIgASgOMjwuYXV0aHplZC5hcGku",
- "bWF0ZXJpYWxpemUudjAuUGVybWlzc2lvblNldENoYW5nZS5TZXRPcGVyYXRp",
- "b25SCW9wZXJhdGlvbhJHCgpwYXJlbnRfc2V0GAMgASgLMiguYXV0aHplZC5h",
- "cGkubWF0ZXJpYWxpemUudjAuU2V0UmVmZXJlbmNlUglwYXJlbnRTZXQSRwoJ",
- "Y2hpbGRfc2V0GAQgASgLMiguYXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAu",
- "U2V0UmVmZXJlbmNlSABSCGNoaWxkU2V0ElAKDGNoaWxkX21lbWJlchgFIAEo",
- "CzIrLmF1dGh6ZWQuYXBpLm1hdGVyaWFsaXplLnYwLk1lbWJlclJlZmVyZW5j",
- "ZUgAUgtjaGlsZE1lbWJlciJhCgxTZXRPcGVyYXRpb24SHQoZU0VUX09QRVJB",
- "VElPTl9VTlNQRUNJRklFRBAAEhcKE1NFVF9PUEVSQVRJT05fQURERUQQARIZ",
- "ChVTRVRfT1BFUkFUSU9OX1JFTU9WRUQQAkIHCgVjaGlsZCKCAQoMU2V0UmVm",
- "ZXJlbmNlEh8KC29iamVjdF90eXBlGAEgASgJUgpvYmplY3RUeXBlEhsKCW9i",
- "amVjdF9pZBgCIAEoCVIIb2JqZWN0SWQSNAoWcGVybWlzc2lvbl9vcl9yZWxh",
- "dGlvbhgDIAEoCVIUcGVybWlzc2lvbk9yUmVsYXRpb24ilgEKD01lbWJlclJl",
- "ZmVyZW5jZRIfCgtvYmplY3RfdHlwZRgBIAEoCVIKb2JqZWN0VHlwZRIbCglv",
- "YmplY3RfaWQYAiABKAlSCG9iamVjdElkEkUKH29wdGlvbmFsX3Blcm1pc3Np",
- "b25fb3JfcmVsYXRpb24YAyABKAlSHG9wdGlvbmFsUGVybWlzc2lvbk9yUmVs",
- "YXRpb24iZgocTG9va3VwUGVybWlzc2lvblNldHNSZXF1aXJlZBJGChJyZXF1",
- "aXJlZF9sb29rdXBfYXQYASABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tl",
- "blIQcmVxdWlyZWRMb29rdXBBdCJNChRCcmVha2luZ1NjaGVtYUNoYW5nZRI1",
- "CgljaGFuZ2VfYXQYASABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tlblII",
- "Y2hhbmdlQXQiawodRG93bmxvYWRQZXJtaXNzaW9uU2V0c1JlcXVlc3QSSgoU",
- "b3B0aW9uYWxfYXRfcmV2aXNpb24YASABKAsyGC5hdXRoemVkLmFwaS52MS5a",
- "ZWRUb2tlblISb3B0aW9uYWxBdFJldmlzaW9uIiwKBEZpbGUSEgoEbmFtZRgB",
- "IAEoCVIEbmFtZRIQCgN1cmwYAiABKAlSA3VybCJYCh5Eb3dubG9hZFBlcm1p",
- "c3Npb25TZXRzUmVzcG9uc2USNgoFZmlsZXMYASADKAsyIC5hdXRoemVkLmFw",
- "aS5tYXRlcmlhbGl6ZS52MC5GaWxlUgVmaWxlczLNAwoaV2F0Y2hQZXJtaXNz",
- "aW9uU2V0c1NlcnZpY2USigEKE1dhdGNoUGVybWlzc2lvblNldHMSNi5hdXRo",
- "emVkLmFwaS5tYXRlcmlhbGl6ZS52MC5XYXRjaFBlcm1pc3Npb25TZXRzUmVx",
- "dWVzdBo3LmF1dGh6ZWQuYXBpLm1hdGVyaWFsaXplLnYwLldhdGNoUGVybWlz",
- "c2lvblNldHNSZXNwb25zZSIAMAESjQEKFExvb2t1cFBlcm1pc3Npb25TZXRz",
- "EjcuYXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuTG9va3VwUGVybWlzc2lv",
- "blNldHNSZXF1ZXN0GjguYXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuTG9v",
- "a3VwUGVybWlzc2lvblNldHNSZXNwb25zZSIAMAESkQEKFkRvd25sb2FkUGVy",
- "bWlzc2lvblNldHMSOS5hdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MC5Eb3du",
- "bG9hZFBlcm1pc3Npb25TZXRzUmVxdWVzdBo6LmF1dGh6ZWQuYXBpLm1hdGVy",
- "aWFsaXplLnYwLkRvd25sb2FkUGVybWlzc2lvblNldHNSZXNwb25zZSIAQmIK",
- "HmNvbS5hdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MFABWj5naXRodWIuY29t",
- "L2F1dGh6ZWQvYXV0aHplZC1nby9wcm90by9hdXRoemVkL2FwaS9tYXRlcmlh",
- "bGl6ZS92MGIGcHJvdG8z"));
+ "ZXRzLnByb3RvEhphdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MBoxYXV0aHpl",
+ "ZC9hcGkvbWF0ZXJpYWxpemUvdjAvd2F0Y2hwZXJtaXNzaW9ucy5wcm90bxoZ",
+ "YXV0aHplZC9hcGkvdjEvY29yZS5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3Rp",
+ "bWVzdGFtcC5wcm90byJuChpXYXRjaFBlcm1pc3Npb25TZXRzUmVxdWVzdBJQ",
+ "ChdvcHRpb25hbF9zdGFydGluZ19hZnRlchgBIAEoCzIYLmF1dGh6ZWQuYXBp",
+ "LnYxLlplZFRva2VuUhVvcHRpb25hbFN0YXJ0aW5nQWZ0ZXIirQMKG1dhdGNo",
+ "UGVybWlzc2lvblNldHNSZXNwb25zZRJJCgZjaGFuZ2UYASABKAsyLy5hdXRo",
+ "emVkLmFwaS5tYXRlcmlhbGl6ZS52MC5QZXJtaXNzaW9uU2V0Q2hhbmdlSABS",
+ "BmNoYW5nZRJJChJjb21wbGV0ZWRfcmV2aXNpb24YAiABKAsyGC5hdXRoemVk",
+ "LmFwaS52MS5aZWRUb2tlbkgAUhFjb21wbGV0ZWRSZXZpc2lvbhKBAQofbG9v",
+ "a3VwX3Blcm1pc3Npb25fc2V0c19yZXF1aXJlZBgDIAEoCzI4LmF1dGh6ZWQu",
+ "YXBpLm1hdGVyaWFsaXplLnYwLkxvb2t1cFBlcm1pc3Npb25TZXRzUmVxdWly",
+ "ZWRIAFIcbG9va3VwUGVybWlzc2lvblNldHNSZXF1aXJlZBJoChZicmVha2lu",
+ "Z19zY2hlbWFfY2hhbmdlGAQgASgLMjAuYXV0aHplZC5hcGkubWF0ZXJpYWxp",
+ "emUudjAuQnJlYWtpbmdTY2hlbWFDaGFuZ2VIAFIUYnJlYWtpbmdTY2hlbWFD",
+ "aGFuZ2VCCgoIcmVzcG9uc2Ui3QEKBkN1cnNvchIUCgVsaW1pdBgBIAEoDVIF",
+ "bGltaXQSLgoFdG9rZW4YBCABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tl",
+ "blIFdG9rZW4SJQoOc3RhcnRpbmdfaW5kZXgYBSABKA1SDXN0YXJ0aW5nSW5k",
+ "ZXgSKwoRY29tcGxldGVkX21lbWJlcnMYBiABKAhSEGNvbXBsZXRlZE1lbWJl",
+ "cnMSIQoMc3RhcnRpbmdfa2V5GAcgASgJUgtzdGFydGluZ0tleRIWCgZjdXJz",
+ "b3IYCCABKAlSBmN1cnNvciLoAQobTG9va3VwUGVybWlzc2lvblNldHNSZXF1",
+ "ZXN0EhQKBWxpbWl0GAEgASgNUgVsaW1pdBJKChRvcHRpb25hbF9hdF9yZXZp",
+ "c2lvbhgCIAEoCzIYLmF1dGh6ZWQuYXBpLnYxLlplZFRva2VuUhJvcHRpb25h",
+ "bEF0UmV2aXNpb24SZwoeb3B0aW9uYWxfc3RhcnRpbmdfYWZ0ZXJfY3Vyc29y",
+ "GAQgASgLMiIuYXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuQ3Vyc29yUhtv",
+ "cHRpb25hbFN0YXJ0aW5nQWZ0ZXJDdXJzb3IiowEKHExvb2t1cFBlcm1pc3Np",
+ "b25TZXRzUmVzcG9uc2USRwoGY2hhbmdlGAEgASgLMi8uYXV0aHplZC5hcGku",
+ "bWF0ZXJpYWxpemUudjAuUGVybWlzc2lvblNldENoYW5nZVIGY2hhbmdlEjoK",
+ "BmN1cnNvchgCIAEoCzIiLmF1dGh6ZWQuYXBpLm1hdGVyaWFsaXplLnYwLkN1",
+ "cnNvclIGY3Vyc29yIvwDChNQZXJtaXNzaW9uU2V0Q2hhbmdlEjkKC2F0X3Jl",
+ "dmlzaW9uGAEgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SCmF0UmV2",
+ "aXNpb24SWgoJb3BlcmF0aW9uGAIgASgOMjwuYXV0aHplZC5hcGkubWF0ZXJp",
+ "YWxpemUudjAuUGVybWlzc2lvblNldENoYW5nZS5TZXRPcGVyYXRpb25SCW9w",
+ "ZXJhdGlvbhJHCgpwYXJlbnRfc2V0GAMgASgLMiguYXV0aHplZC5hcGkubWF0",
+ "ZXJpYWxpemUudjAuU2V0UmVmZXJlbmNlUglwYXJlbnRTZXQSRwoJY2hpbGRf",
+ "c2V0GAQgASgLMiguYXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuU2V0UmVm",
+ "ZXJlbmNlSABSCGNoaWxkU2V0ElAKDGNoaWxkX21lbWJlchgFIAEoCzIrLmF1",
+ "dGh6ZWQuYXBpLm1hdGVyaWFsaXplLnYwLk1lbWJlclJlZmVyZW5jZUgAUgtj",
+ "aGlsZE1lbWJlciJhCgxTZXRPcGVyYXRpb24SHQoZU0VUX09QRVJBVElPTl9V",
+ "TlNQRUNJRklFRBAAEhcKE1NFVF9PUEVSQVRJT05fQURERUQQARIZChVTRVRf",
+ "T1BFUkFUSU9OX1JFTU9WRUQQAkIHCgVjaGlsZCKCAQoMU2V0UmVmZXJlbmNl",
+ "Eh8KC29iamVjdF90eXBlGAEgASgJUgpvYmplY3RUeXBlEhsKCW9iamVjdF9p",
+ "ZBgCIAEoCVIIb2JqZWN0SWQSNAoWcGVybWlzc2lvbl9vcl9yZWxhdGlvbhgD",
+ "IAEoCVIUcGVybWlzc2lvbk9yUmVsYXRpb24ilgEKD01lbWJlclJlZmVyZW5j",
+ "ZRIfCgtvYmplY3RfdHlwZRgBIAEoCVIKb2JqZWN0VHlwZRIbCglvYmplY3Rf",
+ "aWQYAiABKAlSCG9iamVjdElkEkUKH29wdGlvbmFsX3Blcm1pc3Npb25fb3Jf",
+ "cmVsYXRpb24YAyABKAlSHG9wdGlvbmFsUGVybWlzc2lvbk9yUmVsYXRpb24i",
+ "ZgocTG9va3VwUGVybWlzc2lvblNldHNSZXF1aXJlZBJGChJyZXF1aXJlZF9s",
+ "b29rdXBfYXQYASABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tlblIQcmVx",
+ "dWlyZWRMb29rdXBBdCKvAQoUQnJlYWtpbmdTY2hlbWFDaGFuZ2USNQoJY2hh",
+ "bmdlX2F0GAEgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SCGNoYW5n",
+ "ZUF0EmAKFGFmZmVjdGVkX3Blcm1pc3Npb25zGAIgAygLMi0uYXV0aHplZC5h",
+ "cGkubWF0ZXJpYWxpemUudjAuV2F0Y2hlZFBlcm1pc3Npb25SE2FmZmVjdGVk",
+ "UGVybWlzc2lvbnMiawodRG93bmxvYWRQZXJtaXNzaW9uU2V0c1JlcXVlc3QS",
+ "SgoUb3B0aW9uYWxfYXRfcmV2aXNpb24YASABKAsyGC5hdXRoemVkLmFwaS52",
+ "MS5aZWRUb2tlblISb3B0aW9uYWxBdFJldmlzaW9uIiwKBEZpbGUSEgoEbmFt",
+ "ZRgBIAEoCVIEbmFtZRIQCgN1cmwYAiABKAlSA3VybCLNAQoeRG93bmxvYWRQ",
+ "ZXJtaXNzaW9uU2V0c1Jlc3BvbnNlEjYKBWZpbGVzGAEgAygLMiAuYXV0aHpl",
+ "ZC5hcGkubWF0ZXJpYWxpemUudjAuRmlsZVIFZmlsZXMSOAoJdGltZXN0YW1w",
+ "GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIJdGltZXN0YW1w",
+ "EjkKC2F0X3JldmlzaW9uGAMgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9r",
+ "ZW5SCmF0UmV2aXNpb24yzQMKGldhdGNoUGVybWlzc2lvblNldHNTZXJ2aWNl",
+ "EooBChNXYXRjaFBlcm1pc3Npb25TZXRzEjYuYXV0aHplZC5hcGkubWF0ZXJp",
+ "YWxpemUudjAuV2F0Y2hQZXJtaXNzaW9uU2V0c1JlcXVlc3QaNy5hdXRoemVk",
+ "LmFwaS5tYXRlcmlhbGl6ZS52MC5XYXRjaFBlcm1pc3Npb25TZXRzUmVzcG9u",
+ "c2UiADABEo0BChRMb29rdXBQZXJtaXNzaW9uU2V0cxI3LmF1dGh6ZWQuYXBp",
+ "Lm1hdGVyaWFsaXplLnYwLkxvb2t1cFBlcm1pc3Npb25TZXRzUmVxdWVzdBo4",
+ "LmF1dGh6ZWQuYXBpLm1hdGVyaWFsaXplLnYwLkxvb2t1cFBlcm1pc3Npb25T",
+ "ZXRzUmVzcG9uc2UiADABEpEBChZEb3dubG9hZFBlcm1pc3Npb25TZXRzEjku",
+ "YXV0aHplZC5hcGkubWF0ZXJpYWxpemUudjAuRG93bmxvYWRQZXJtaXNzaW9u",
+ "U2V0c1JlcXVlc3QaOi5hdXRoemVkLmFwaS5tYXRlcmlhbGl6ZS52MC5Eb3du",
+ "bG9hZFBlcm1pc3Npb25TZXRzUmVzcG9uc2UiAEJiCh5jb20uYXV0aHplZC5h",
+ "cGkubWF0ZXJpYWxpemUudjBQAVo+Z2l0aHViLmNvbS9hdXRoemVkL2F1dGh6",
+ "ZWQtZ28vcHJvdG8vYXV0aHplZC9hcGkvbWF0ZXJpYWxpemUvdjBiBnByb3Rv",
+ "Mw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::Authzed.Api.V1.CoreReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::Authzed.Api.Materialize.V0.WatchpermissionsReflection.Descriptor, global::Authzed.Api.V1.CoreReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.WatchPermissionSetsRequest), global::Authzed.Api.Materialize.V0.WatchPermissionSetsRequest.Parser, new[]{ "OptionalStartingAfter" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.WatchPermissionSetsResponse), global::Authzed.Api.Materialize.V0.WatchPermissionSetsResponse.Parser, new[]{ "Change", "CompletedRevision", "LookupPermissionSetsRequired", "BreakingSchemaChange" }, new[]{ "Response" }, null, null, null),
@@ -105,10 +112,10 @@ static WatchpermissionsetsReflection() {
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.SetReference), global::Authzed.Api.Materialize.V0.SetReference.Parser, new[]{ "ObjectType", "ObjectId", "PermissionOrRelation" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.MemberReference), global::Authzed.Api.Materialize.V0.MemberReference.Parser, new[]{ "ObjectType", "ObjectId", "OptionalPermissionOrRelation" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.LookupPermissionSetsRequired), global::Authzed.Api.Materialize.V0.LookupPermissionSetsRequired.Parser, new[]{ "RequiredLookupAt" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.BreakingSchemaChange), global::Authzed.Api.Materialize.V0.BreakingSchemaChange.Parser, new[]{ "ChangeAt" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.BreakingSchemaChange), global::Authzed.Api.Materialize.V0.BreakingSchemaChange.Parser, new[]{ "ChangeAt", "AffectedPermissions" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.DownloadPermissionSetsRequest), global::Authzed.Api.Materialize.V0.DownloadPermissionSetsRequest.Parser, new[]{ "OptionalAtRevision" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.File), global::Authzed.Api.Materialize.V0.File.Parser, new[]{ "Name", "Url" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.DownloadPermissionSetsResponse), global::Authzed.Api.Materialize.V0.DownloadPermissionSetsResponse.Parser, new[]{ "Files" }, null, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.Materialize.V0.DownloadPermissionSetsResponse), global::Authzed.Api.Materialize.V0.DownloadPermissionSetsResponse.Parser, new[]{ "Files", "Timestamp", "AtRevision" }, null, null, null, null)
}));
}
#endregion
@@ -2998,6 +3005,7 @@ public BreakingSchemaChange() {
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public BreakingSchemaChange(BreakingSchemaChange other) : this() {
changeAt_ = other.changeAt_ != null ? other.changeAt_.Clone() : null;
+ affectedPermissions_ = other.affectedPermissions_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -3022,6 +3030,20 @@ public BreakingSchemaChange Clone() {
}
}
+ /// Field number for the "affected_permissions" field.
+ public const int AffectedPermissionsFieldNumber = 2;
+ private static readonly pb::FieldCodec _repeated_affectedPermissions_codec
+ = pb::FieldCodec.ForMessage(18, global::Authzed.Api.Materialize.V0.WatchedPermission.Parser);
+ private readonly pbc::RepeatedField affectedPermissions_ = new pbc::RepeatedField();
+ ///
+ /// affected_permissions lists all the watched permissions that were directly affected by the breaking schema change.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public pbc::RepeatedField AffectedPermissions {
+ get { return affectedPermissions_; }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
@@ -3038,6 +3060,7 @@ public bool Equals(BreakingSchemaChange other) {
return true;
}
if (!object.Equals(ChangeAt, other.ChangeAt)) return false;
+ if(!affectedPermissions_.Equals(other.affectedPermissions_)) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -3046,6 +3069,7 @@ public bool Equals(BreakingSchemaChange other) {
public override int GetHashCode() {
int hash = 1;
if (changeAt_ != null) hash ^= ChangeAt.GetHashCode();
+ hash ^= affectedPermissions_.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -3068,6 +3092,7 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(10);
output.WriteMessage(ChangeAt);
}
+ affectedPermissions_.WriteTo(output, _repeated_affectedPermissions_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -3082,6 +3107,7 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(10);
output.WriteMessage(ChangeAt);
}
+ affectedPermissions_.WriteTo(ref output, _repeated_affectedPermissions_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -3095,6 +3121,7 @@ public int CalculateSize() {
if (changeAt_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(ChangeAt);
}
+ size += affectedPermissions_.CalculateSize(_repeated_affectedPermissions_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -3113,6 +3140,7 @@ public void MergeFrom(BreakingSchemaChange other) {
}
ChangeAt.MergeFrom(other.ChangeAt);
}
+ affectedPermissions_.Add(other.affectedPermissions_);
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -3139,6 +3167,10 @@ public void MergeFrom(pb::CodedInputStream input) {
input.ReadMessage(ChangeAt);
break;
}
+ case 18: {
+ affectedPermissions_.AddEntriesFrom(input, _repeated_affectedPermissions_codec);
+ break;
+ }
}
}
#endif
@@ -3165,6 +3197,10 @@ public void MergeFrom(pb::CodedInputStream input) {
input.ReadMessage(ChangeAt);
break;
}
+ case 18: {
+ affectedPermissions_.AddEntriesFrom(ref input, _repeated_affectedPermissions_codec);
+ break;
+ }
}
}
}
@@ -3660,6 +3696,8 @@ public DownloadPermissionSetsResponse() {
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public DownloadPermissionSetsResponse(DownloadPermissionSetsResponse other) : this() {
files_ = other.files_.Clone();
+ timestamp_ = other.timestamp_ != null ? other.timestamp_.Clone() : null;
+ atRevision_ = other.atRevision_ != null ? other.atRevision_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -3683,6 +3721,39 @@ public DownloadPermissionSetsResponse Clone() {
get { return files_; }
}
+ /// Field number for the "timestamp" field.
+ public const int TimestampFieldNumber = 2;
+ private global::Google.Protobuf.WellKnownTypes.Timestamp timestamp_;
+ ///
+ /// timestamp represents the time associated with the returned data revision.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Google.Protobuf.WellKnownTypes.Timestamp Timestamp {
+ get { return timestamp_; }
+ set {
+ timestamp_ = value;
+ }
+ }
+
+ /// Field number for the "at_revision" field.
+ public const int AtRevisionFieldNumber = 3;
+ private global::Authzed.Api.V1.ZedToken atRevision_;
+ ///
+ /// at_revision is the snapshot revision the returned files were produced at,
+ /// encoded as a ZedToken. Consumers should pass this token to
+ /// WatchPermissionSets as optional_starting_after to resume the stream
+ /// immediately after the snapshot without leaving gaps in event history.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Authzed.Api.V1.ZedToken AtRevision {
+ get { return atRevision_; }
+ set {
+ atRevision_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
@@ -3699,6 +3770,8 @@ public bool Equals(DownloadPermissionSetsResponse other) {
return true;
}
if(!files_.Equals(other.files_)) return false;
+ if (!object.Equals(Timestamp, other.Timestamp)) return false;
+ if (!object.Equals(AtRevision, other.AtRevision)) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -3707,6 +3780,8 @@ public bool Equals(DownloadPermissionSetsResponse other) {
public override int GetHashCode() {
int hash = 1;
hash ^= files_.GetHashCode();
+ if (timestamp_ != null) hash ^= Timestamp.GetHashCode();
+ if (atRevision_ != null) hash ^= AtRevision.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -3726,6 +3801,14 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawMessage(this);
#else
files_.WriteTo(output, _repeated_files_codec);
+ if (timestamp_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Timestamp);
+ }
+ if (atRevision_ != null) {
+ output.WriteRawTag(26);
+ output.WriteMessage(AtRevision);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -3737,6 +3820,14 @@ public void WriteTo(pb::CodedOutputStream output) {
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
files_.WriteTo(ref output, _repeated_files_codec);
+ if (timestamp_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Timestamp);
+ }
+ if (atRevision_ != null) {
+ output.WriteRawTag(26);
+ output.WriteMessage(AtRevision);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -3748,6 +3839,12 @@ public void WriteTo(pb::CodedOutputStream output) {
public int CalculateSize() {
int size = 0;
size += files_.CalculateSize(_repeated_files_codec);
+ if (timestamp_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Timestamp);
+ }
+ if (atRevision_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(AtRevision);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -3761,6 +3858,18 @@ public void MergeFrom(DownloadPermissionSetsResponse other) {
return;
}
files_.Add(other.files_);
+ if (other.timestamp_ != null) {
+ if (timestamp_ == null) {
+ Timestamp = new global::Google.Protobuf.WellKnownTypes.Timestamp();
+ }
+ Timestamp.MergeFrom(other.Timestamp);
+ }
+ if (other.atRevision_ != null) {
+ if (atRevision_ == null) {
+ AtRevision = new global::Authzed.Api.V1.ZedToken();
+ }
+ AtRevision.MergeFrom(other.AtRevision);
+ }
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -3784,6 +3893,20 @@ public void MergeFrom(pb::CodedInputStream input) {
files_.AddEntriesFrom(input, _repeated_files_codec);
break;
}
+ case 18: {
+ if (timestamp_ == null) {
+ Timestamp = new global::Google.Protobuf.WellKnownTypes.Timestamp();
+ }
+ input.ReadMessage(Timestamp);
+ break;
+ }
+ case 26: {
+ if (atRevision_ == null) {
+ AtRevision = new global::Authzed.Api.V1.ZedToken();
+ }
+ input.ReadMessage(AtRevision);
+ break;
+ }
}
}
#endif
@@ -3807,6 +3930,20 @@ public void MergeFrom(pb::CodedInputStream input) {
files_.AddEntriesFrom(ref input, _repeated_files_codec);
break;
}
+ case 18: {
+ if (timestamp_ == null) {
+ Timestamp = new global::Google.Protobuf.WellKnownTypes.Timestamp();
+ }
+ input.ReadMessage(Timestamp);
+ break;
+ }
+ case 26: {
+ if (atRevision_ == null) {
+ AtRevision = new global::Authzed.Api.V1.ZedToken();
+ }
+ input.ReadMessage(AtRevision);
+ break;
+ }
}
}
}
diff --git a/src/Authzed.Net/Authzed/Api/V1/Core.cs b/src/Authzed.Net/Authzed/Api/V1/Core.cs
index 69ff12c..e30827e 100644
--- a/src/Authzed.Net/Authzed/Api/V1/Core.cs
+++ b/src/Authzed.Net/Authzed/Api/V1/Core.cs
@@ -70,20 +70,20 @@ static CoreReflection() {
"ZWN0U2V0SABSBGxlYWYSSAoPZXhwYW5kZWRfb2JqZWN0GAMgASgLMh8uYXV0",
"aHplZC5hcGkudjEuT2JqZWN0UmVmZXJlbmNlUg5leHBhbmRlZE9iamVjdBIr",
"ChFleHBhbmRlZF9yZWxhdGlvbhgEIAEoCVIQZXhwYW5kZWRSZWxhdGlvbkIV",
- "Cgl0cmVlX3R5cGUSCPhCAbpIAggBIswCChNBbGdlYnJhaWNTdWJqZWN0U2V0",
+ "Cgl0cmVlX3R5cGUSCPhCAbpIAggBIsECChNBbGdlYnJhaWNTdWJqZWN0U2V0",
"EmEKCW9wZXJhdGlvbhgBIAEoDjItLmF1dGh6ZWQuYXBpLnYxLkFsZ2VicmFp",
"Y1N1YmplY3RTZXQuT3BlcmF0aW9uQhT6QgeCAQQQASAAukgHggEEEAEgAFIJ",
- "b3BlcmF0aW9uEmAKCGNoaWxkcmVuGAIgAygLMiouYXV0aHplZC5hcGkudjEu",
- "UGVybWlzc2lvblJlbGF0aW9uc2hpcFRyZWVCGPpCCpIBByIFigECEAG6SAiS",
- "AQUiA8gBAVIIY2hpbGRyZW4icAoJT3BlcmF0aW9uEhkKFU9QRVJBVElPTl9V",
- "TlNQRUNJRklFRBAAEhMKD09QRVJBVElPTl9VTklPThABEhoKFk9QRVJBVElP",
- "Tl9JTlRFUlNFQ1RJT04QAhIXChNPUEVSQVRJT05fRVhDTFVTSU9OEAMiUAoQ",
- "RGlyZWN0U3ViamVjdFNldBI8CghzdWJqZWN0cxgBIAMoCzIgLmF1dGh6ZWQu",
- "YXBpLnYxLlN1YmplY3RSZWZlcmVuY2VSCHN1YmplY3RzIl8KEVBhcnRpYWxD",
- "YXZlYXRJbmZvEkoKGG1pc3NpbmdfcmVxdWlyZWRfY29udGV4dBgBIAMoCUIQ",
- "+kIFkgECCAG6SAWSAQIIAVIWbWlzc2luZ1JlcXVpcmVkQ29udGV4dEJKChJj",
- "b20uYXV0aHplZC5hcGkudjFQAVoyZ2l0aHViLmNvbS9hdXRoemVkL2F1dGh6",
- "ZWQtZ28vcHJvdG8vYXV0aHplZC9hcGkvdjFiBnByb3RvMw=="));
+ "b3BlcmF0aW9uElUKCGNoaWxkcmVuGAIgAygLMiouYXV0aHplZC5hcGkudjEu",
+ "UGVybWlzc2lvblJlbGF0aW9uc2hpcFRyZWVCDfpCCpIBByIFigECEAFSCGNo",
+ "aWxkcmVuInAKCU9wZXJhdGlvbhIZChVPUEVSQVRJT05fVU5TUEVDSUZJRUQQ",
+ "ABITCg9PUEVSQVRJT05fVU5JT04QARIaChZPUEVSQVRJT05fSU5URVJTRUNU",
+ "SU9OEAISFwoTT1BFUkFUSU9OX0VYQ0xVU0lPThADIlAKEERpcmVjdFN1Ympl",
+ "Y3RTZXQSPAoIc3ViamVjdHMYASADKAsyIC5hdXRoemVkLmFwaS52MS5TdWJq",
+ "ZWN0UmVmZXJlbmNlUghzdWJqZWN0cyJfChFQYXJ0aWFsQ2F2ZWF0SW5mbxJK",
+ "ChhtaXNzaW5nX3JlcXVpcmVkX2NvbnRleHQYASADKAlCEPpCBZIBAggBukgF",
+ "kgECCAFSFm1pc3NpbmdSZXF1aXJlZENvbnRleHRCSgoSY29tLmF1dGh6ZWQu",
+ "YXBpLnYxUAFaMmdpdGh1Yi5jb20vYXV0aHplZC9hdXRoemVkLWdvL3Byb3Rv",
+ "L2F1dGh6ZWQvYXBpL3YxYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Buf.Validate.ValidateReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Validate.ValidateReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
diff --git a/src/Authzed.Net/Authzed/Api/V1/ErrorReason.cs b/src/Authzed.Net/Authzed/Api/V1/ErrorReason.cs
index 9b2180a..7bca51e 100644
--- a/src/Authzed.Net/Authzed/Api/V1/ErrorReason.cs
+++ b/src/Authzed.Net/Authzed/Api/V1/ErrorReason.cs
@@ -25,7 +25,7 @@ static ErrorReasonReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CiFhdXRoemVkL2FwaS92MS9lcnJvcl9yZWFzb24ucHJvdG8SDmF1dGh6ZWQu",
- "YXBpLnYxKqIKCgtFcnJvclJlYXNvbhIcChhFUlJPUl9SRUFTT05fVU5TUEVD",
+ "YXBpLnYxKssKCgtFcnJvclJlYXNvbhIcChhFUlJPUl9SRUFTT05fVU5TUEVD",
"SUZJRUQQABIjCh9FUlJPUl9SRUFTT05fU0NIRU1BX1BBUlNFX0VSUk9SEAES",
"IgoeRVJST1JfUkVBU09OX1NDSEVNQV9UWVBFX0VSUk9SEAISIwofRVJST1Jf",
"UkVBU09OX1VOS05PV05fREVGSU5JVElPThADEi8KK0VSUk9SX1JFQVNPTl9V",
@@ -54,9 +54,10 @@ static ErrorReasonReflection() {
"VEVSX0FMUkVBRFlfUkVHSVNURVJFRBAaEicKI0VSUk9SX1JFQVNPTl9DT1VO",
"VEVSX05PVF9SRUdJU1RFUkVEEBsSJQohRVJST1JfUkVBU09OX1dJTERDQVJE",
"X05PVF9BTExPV0VEEBwSLworRVJST1JfUkVBU09OX1RSQU5TQUNUSU9OX01F",
- "VEFEQVRBX1RPT19MQVJHRRAdQkoKEmNvbS5hdXRoemVkLmFwaS52MVABWjJn",
- "aXRodWIuY29tL2F1dGh6ZWQvYXV0aHplZC1nby9wcm90by9hdXRoemVkL2Fw",
- "aS92MWIGcHJvdG8z"));
+ "VEFEQVRBX1RPT19MQVJHRRAdEicKI0VSUk9SX1JFQVNPTl9EQVRBU1RPUkVf",
+ "Tk9UX01JR1JBVEVEEB5CSgoSY29tLmF1dGh6ZWQuYXBpLnYxUAFaMmdpdGh1",
+ "Yi5jb20vYXV0aHplZC9hdXRoemVkLWdvL3Byb3RvL2F1dGh6ZWQvYXBpL3Yx",
+ "YgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Authzed.Api.V1.ErrorReason), }, null, null));
@@ -506,6 +507,20 @@ public enum ErrorReason {
/// }
///
[pbr::OriginalName("ERROR_REASON_TRANSACTION_METADATA_TOO_LARGE")] TransactionMetadataTooLarge = 29,
+ ///
+ /// The request failed because the datastore has not been migrated.
+ /// This typically indicates that the `spicedb datastore migrate` command
+ /// has not been run against the backing database.
+ ///
+ /// Example of an ErrorInfo:
+ ///
+ /// {
+ /// "reason": "ERROR_REASON_DATASTORE_NOT_MIGRATED",
+ /// "domain": "authzed.com",
+ /// "metadata": {}
+ /// }
+ ///
+ [pbr::OriginalName("ERROR_REASON_DATASTORE_NOT_MIGRATED")] DatastoreNotMigrated = 30,
}
#endregion
diff --git a/src/Authzed.Net/Authzed/Api/V1/ExperimentalService.cs b/src/Authzed.Net/Authzed/Api/V1/ExperimentalService.cs
index 81d1757..37978cc 100644
--- a/src/Authzed.Net/Authzed/Api/V1/ExperimentalService.cs
+++ b/src/Authzed.Net/Authzed/Api/V1/ExperimentalService.cs
@@ -53,209 +53,208 @@ static ExperimentalServiceReflection() {
"bWUYASABKAlCVPpCJ3IlKEAyIV4oW2Etel1bYS16MC05X117MSw2Mn1bYS16",
"MC05XSk/JLpIJ3IlKEAyIV4oW2Etel1bYS16MC05X117MSw2Mn1bYS16MC05",
"XSk/JFIEbmFtZSIzCjFFeHBlcmltZW50YWxVbnJlZ2lzdGVyUmVsYXRpb25z",
- "aGlwQ291bnRlclJlc3BvbnNlIr0BChpCdWxrQ2hlY2tQZXJtaXNzaW9uUmVx",
+ "aGlwQ291bnRlclJlc3BvbnNlIrIBChpCdWxrQ2hlY2tQZXJtaXNzaW9uUmVx",
"dWVzdBI9Cgtjb25zaXN0ZW5jeRgBIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkNv",
- "bnNpc3RlbmN5Ugtjb25zaXN0ZW5jeRJgCgVpdGVtcxgCIAMoCzIuLmF1dGh6",
- "ZWQuYXBpLnYxLkJ1bGtDaGVja1Blcm1pc3Npb25SZXF1ZXN0SXRlbUIaGAH6",
- "QgqSAQciBYoBAhABukgIkgEFIgPIAQFSBWl0ZW1zIvICCh5CdWxrQ2hlY2tQ",
- "ZXJtaXNzaW9uUmVxdWVzdEl0ZW0SSwoIcmVzb3VyY2UYASABKAsyHy5hdXRo",
- "emVkLmFwaS52MS5PYmplY3RSZWZlcmVuY2VCDvpCBYoBAhABukgDyAEBUghy",
- "ZXNvdXJjZRJ0CgpwZXJtaXNzaW9uGAIgASgJQlT6QidyJShAMiFeKFthLXpd",
- "W2EtejAtOV9dezEsNjJ9W2EtejAtOV0pPyS6SCdyJShAMiFeKFthLXpdW2Et",
- "ejAtOV9dezEsNjJ9W2EtejAtOV0pPyRSCnBlcm1pc3Npb24SSgoHc3ViamVj",
- "dBgDIAEoCzIgLmF1dGh6ZWQuYXBpLnYxLlN1YmplY3RSZWZlcmVuY2VCDvpC",
- "BYoBAhABukgDyAEBUgdzdWJqZWN0EkEKB2NvbnRleHQYBCABKAsyFy5nb29n",
- "bGUucHJvdG9idWYuU3RydWN0Qg76QgWKAQIQALpIA8gBAFIHY29udGV4dCK/",
- "AQobQnVsa0NoZWNrUGVybWlzc2lvblJlc3BvbnNlEkcKCmNoZWNrZWRfYXQY",
- "ASABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tlbkIO+kIFigECEAC6SAPI",
- "AQBSCWNoZWNrZWRBdBJXCgVwYWlycxgCIAMoCzInLmF1dGh6ZWQuYXBpLnYx",
- "LkJ1bGtDaGVja1Blcm1pc3Npb25QYWlyQhj6QgqSAQciBYoBAhABukgIkgEF",
- "IgPIAQFSBXBhaXJzIuIBChdCdWxrQ2hlY2tQZXJtaXNzaW9uUGFpchJICgdy",
- "ZXF1ZXN0GAEgASgLMi4uYXV0aHplZC5hcGkudjEuQnVsa0NoZWNrUGVybWlz",
- "c2lvblJlcXVlc3RJdGVtUgdyZXF1ZXN0EkUKBGl0ZW0YAiABKAsyLy5hdXRo",
- "emVkLmFwaS52MS5CdWxrQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VJdGVtSABS",
- "BGl0ZW0SKgoFZXJyb3IYAyABKAsyEi5nb29nbGUucnBjLlN0YXR1c0gAUgVl",
- "cnJvckIKCghyZXNwb25zZSL6AQofQnVsa0NoZWNrUGVybWlzc2lvblJlc3Bv",
- "bnNlSXRlbRJ0Cg5wZXJtaXNzaW9uc2hpcBgBIAEoDjI2LmF1dGh6ZWQuYXBp",
- "LnYxLkNoZWNrUGVybWlzc2lvblJlc3BvbnNlLlBlcm1pc3Npb25zaGlwQhT6",
- "QgeCAQQQASAAukgHggEEEAEgAFIOcGVybWlzc2lvbnNoaXASYQoTcGFydGlh",
- "bF9jYXZlYXRfaW5mbxgCIAEoCzIhLmF1dGh6ZWQuYXBpLnYxLlBhcnRpYWxD",
- "YXZlYXRJbmZvQg76QgWKAQIQALpIA8gBAFIRcGFydGlhbENhdmVhdEluZm8i",
- "fgoeQnVsa0ltcG9ydFJlbGF0aW9uc2hpcHNSZXF1ZXN0ElwKDXJlbGF0aW9u",
- "c2hpcHMYASADKAsyHC5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBCGPpC",
- "CpIBByIFigECEAG6SAiSAQUiA8gBAVINcmVsYXRpb25zaGlwcyJACh9CdWxr",
- "SW1wb3J0UmVsYXRpb25zaGlwc1Jlc3BvbnNlEh0KCm51bV9sb2FkZWQYASAB",
- "KARSCW51bUxvYWRlZCK9AgoeQnVsa0V4cG9ydFJlbGF0aW9uc2hpcHNSZXF1",
- "ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsuYXV0aHplZC5hcGkudjEuQ29u",
- "c2lzdGVuY3lSC2NvbnNpc3RlbmN5EjUKDm9wdGlvbmFsX2xpbWl0GAIgASgN",
- "Qg76QgQqAigAukgEKgIoAFINb3B0aW9uYWxMaW1pdBI/Cg9vcHRpb25hbF9j",
- "dXJzb3IYAyABKAsyFi5hdXRoemVkLmFwaS52MS5DdXJzb3JSDm9wdGlvbmFs",
- "Q3Vyc29yEmQKHG9wdGlvbmFsX3JlbGF0aW9uc2hpcF9maWx0ZXIYBCABKAsy",
- "Ii5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBGaWx0ZXJSGm9wdGlvbmFs",
- "UmVsYXRpb25zaGlwRmlsdGVyIq0BCh9CdWxrRXhwb3J0UmVsYXRpb25zaGlw",
- "c1Jlc3BvbnNlEkYKE2FmdGVyX3Jlc3VsdF9jdXJzb3IYASABKAsyFi5hdXRo",
- "emVkLmFwaS52MS5DdXJzb3JSEWFmdGVyUmVzdWx0Q3Vyc29yEkIKDXJlbGF0",
- "aW9uc2hpcHMYAiADKAsyHC5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBS",
- "DXJlbGF0aW9uc2hpcHMirQEKIEV4cGVyaW1lbnRhbFJlZmxlY3RTY2hlbWFS",
- "ZXF1ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsuYXV0aHplZC5hcGkudjEu",
- "Q29uc2lzdGVuY3lSC2NvbnNpc3RlbmN5EkoKEG9wdGlvbmFsX2ZpbHRlcnMY",
- "AiADKAsyHy5hdXRoemVkLmFwaS52MS5FeHBTY2hlbWFGaWx0ZXJSD29wdGlv",
- "bmFsRmlsdGVycyLMAQohRXhwZXJpbWVudGFsUmVmbGVjdFNjaGVtYVJlc3Bv",
- "bnNlEj8KC2RlZmluaXRpb25zGAEgAygLMh0uYXV0aHplZC5hcGkudjEuRXhw",
- "RGVmaW5pdGlvblILZGVmaW5pdGlvbnMSMwoHY2F2ZWF0cxgCIAMoCzIZLmF1",
- "dGh6ZWQuYXBpLnYxLkV4cENhdmVhdFIHY2F2ZWF0cxIxCgdyZWFkX2F0GAMg",
- "ASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SBnJlYWRBdCKhAgoPRXhw",
- "U2NoZW1hRmlsdGVyEkUKH29wdGlvbmFsX2RlZmluaXRpb25fbmFtZV9maWx0",
- "ZXIYASABKAlSHG9wdGlvbmFsRGVmaW5pdGlvbk5hbWVGaWx0ZXISPQobb3B0",
- "aW9uYWxfY2F2ZWF0X25hbWVfZmlsdGVyGAIgASgJUhhvcHRpb25hbENhdmVh",
- "dE5hbWVGaWx0ZXISQQodb3B0aW9uYWxfcmVsYXRpb25fbmFtZV9maWx0ZXIY",
- "AyABKAlSGm9wdGlvbmFsUmVsYXRpb25OYW1lRmlsdGVyEkUKH29wdGlvbmFs",
- "X3Blcm1pc3Npb25fbmFtZV9maWx0ZXIYBCABKAlSHG9wdGlvbmFsUGVybWlz",
- "c2lvbk5hbWVGaWx0ZXIiuQEKDUV4cERlZmluaXRpb24SEgoEbmFtZRgBIAEo",
- "CVIEbmFtZRIYCgdjb21tZW50GAIgASgJUgdjb21tZW50EjkKCXJlbGF0aW9u",
- "cxgDIAMoCzIbLmF1dGh6ZWQuYXBpLnYxLkV4cFJlbGF0aW9uUglyZWxhdGlv",
- "bnMSPwoLcGVybWlzc2lvbnMYBCADKAsyHS5hdXRoemVkLmFwaS52MS5FeHBQ",
- "ZXJtaXNzaW9uUgtwZXJtaXNzaW9ucyKdAQoJRXhwQ2F2ZWF0EhIKBG5hbWUY",
- "ASABKAlSBG5hbWUSGAoHY29tbWVudBgCIAEoCVIHY29tbWVudBJCCgpwYXJh",
- "bWV0ZXJzGAMgAygLMiIuYXV0aHplZC5hcGkudjEuRXhwQ2F2ZWF0UGFyYW1l",
- "dGVyUgpwYXJhbWV0ZXJzEh4KCmV4cHJlc3Npb24YBCABKAlSCmV4cHJlc3Np",
- "b24iagoSRXhwQ2F2ZWF0UGFyYW1ldGVyEhIKBG5hbWUYASABKAlSBG5hbWUS",
- "EgoEdHlwZRgCIAEoCVIEdHlwZRIsChJwYXJlbnRfY2F2ZWF0X25hbWUYAyAB",
- "KAlSEHBhcmVudENhdmVhdE5hbWUiuAEKC0V4cFJlbGF0aW9uEhIKBG5hbWUY",
- "ASABKAlSBG5hbWUSGAoHY29tbWVudBgCIAEoCVIHY29tbWVudBI0ChZwYXJl",
- "bnRfZGVmaW5pdGlvbl9uYW1lGAMgASgJUhRwYXJlbnREZWZpbml0aW9uTmFt",
- "ZRJFCg1zdWJqZWN0X3R5cGVzGAQgAygLMiAuYXV0aHplZC5hcGkudjEuRXhw",
- "VHlwZVJlZmVyZW5jZVIMc3ViamVjdFR5cGVzIqECChBFeHBUeXBlUmVmZXJl",
- "bmNlEjYKF3N1YmplY3RfZGVmaW5pdGlvbl9uYW1lGAEgASgJUhVzdWJqZWN0",
- "RGVmaW5pdGlvbk5hbWUSMAoUb3B0aW9uYWxfY2F2ZWF0X25hbWUYAiABKAlS",
- "Em9wdGlvbmFsQ2F2ZWF0TmFtZRIwChNpc190ZXJtaW5hbF9zdWJqZWN0GAMg",
- "ASgISABSEWlzVGVybWluYWxTdWJqZWN0EjYKFm9wdGlvbmFsX3JlbGF0aW9u",
- "X25hbWUYBCABKAlIAFIUb3B0aW9uYWxSZWxhdGlvbk5hbWUSLgoSaXNfcHVi",
- "bGljX3dpbGRjYXJkGAUgASgISABSEGlzUHVibGljV2lsZGNhcmRCCQoHdHlw",
- "ZXJlZiJzCg1FeHBQZXJtaXNzaW9uEhIKBG5hbWUYASABKAlSBG5hbWUSGAoH",
- "Y29tbWVudBgCIAEoCVIHY29tbWVudBI0ChZwYXJlbnRfZGVmaW5pdGlvbl9u",
- "YW1lGAMgASgJUhRwYXJlbnREZWZpbml0aW9uTmFtZSL+AQooRXhwZXJpbWVu",
- "dGFsQ29tcHV0YWJsZVBlcm1pc3Npb25zUmVxdWVzdBI9Cgtjb25zaXN0ZW5j",
- "eRgBIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkNvbnNpc3RlbmN5Ugtjb25zaXN0",
- "ZW5jeRInCg9kZWZpbml0aW9uX25hbWUYAiABKAlSDmRlZmluaXRpb25OYW1l",
- "EiMKDXJlbGF0aW9uX25hbWUYAyABKAlSDHJlbGF0aW9uTmFtZRJFCh9vcHRp",
- "b25hbF9kZWZpbml0aW9uX25hbWVfZmlsdGVyGAQgASgJUhxvcHRpb25hbERl",
- "ZmluaXRpb25OYW1lRmlsdGVyIokBChRFeHBSZWxhdGlvblJlZmVyZW5jZRIn",
- "Cg9kZWZpbml0aW9uX25hbWUYASABKAlSDmRlZmluaXRpb25OYW1lEiMKDXJl",
- "bGF0aW9uX25hbWUYAiABKAlSDHJlbGF0aW9uTmFtZRIjCg1pc19wZXJtaXNz",
- "aW9uGAMgASgIUgxpc1Blcm1pc3Npb24ipgEKKUV4cGVyaW1lbnRhbENvbXB1",
- "dGFibGVQZXJtaXNzaW9uc1Jlc3BvbnNlEkYKC3Blcm1pc3Npb25zGAEgAygL",
- "MiQuYXV0aHplZC5hcGkudjEuRXhwUmVsYXRpb25SZWZlcmVuY2VSC3Blcm1p",
- "c3Npb25zEjEKB3JlYWRfYXQYAiABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRU",
- "b2tlblIGcmVhZEF0IrgBCiVFeHBlcmltZW50YWxEZXBlbmRlbnRSZWxhdGlv",
- "bnNSZXF1ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsuYXV0aHplZC5hcGku",
- "djEuQ29uc2lzdGVuY3lSC2NvbnNpc3RlbmN5EicKD2RlZmluaXRpb25fbmFt",
- "ZRgCIAEoCVIOZGVmaW5pdGlvbk5hbWUSJwoPcGVybWlzc2lvbl9uYW1lGAMg",
- "ASgJUg5wZXJtaXNzaW9uTmFtZSKfAQomRXhwZXJpbWVudGFsRGVwZW5kZW50",
- "UmVsYXRpb25zUmVzcG9uc2USQgoJcmVsYXRpb25zGAEgAygLMiQuYXV0aHpl",
- "ZC5hcGkudjEuRXhwUmVsYXRpb25SZWZlcmVuY2VSCXJlbGF0aW9ucxIxCgdy",
- "ZWFkX2F0GAIgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SBnJlYWRB",
- "dCKLAQodRXhwZXJpbWVudGFsRGlmZlNjaGVtYVJlcXVlc3QSPQoLY29uc2lz",
- "dGVuY3kYASABKAsyGy5hdXRoemVkLmFwaS52MS5Db25zaXN0ZW5jeVILY29u",
- "c2lzdGVuY3kSKwoRY29tcGFyaXNvbl9zY2hlbWEYAiABKAlSEGNvbXBhcmlz",
- "b25TY2hlbWEiiAEKHkV4cGVyaW1lbnRhbERpZmZTY2hlbWFSZXNwb25zZRIz",
- "CgVkaWZmcxgBIAMoCzIdLmF1dGh6ZWQuYXBpLnYxLkV4cFNjaGVtYURpZmZS",
- "BWRpZmZzEjEKB3JlYWRfYXQYAiABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRU",
- "b2tlblIGcmVhZEF0IqsBChxFeHBSZWxhdGlvblN1YmplY3RUeXBlQ2hhbmdl",
- "EjcKCHJlbGF0aW9uGAEgASgLMhsuYXV0aHplZC5hcGkudjEuRXhwUmVsYXRp",
- "b25SCHJlbGF0aW9uElIKFGNoYW5nZWRfc3ViamVjdF90eXBlGAIgASgLMiAu",
- "YXV0aHplZC5hcGkudjEuRXhwVHlwZVJlZmVyZW5jZVISY2hhbmdlZFN1Ympl",
- "Y3RUeXBlIoUBChxFeHBDYXZlYXRQYXJhbWV0ZXJUeXBlQ2hhbmdlEkAKCXBh",
- "cmFtZXRlchgBIAEoCzIiLmF1dGh6ZWQuYXBpLnYxLkV4cENhdmVhdFBhcmFt",
- "ZXRlclIJcGFyYW1ldGVyEiMKDXByZXZpb3VzX3R5cGUYAiABKAlSDHByZXZp",
- "b3VzVHlwZSKgDQoNRXhwU2NoZW1hRGlmZhJKChBkZWZpbml0aW9uX2FkZGVk",
- "GAEgASgLMh0uYXV0aHplZC5hcGkudjEuRXhwRGVmaW5pdGlvbkgAUg9kZWZp",
- "bml0aW9uQWRkZWQSTgoSZGVmaW5pdGlvbl9yZW1vdmVkGAIgASgLMh0uYXV0",
- "aHplZC5hcGkudjEuRXhwRGVmaW5pdGlvbkgAUhFkZWZpbml0aW9uUmVtb3Zl",
- "ZBJkCh5kZWZpbml0aW9uX2RvY19jb21tZW50X2NoYW5nZWQYAyABKAsyHS5h",
- "dXRoemVkLmFwaS52MS5FeHBEZWZpbml0aW9uSABSG2RlZmluaXRpb25Eb2ND",
- "b21tZW50Q2hhbmdlZBJECg5yZWxhdGlvbl9hZGRlZBgEIAEoCzIbLmF1dGh6",
- "ZWQuYXBpLnYxLkV4cFJlbGF0aW9uSABSDXJlbGF0aW9uQWRkZWQSSAoQcmVs",
- "YXRpb25fcmVtb3ZlZBgFIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkV4cFJlbGF0",
- "aW9uSABSD3JlbGF0aW9uUmVtb3ZlZBJeChxyZWxhdGlvbl9kb2NfY29tbWVu",
- "dF9jaGFuZ2VkGAYgASgLMhsuYXV0aHplZC5hcGkudjEuRXhwUmVsYXRpb25I",
- "AFIZcmVsYXRpb25Eb2NDb21tZW50Q2hhbmdlZBJtChtyZWxhdGlvbl9zdWJq",
- "ZWN0X3R5cGVfYWRkZWQYByABKAsyLC5hdXRoemVkLmFwaS52MS5FeHBSZWxh",
- "dGlvblN1YmplY3RUeXBlQ2hhbmdlSABSGHJlbGF0aW9uU3ViamVjdFR5cGVB",
- "ZGRlZBJxCh1yZWxhdGlvbl9zdWJqZWN0X3R5cGVfcmVtb3ZlZBgIIAEoCzIs",
- "LmF1dGh6ZWQuYXBpLnYxLkV4cFJlbGF0aW9uU3ViamVjdFR5cGVDaGFuZ2VI",
- "AFIacmVsYXRpb25TdWJqZWN0VHlwZVJlbW92ZWQSSgoQcGVybWlzc2lvbl9h",
- "ZGRlZBgJIAEoCzIdLmF1dGh6ZWQuYXBpLnYxLkV4cFBlcm1pc3Npb25IAFIP",
- "cGVybWlzc2lvbkFkZGVkEk4KEnBlcm1pc3Npb25fcmVtb3ZlZBgKIAEoCzId",
- "LmF1dGh6ZWQuYXBpLnYxLkV4cFBlcm1pc3Npb25IAFIRcGVybWlzc2lvblJl",
- "bW92ZWQSZAoecGVybWlzc2lvbl9kb2NfY29tbWVudF9jaGFuZ2VkGAsgASgL",
- "Mh0uYXV0aHplZC5hcGkudjEuRXhwUGVybWlzc2lvbkgAUhtwZXJtaXNzaW9u",
- "RG9jQ29tbWVudENoYW5nZWQSVwoXcGVybWlzc2lvbl9leHByX2NoYW5nZWQY",
- "DCABKAsyHS5hdXRoemVkLmFwaS52MS5FeHBQZXJtaXNzaW9uSABSFXBlcm1p",
- "c3Npb25FeHByQ2hhbmdlZBI+CgxjYXZlYXRfYWRkZWQYDSABKAsyGS5hdXRo",
- "emVkLmFwaS52MS5FeHBDYXZlYXRIAFILY2F2ZWF0QWRkZWQSQgoOY2F2ZWF0",
- "X3JlbW92ZWQYDiABKAsyGS5hdXRoemVkLmFwaS52MS5FeHBDYXZlYXRIAFIN",
- "Y2F2ZWF0UmVtb3ZlZBJYChpjYXZlYXRfZG9jX2NvbW1lbnRfY2hhbmdlZBgP",
- "IAEoCzIZLmF1dGh6ZWQuYXBpLnYxLkV4cENhdmVhdEgAUhdjYXZlYXREb2ND",
- "b21tZW50Q2hhbmdlZBJLChNjYXZlYXRfZXhwcl9jaGFuZ2VkGBAgASgLMhku",
- "YXV0aHplZC5hcGkudjEuRXhwQ2F2ZWF0SABSEWNhdmVhdEV4cHJDaGFuZ2Vk",
- "EloKFmNhdmVhdF9wYXJhbWV0ZXJfYWRkZWQYESABKAsyIi5hdXRoemVkLmFw",
- "aS52MS5FeHBDYXZlYXRQYXJhbWV0ZXJIAFIUY2F2ZWF0UGFyYW1ldGVyQWRk",
- "ZWQSXgoYY2F2ZWF0X3BhcmFtZXRlcl9yZW1vdmVkGBIgASgLMiIuYXV0aHpl",
- "ZC5hcGkudjEuRXhwQ2F2ZWF0UGFyYW1ldGVySABSFmNhdmVhdFBhcmFtZXRl",
- "clJlbW92ZWQScQodY2F2ZWF0X3BhcmFtZXRlcl90eXBlX2NoYW5nZWQYEyAB",
- "KAsyLC5hdXRoemVkLmFwaS52MS5FeHBDYXZlYXRQYXJhbWV0ZXJUeXBlQ2hh",
- "bmdlSABSGmNhdmVhdFBhcmFtZXRlclR5cGVDaGFuZ2VkQgYKBGRpZmYy2BAK",
- "E0V4cGVyaW1lbnRhbFNlcnZpY2USxAEKF0J1bGtJbXBvcnRSZWxhdGlvbnNo",
- "aXBzEi4uYXV0aHplZC5hcGkudjEuQnVsa0ltcG9ydFJlbGF0aW9uc2hpcHNS",
- "ZXF1ZXN0Gi8uYXV0aHplZC5hcGkudjEuQnVsa0ltcG9ydFJlbGF0aW9uc2hp",
- "cHNSZXNwb25zZSJGiAIBkkEMCgpEZXByZWNhdGVkgtPkkwIuIikvdjEvZXhw",
- "ZXJpbWVudGFsL3JlbGF0aW9uc2hpcHMvYnVsa2ltcG9ydDoBKigBEsQBChdC",
- "dWxrRXhwb3J0UmVsYXRpb25zaGlwcxIuLmF1dGh6ZWQuYXBpLnYxLkJ1bGtF",
- "eHBvcnRSZWxhdGlvbnNoaXBzUmVxdWVzdBovLmF1dGh6ZWQuYXBpLnYxLkJ1",
- "bGtFeHBvcnRSZWxhdGlvbnNoaXBzUmVzcG9uc2UiRogCAZJBDAoKRGVwcmVj",
- "YXRlZILT5JMCLiIpL3YxL2V4cGVyaW1lbnRhbC9yZWxhdGlvbnNoaXBzL2J1",
- "bGtleHBvcnQ6ASowARK9AQoTQnVsa0NoZWNrUGVybWlzc2lvbhIqLmF1dGh6",
- "ZWQuYXBpLnYxLkJ1bGtDaGVja1Blcm1pc3Npb25SZXF1ZXN0GisuYXV0aHpl",
- "ZC5hcGkudjEuQnVsa0NoZWNrUGVybWlzc2lvblJlc3BvbnNlIk2IAgGSQQwK",
- "CkRlcHJlY2F0ZWSC0+STAjUiMC92MS9leHBlcmltZW50YWwvcGVybWlzc2lv",
- "bnMvYnVsa2NoZWNrcGVybWlzc2lvbjoBKhK9AQoZRXhwZXJpbWVudGFsUmVm",
- "bGVjdFNjaGVtYRIwLmF1dGh6ZWQuYXBpLnYxLkV4cGVyaW1lbnRhbFJlZmxl",
- "Y3RTY2hlbWFSZXF1ZXN0GjEuYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFs",
- "UmVmbGVjdFNjaGVtYVJlc3BvbnNlIjuIAgGSQQwKCkRlcHJlY2F0ZWSC0+ST",
- "AiMiHi92MS9leHBlcmltZW50YWwvcmVmbGVjdHNjaGVtYToBKhLeAQohRXhw",
- "ZXJpbWVudGFsQ29tcHV0YWJsZVBlcm1pc3Npb25zEjguYXV0aHplZC5hcGku",
- "djEuRXhwZXJpbWVudGFsQ29tcHV0YWJsZVBlcm1pc3Npb25zUmVxdWVzdBo5",
- "LmF1dGh6ZWQuYXBpLnYxLkV4cGVyaW1lbnRhbENvbXB1dGFibGVQZXJtaXNz",
- "aW9uc1Jlc3BvbnNlIkSIAgGSQQwKCkRlcHJlY2F0ZWSC0+STAiwiJy92MS9l",
- "eHBlcmltZW50YWwvcGVybWlzc2lvbnMvY29tcHV0YWJsZToBKhLUAQoeRXhw",
- "ZXJpbWVudGFsRGVwZW5kZW50UmVsYXRpb25zEjUuYXV0aHplZC5hcGkudjEu",
- "RXhwZXJpbWVudGFsRGVwZW5kZW50UmVsYXRpb25zUmVxdWVzdBo2LmF1dGh6",
- "ZWQuYXBpLnYxLkV4cGVyaW1lbnRhbERlcGVuZGVudFJlbGF0aW9uc1Jlc3Bv",
- "bnNlIkOIAgGSQQwKCkRlcHJlY2F0ZWSC0+STAisiJi92MS9leHBlcmltZW50",
- "YWwvcGVybWlzc2lvbnMvZGVwZW5kZW50OgEqErEBChZFeHBlcmltZW50YWxE",
- "aWZmU2NoZW1hEi0uYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsRGlmZlNj",
- "aGVtYVJlcXVlc3QaLi5hdXRoemVkLmFwaS52MS5FeHBlcmltZW50YWxEaWZm",
- "U2NoZW1hUmVzcG9uc2UiOIgCAZJBDAoKRGVwcmVjYXRlZILT5JMCICIbL3Yx",
- "L2V4cGVyaW1lbnRhbC9kaWZmc2NoZW1hOgEqEvQBCidFeHBlcmltZW50YWxS",
- "ZWdpc3RlclJlbGF0aW9uc2hpcENvdW50ZXISPi5hdXRoemVkLmFwaS52MS5F",
- "eHBlcmltZW50YWxSZWdpc3RlclJlbGF0aW9uc2hpcENvdW50ZXJSZXF1ZXN0",
- "Gj8uYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsUmVnaXN0ZXJSZWxhdGlv",
- "bnNoaXBDb3VudGVyUmVzcG9uc2UiSJJBDgoMRXhwZXJpbWVudGFsgtPkkwIx",
- "IiwvdjEvZXhwZXJpbWVudGFsL3JlZ2lzdGVycmVsYXRpb25zaGlwY291bnRl",
- "cjoBKhLQAQoeRXhwZXJpbWVudGFsQ291bnRSZWxhdGlvbnNoaXBzEjUuYXV0",
- "aHplZC5hcGkudjEuRXhwZXJpbWVudGFsQ291bnRSZWxhdGlvbnNoaXBzUmVx",
- "dWVzdBo2LmF1dGh6ZWQuYXBpLnYxLkV4cGVyaW1lbnRhbENvdW50UmVsYXRp",
- "b25zaGlwc1Jlc3BvbnNlIj+SQQ4KDEV4cGVyaW1lbnRhbILT5JMCKCIjL3Yx",
- "L2V4cGVyaW1lbnRhbC9jb3VudHJlbGF0aW9uc2hpcHM6ASoS/AEKKUV4cGVy",
- "aW1lbnRhbFVucmVnaXN0ZXJSZWxhdGlvbnNoaXBDb3VudGVyEkAuYXV0aHpl",
- "ZC5hcGkudjEuRXhwZXJpbWVudGFsVW5yZWdpc3RlclJlbGF0aW9uc2hpcENv",
- "dW50ZXJSZXF1ZXN0GkEuYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsVW5y",
- "ZWdpc3RlclJlbGF0aW9uc2hpcENvdW50ZXJSZXNwb25zZSJKkkEOCgxFeHBl",
- "cmltZW50YWyC0+STAjMiLi92MS9leHBlcmltZW50YWwvdW5yZWdpc3RlcnJl",
- "bGF0aW9uc2hpcGNvdW50ZXI6ASpCSgoSY29tLmF1dGh6ZWQuYXBpLnYxUAFa",
- "MmdpdGh1Yi5jb20vYXV0aHplZC9hdXRoemVkLWdvL3Byb3RvL2F1dGh6ZWQv",
- "YXBpL3YxYgZwcm90bzM="));
+ "bnNpc3RlbmN5Ugtjb25zaXN0ZW5jeRJVCgVpdGVtcxgCIAMoCzIuLmF1dGh6",
+ "ZWQuYXBpLnYxLkJ1bGtDaGVja1Blcm1pc3Npb25SZXF1ZXN0SXRlbUIPGAH6",
+ "QgqSAQciBYoBAhABUgVpdGVtcyLyAgoeQnVsa0NoZWNrUGVybWlzc2lvblJl",
+ "cXVlc3RJdGVtEksKCHJlc291cmNlGAEgASgLMh8uYXV0aHplZC5hcGkudjEu",
+ "T2JqZWN0UmVmZXJlbmNlQg76QgWKAQIQAbpIA8gBAVIIcmVzb3VyY2USdAoK",
+ "cGVybWlzc2lvbhgCIAEoCUJU+kInciUoQDIhXihbYS16XVthLXowLTlfXXsx",
+ "LDYyfVthLXowLTldKT8kukgnciUoQDIhXihbYS16XVthLXowLTlfXXsxLDYy",
+ "fVthLXowLTldKT8kUgpwZXJtaXNzaW9uEkoKB3N1YmplY3QYAyABKAsyIC5h",
+ "dXRoemVkLmFwaS52MS5TdWJqZWN0UmVmZXJlbmNlQg76QgWKAQIQAbpIA8gB",
+ "AVIHc3ViamVjdBJBCgdjb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVm",
+ "LlN0cnVjdEIO+kIFigECEAC6SAPIAQBSB2NvbnRleHQitAEKG0J1bGtDaGVj",
+ "a1Blcm1pc3Npb25SZXNwb25zZRJHCgpjaGVja2VkX2F0GAEgASgLMhguYXV0",
+ "aHplZC5hcGkudjEuWmVkVG9rZW5CDvpCBYoBAhAAukgDyAEAUgljaGVja2Vk",
+ "QXQSTAoFcGFpcnMYAiADKAsyJy5hdXRoemVkLmFwaS52MS5CdWxrQ2hlY2tQ",
+ "ZXJtaXNzaW9uUGFpckIN+kIKkgEHIgWKAQIQAVIFcGFpcnMi4gEKF0J1bGtD",
+ "aGVja1Blcm1pc3Npb25QYWlyEkgKB3JlcXVlc3QYASABKAsyLi5hdXRoemVk",
+ "LmFwaS52MS5CdWxrQ2hlY2tQZXJtaXNzaW9uUmVxdWVzdEl0ZW1SB3JlcXVl",
+ "c3QSRQoEaXRlbRgCIAEoCzIvLmF1dGh6ZWQuYXBpLnYxLkJ1bGtDaGVja1Bl",
+ "cm1pc3Npb25SZXNwb25zZUl0ZW1IAFIEaXRlbRIqCgVlcnJvchgDIAEoCzIS",
+ "Lmdvb2dsZS5ycGMuU3RhdHVzSABSBWVycm9yQgoKCHJlc3BvbnNlIvoBCh9C",
+ "dWxrQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VJdGVtEnQKDnBlcm1pc3Npb25z",
+ "aGlwGAEgASgOMjYuYXV0aHplZC5hcGkudjEuQ2hlY2tQZXJtaXNzaW9uUmVz",
+ "cG9uc2UuUGVybWlzc2lvbnNoaXBCFPpCB4IBBBABIAC6SAeCAQQQASAAUg5w",
+ "ZXJtaXNzaW9uc2hpcBJhChNwYXJ0aWFsX2NhdmVhdF9pbmZvGAIgASgLMiEu",
+ "YXV0aHplZC5hcGkudjEuUGFydGlhbENhdmVhdEluZm9CDvpCBYoBAhAAukgD",
+ "yAEAUhFwYXJ0aWFsQ2F2ZWF0SW5mbyJzCh5CdWxrSW1wb3J0UmVsYXRpb25z",
+ "aGlwc1JlcXVlc3QSUQoNcmVsYXRpb25zaGlwcxgBIAMoCzIcLmF1dGh6ZWQu",
+ "YXBpLnYxLlJlbGF0aW9uc2hpcEIN+kIKkgEHIgWKAQIQAVINcmVsYXRpb25z",
+ "aGlwcyJACh9CdWxrSW1wb3J0UmVsYXRpb25zaGlwc1Jlc3BvbnNlEh0KCm51",
+ "bV9sb2FkZWQYASABKARSCW51bUxvYWRlZCK9AgoeQnVsa0V4cG9ydFJlbGF0",
+ "aW9uc2hpcHNSZXF1ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsuYXV0aHpl",
+ "ZC5hcGkudjEuQ29uc2lzdGVuY3lSC2NvbnNpc3RlbmN5EjUKDm9wdGlvbmFs",
+ "X2xpbWl0GAIgASgNQg76QgQqAigAukgEKgIoAFINb3B0aW9uYWxMaW1pdBI/",
+ "Cg9vcHRpb25hbF9jdXJzb3IYAyABKAsyFi5hdXRoemVkLmFwaS52MS5DdXJz",
+ "b3JSDm9wdGlvbmFsQ3Vyc29yEmQKHG9wdGlvbmFsX3JlbGF0aW9uc2hpcF9m",
+ "aWx0ZXIYBCABKAsyIi5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBGaWx0",
+ "ZXJSGm9wdGlvbmFsUmVsYXRpb25zaGlwRmlsdGVyIq0BCh9CdWxrRXhwb3J0",
+ "UmVsYXRpb25zaGlwc1Jlc3BvbnNlEkYKE2FmdGVyX3Jlc3VsdF9jdXJzb3IY",
+ "ASABKAsyFi5hdXRoemVkLmFwaS52MS5DdXJzb3JSEWFmdGVyUmVzdWx0Q3Vy",
+ "c29yEkIKDXJlbGF0aW9uc2hpcHMYAiADKAsyHC5hdXRoemVkLmFwaS52MS5S",
+ "ZWxhdGlvbnNoaXBSDXJlbGF0aW9uc2hpcHMirQEKIEV4cGVyaW1lbnRhbFJl",
+ "ZmxlY3RTY2hlbWFSZXF1ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsuYXV0",
+ "aHplZC5hcGkudjEuQ29uc2lzdGVuY3lSC2NvbnNpc3RlbmN5EkoKEG9wdGlv",
+ "bmFsX2ZpbHRlcnMYAiADKAsyHy5hdXRoemVkLmFwaS52MS5FeHBTY2hlbWFG",
+ "aWx0ZXJSD29wdGlvbmFsRmlsdGVycyLMAQohRXhwZXJpbWVudGFsUmVmbGVj",
+ "dFNjaGVtYVJlc3BvbnNlEj8KC2RlZmluaXRpb25zGAEgAygLMh0uYXV0aHpl",
+ "ZC5hcGkudjEuRXhwRGVmaW5pdGlvblILZGVmaW5pdGlvbnMSMwoHY2F2ZWF0",
+ "cxgCIAMoCzIZLmF1dGh6ZWQuYXBpLnYxLkV4cENhdmVhdFIHY2F2ZWF0cxIx",
+ "CgdyZWFkX2F0GAMgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SBnJl",
+ "YWRBdCKhAgoPRXhwU2NoZW1hRmlsdGVyEkUKH29wdGlvbmFsX2RlZmluaXRp",
+ "b25fbmFtZV9maWx0ZXIYASABKAlSHG9wdGlvbmFsRGVmaW5pdGlvbk5hbWVG",
+ "aWx0ZXISPQobb3B0aW9uYWxfY2F2ZWF0X25hbWVfZmlsdGVyGAIgASgJUhhv",
+ "cHRpb25hbENhdmVhdE5hbWVGaWx0ZXISQQodb3B0aW9uYWxfcmVsYXRpb25f",
+ "bmFtZV9maWx0ZXIYAyABKAlSGm9wdGlvbmFsUmVsYXRpb25OYW1lRmlsdGVy",
+ "EkUKH29wdGlvbmFsX3Blcm1pc3Npb25fbmFtZV9maWx0ZXIYBCABKAlSHG9w",
+ "dGlvbmFsUGVybWlzc2lvbk5hbWVGaWx0ZXIiuQEKDUV4cERlZmluaXRpb24S",
+ "EgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdjb21tZW50GAIgASgJUgdjb21tZW50",
+ "EjkKCXJlbGF0aW9ucxgDIAMoCzIbLmF1dGh6ZWQuYXBpLnYxLkV4cFJlbGF0",
+ "aW9uUglyZWxhdGlvbnMSPwoLcGVybWlzc2lvbnMYBCADKAsyHS5hdXRoemVk",
+ "LmFwaS52MS5FeHBQZXJtaXNzaW9uUgtwZXJtaXNzaW9ucyKdAQoJRXhwQ2F2",
+ "ZWF0EhIKBG5hbWUYASABKAlSBG5hbWUSGAoHY29tbWVudBgCIAEoCVIHY29t",
+ "bWVudBJCCgpwYXJhbWV0ZXJzGAMgAygLMiIuYXV0aHplZC5hcGkudjEuRXhw",
+ "Q2F2ZWF0UGFyYW1ldGVyUgpwYXJhbWV0ZXJzEh4KCmV4cHJlc3Npb24YBCAB",
+ "KAlSCmV4cHJlc3Npb24iagoSRXhwQ2F2ZWF0UGFyYW1ldGVyEhIKBG5hbWUY",
+ "ASABKAlSBG5hbWUSEgoEdHlwZRgCIAEoCVIEdHlwZRIsChJwYXJlbnRfY2F2",
+ "ZWF0X25hbWUYAyABKAlSEHBhcmVudENhdmVhdE5hbWUiuAEKC0V4cFJlbGF0",
+ "aW9uEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHY29tbWVudBgCIAEoCVIHY29t",
+ "bWVudBI0ChZwYXJlbnRfZGVmaW5pdGlvbl9uYW1lGAMgASgJUhRwYXJlbnRE",
+ "ZWZpbml0aW9uTmFtZRJFCg1zdWJqZWN0X3R5cGVzGAQgAygLMiAuYXV0aHpl",
+ "ZC5hcGkudjEuRXhwVHlwZVJlZmVyZW5jZVIMc3ViamVjdFR5cGVzIqECChBF",
+ "eHBUeXBlUmVmZXJlbmNlEjYKF3N1YmplY3RfZGVmaW5pdGlvbl9uYW1lGAEg",
+ "ASgJUhVzdWJqZWN0RGVmaW5pdGlvbk5hbWUSMAoUb3B0aW9uYWxfY2F2ZWF0",
+ "X25hbWUYAiABKAlSEm9wdGlvbmFsQ2F2ZWF0TmFtZRIwChNpc190ZXJtaW5h",
+ "bF9zdWJqZWN0GAMgASgISABSEWlzVGVybWluYWxTdWJqZWN0EjYKFm9wdGlv",
+ "bmFsX3JlbGF0aW9uX25hbWUYBCABKAlIAFIUb3B0aW9uYWxSZWxhdGlvbk5h",
+ "bWUSLgoSaXNfcHVibGljX3dpbGRjYXJkGAUgASgISABSEGlzUHVibGljV2ls",
+ "ZGNhcmRCCQoHdHlwZXJlZiJzCg1FeHBQZXJtaXNzaW9uEhIKBG5hbWUYASAB",
+ "KAlSBG5hbWUSGAoHY29tbWVudBgCIAEoCVIHY29tbWVudBI0ChZwYXJlbnRf",
+ "ZGVmaW5pdGlvbl9uYW1lGAMgASgJUhRwYXJlbnREZWZpbml0aW9uTmFtZSL+",
+ "AQooRXhwZXJpbWVudGFsQ29tcHV0YWJsZVBlcm1pc3Npb25zUmVxdWVzdBI9",
+ "Cgtjb25zaXN0ZW5jeRgBIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkNvbnNpc3Rl",
+ "bmN5Ugtjb25zaXN0ZW5jeRInCg9kZWZpbml0aW9uX25hbWUYAiABKAlSDmRl",
+ "ZmluaXRpb25OYW1lEiMKDXJlbGF0aW9uX25hbWUYAyABKAlSDHJlbGF0aW9u",
+ "TmFtZRJFCh9vcHRpb25hbF9kZWZpbml0aW9uX25hbWVfZmlsdGVyGAQgASgJ",
+ "UhxvcHRpb25hbERlZmluaXRpb25OYW1lRmlsdGVyIokBChRFeHBSZWxhdGlv",
+ "blJlZmVyZW5jZRInCg9kZWZpbml0aW9uX25hbWUYASABKAlSDmRlZmluaXRp",
+ "b25OYW1lEiMKDXJlbGF0aW9uX25hbWUYAiABKAlSDHJlbGF0aW9uTmFtZRIj",
+ "Cg1pc19wZXJtaXNzaW9uGAMgASgIUgxpc1Blcm1pc3Npb24ipgEKKUV4cGVy",
+ "aW1lbnRhbENvbXB1dGFibGVQZXJtaXNzaW9uc1Jlc3BvbnNlEkYKC3Blcm1p",
+ "c3Npb25zGAEgAygLMiQuYXV0aHplZC5hcGkudjEuRXhwUmVsYXRpb25SZWZl",
+ "cmVuY2VSC3Blcm1pc3Npb25zEjEKB3JlYWRfYXQYAiABKAsyGC5hdXRoemVk",
+ "LmFwaS52MS5aZWRUb2tlblIGcmVhZEF0IrgBCiVFeHBlcmltZW50YWxEZXBl",
+ "bmRlbnRSZWxhdGlvbnNSZXF1ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsu",
+ "YXV0aHplZC5hcGkudjEuQ29uc2lzdGVuY3lSC2NvbnNpc3RlbmN5EicKD2Rl",
+ "ZmluaXRpb25fbmFtZRgCIAEoCVIOZGVmaW5pdGlvbk5hbWUSJwoPcGVybWlz",
+ "c2lvbl9uYW1lGAMgASgJUg5wZXJtaXNzaW9uTmFtZSKfAQomRXhwZXJpbWVu",
+ "dGFsRGVwZW5kZW50UmVsYXRpb25zUmVzcG9uc2USQgoJcmVsYXRpb25zGAEg",
+ "AygLMiQuYXV0aHplZC5hcGkudjEuRXhwUmVsYXRpb25SZWZlcmVuY2VSCXJl",
+ "bGF0aW9ucxIxCgdyZWFkX2F0GAIgASgLMhguYXV0aHplZC5hcGkudjEuWmVk",
+ "VG9rZW5SBnJlYWRBdCKLAQodRXhwZXJpbWVudGFsRGlmZlNjaGVtYVJlcXVl",
+ "c3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVkLmFwaS52MS5Db25z",
+ "aXN0ZW5jeVILY29uc2lzdGVuY3kSKwoRY29tcGFyaXNvbl9zY2hlbWEYAiAB",
+ "KAlSEGNvbXBhcmlzb25TY2hlbWEiiAEKHkV4cGVyaW1lbnRhbERpZmZTY2hl",
+ "bWFSZXNwb25zZRIzCgVkaWZmcxgBIAMoCzIdLmF1dGh6ZWQuYXBpLnYxLkV4",
+ "cFNjaGVtYURpZmZSBWRpZmZzEjEKB3JlYWRfYXQYAiABKAsyGC5hdXRoemVk",
+ "LmFwaS52MS5aZWRUb2tlblIGcmVhZEF0IqsBChxFeHBSZWxhdGlvblN1Ympl",
+ "Y3RUeXBlQ2hhbmdlEjcKCHJlbGF0aW9uGAEgASgLMhsuYXV0aHplZC5hcGku",
+ "djEuRXhwUmVsYXRpb25SCHJlbGF0aW9uElIKFGNoYW5nZWRfc3ViamVjdF90",
+ "eXBlGAIgASgLMiAuYXV0aHplZC5hcGkudjEuRXhwVHlwZVJlZmVyZW5jZVIS",
+ "Y2hhbmdlZFN1YmplY3RUeXBlIoUBChxFeHBDYXZlYXRQYXJhbWV0ZXJUeXBl",
+ "Q2hhbmdlEkAKCXBhcmFtZXRlchgBIAEoCzIiLmF1dGh6ZWQuYXBpLnYxLkV4",
+ "cENhdmVhdFBhcmFtZXRlclIJcGFyYW1ldGVyEiMKDXByZXZpb3VzX3R5cGUY",
+ "AiABKAlSDHByZXZpb3VzVHlwZSKgDQoNRXhwU2NoZW1hRGlmZhJKChBkZWZp",
+ "bml0aW9uX2FkZGVkGAEgASgLMh0uYXV0aHplZC5hcGkudjEuRXhwRGVmaW5p",
+ "dGlvbkgAUg9kZWZpbml0aW9uQWRkZWQSTgoSZGVmaW5pdGlvbl9yZW1vdmVk",
+ "GAIgASgLMh0uYXV0aHplZC5hcGkudjEuRXhwRGVmaW5pdGlvbkgAUhFkZWZp",
+ "bml0aW9uUmVtb3ZlZBJkCh5kZWZpbml0aW9uX2RvY19jb21tZW50X2NoYW5n",
+ "ZWQYAyABKAsyHS5hdXRoemVkLmFwaS52MS5FeHBEZWZpbml0aW9uSABSG2Rl",
+ "ZmluaXRpb25Eb2NDb21tZW50Q2hhbmdlZBJECg5yZWxhdGlvbl9hZGRlZBgE",
+ "IAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkV4cFJlbGF0aW9uSABSDXJlbGF0aW9u",
+ "QWRkZWQSSAoQcmVsYXRpb25fcmVtb3ZlZBgFIAEoCzIbLmF1dGh6ZWQuYXBp",
+ "LnYxLkV4cFJlbGF0aW9uSABSD3JlbGF0aW9uUmVtb3ZlZBJeChxyZWxhdGlv",
+ "bl9kb2NfY29tbWVudF9jaGFuZ2VkGAYgASgLMhsuYXV0aHplZC5hcGkudjEu",
+ "RXhwUmVsYXRpb25IAFIZcmVsYXRpb25Eb2NDb21tZW50Q2hhbmdlZBJtChty",
+ "ZWxhdGlvbl9zdWJqZWN0X3R5cGVfYWRkZWQYByABKAsyLC5hdXRoemVkLmFw",
+ "aS52MS5FeHBSZWxhdGlvblN1YmplY3RUeXBlQ2hhbmdlSABSGHJlbGF0aW9u",
+ "U3ViamVjdFR5cGVBZGRlZBJxCh1yZWxhdGlvbl9zdWJqZWN0X3R5cGVfcmVt",
+ "b3ZlZBgIIAEoCzIsLmF1dGh6ZWQuYXBpLnYxLkV4cFJlbGF0aW9uU3ViamVj",
+ "dFR5cGVDaGFuZ2VIAFIacmVsYXRpb25TdWJqZWN0VHlwZVJlbW92ZWQSSgoQ",
+ "cGVybWlzc2lvbl9hZGRlZBgJIAEoCzIdLmF1dGh6ZWQuYXBpLnYxLkV4cFBl",
+ "cm1pc3Npb25IAFIPcGVybWlzc2lvbkFkZGVkEk4KEnBlcm1pc3Npb25fcmVt",
+ "b3ZlZBgKIAEoCzIdLmF1dGh6ZWQuYXBpLnYxLkV4cFBlcm1pc3Npb25IAFIR",
+ "cGVybWlzc2lvblJlbW92ZWQSZAoecGVybWlzc2lvbl9kb2NfY29tbWVudF9j",
+ "aGFuZ2VkGAsgASgLMh0uYXV0aHplZC5hcGkudjEuRXhwUGVybWlzc2lvbkgA",
+ "UhtwZXJtaXNzaW9uRG9jQ29tbWVudENoYW5nZWQSVwoXcGVybWlzc2lvbl9l",
+ "eHByX2NoYW5nZWQYDCABKAsyHS5hdXRoemVkLmFwaS52MS5FeHBQZXJtaXNz",
+ "aW9uSABSFXBlcm1pc3Npb25FeHByQ2hhbmdlZBI+CgxjYXZlYXRfYWRkZWQY",
+ "DSABKAsyGS5hdXRoemVkLmFwaS52MS5FeHBDYXZlYXRIAFILY2F2ZWF0QWRk",
+ "ZWQSQgoOY2F2ZWF0X3JlbW92ZWQYDiABKAsyGS5hdXRoemVkLmFwaS52MS5F",
+ "eHBDYXZlYXRIAFINY2F2ZWF0UmVtb3ZlZBJYChpjYXZlYXRfZG9jX2NvbW1l",
+ "bnRfY2hhbmdlZBgPIAEoCzIZLmF1dGh6ZWQuYXBpLnYxLkV4cENhdmVhdEgA",
+ "UhdjYXZlYXREb2NDb21tZW50Q2hhbmdlZBJLChNjYXZlYXRfZXhwcl9jaGFu",
+ "Z2VkGBAgASgLMhkuYXV0aHplZC5hcGkudjEuRXhwQ2F2ZWF0SABSEWNhdmVh",
+ "dEV4cHJDaGFuZ2VkEloKFmNhdmVhdF9wYXJhbWV0ZXJfYWRkZWQYESABKAsy",
+ "Ii5hdXRoemVkLmFwaS52MS5FeHBDYXZlYXRQYXJhbWV0ZXJIAFIUY2F2ZWF0",
+ "UGFyYW1ldGVyQWRkZWQSXgoYY2F2ZWF0X3BhcmFtZXRlcl9yZW1vdmVkGBIg",
+ "ASgLMiIuYXV0aHplZC5hcGkudjEuRXhwQ2F2ZWF0UGFyYW1ldGVySABSFmNh",
+ "dmVhdFBhcmFtZXRlclJlbW92ZWQScQodY2F2ZWF0X3BhcmFtZXRlcl90eXBl",
+ "X2NoYW5nZWQYEyABKAsyLC5hdXRoemVkLmFwaS52MS5FeHBDYXZlYXRQYXJh",
+ "bWV0ZXJUeXBlQ2hhbmdlSABSGmNhdmVhdFBhcmFtZXRlclR5cGVDaGFuZ2Vk",
+ "QgYKBGRpZmYy2BAKE0V4cGVyaW1lbnRhbFNlcnZpY2USxAEKF0J1bGtJbXBv",
+ "cnRSZWxhdGlvbnNoaXBzEi4uYXV0aHplZC5hcGkudjEuQnVsa0ltcG9ydFJl",
+ "bGF0aW9uc2hpcHNSZXF1ZXN0Gi8uYXV0aHplZC5hcGkudjEuQnVsa0ltcG9y",
+ "dFJlbGF0aW9uc2hpcHNSZXNwb25zZSJGiAIBkkEMCgpEZXByZWNhdGVkgtPk",
+ "kwIuIikvdjEvZXhwZXJpbWVudGFsL3JlbGF0aW9uc2hpcHMvYnVsa2ltcG9y",
+ "dDoBKigBEsQBChdCdWxrRXhwb3J0UmVsYXRpb25zaGlwcxIuLmF1dGh6ZWQu",
+ "YXBpLnYxLkJ1bGtFeHBvcnRSZWxhdGlvbnNoaXBzUmVxdWVzdBovLmF1dGh6",
+ "ZWQuYXBpLnYxLkJ1bGtFeHBvcnRSZWxhdGlvbnNoaXBzUmVzcG9uc2UiRogC",
+ "AZJBDAoKRGVwcmVjYXRlZILT5JMCLiIpL3YxL2V4cGVyaW1lbnRhbC9yZWxh",
+ "dGlvbnNoaXBzL2J1bGtleHBvcnQ6ASowARK9AQoTQnVsa0NoZWNrUGVybWlz",
+ "c2lvbhIqLmF1dGh6ZWQuYXBpLnYxLkJ1bGtDaGVja1Blcm1pc3Npb25SZXF1",
+ "ZXN0GisuYXV0aHplZC5hcGkudjEuQnVsa0NoZWNrUGVybWlzc2lvblJlc3Bv",
+ "bnNlIk2IAgGSQQwKCkRlcHJlY2F0ZWSC0+STAjUiMC92MS9leHBlcmltZW50",
+ "YWwvcGVybWlzc2lvbnMvYnVsa2NoZWNrcGVybWlzc2lvbjoBKhK9AQoZRXhw",
+ "ZXJpbWVudGFsUmVmbGVjdFNjaGVtYRIwLmF1dGh6ZWQuYXBpLnYxLkV4cGVy",
+ "aW1lbnRhbFJlZmxlY3RTY2hlbWFSZXF1ZXN0GjEuYXV0aHplZC5hcGkudjEu",
+ "RXhwZXJpbWVudGFsUmVmbGVjdFNjaGVtYVJlc3BvbnNlIjuIAgGSQQwKCkRl",
+ "cHJlY2F0ZWSC0+STAiMiHi92MS9leHBlcmltZW50YWwvcmVmbGVjdHNjaGVt",
+ "YToBKhLeAQohRXhwZXJpbWVudGFsQ29tcHV0YWJsZVBlcm1pc3Npb25zEjgu",
+ "YXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsQ29tcHV0YWJsZVBlcm1pc3Np",
+ "b25zUmVxdWVzdBo5LmF1dGh6ZWQuYXBpLnYxLkV4cGVyaW1lbnRhbENvbXB1",
+ "dGFibGVQZXJtaXNzaW9uc1Jlc3BvbnNlIkSIAgGSQQwKCkRlcHJlY2F0ZWSC",
+ "0+STAiwiJy92MS9leHBlcmltZW50YWwvcGVybWlzc2lvbnMvY29tcHV0YWJs",
+ "ZToBKhLUAQoeRXhwZXJpbWVudGFsRGVwZW5kZW50UmVsYXRpb25zEjUuYXV0",
+ "aHplZC5hcGkudjEuRXhwZXJpbWVudGFsRGVwZW5kZW50UmVsYXRpb25zUmVx",
+ "dWVzdBo2LmF1dGh6ZWQuYXBpLnYxLkV4cGVyaW1lbnRhbERlcGVuZGVudFJl",
+ "bGF0aW9uc1Jlc3BvbnNlIkOIAgGSQQwKCkRlcHJlY2F0ZWSC0+STAisiJi92",
+ "MS9leHBlcmltZW50YWwvcGVybWlzc2lvbnMvZGVwZW5kZW50OgEqErEBChZF",
+ "eHBlcmltZW50YWxEaWZmU2NoZW1hEi0uYXV0aHplZC5hcGkudjEuRXhwZXJp",
+ "bWVudGFsRGlmZlNjaGVtYVJlcXVlc3QaLi5hdXRoemVkLmFwaS52MS5FeHBl",
+ "cmltZW50YWxEaWZmU2NoZW1hUmVzcG9uc2UiOIgCAZJBDAoKRGVwcmVjYXRl",
+ "ZILT5JMCICIbL3YxL2V4cGVyaW1lbnRhbC9kaWZmc2NoZW1hOgEqEvQBCidF",
+ "eHBlcmltZW50YWxSZWdpc3RlclJlbGF0aW9uc2hpcENvdW50ZXISPi5hdXRo",
+ "emVkLmFwaS52MS5FeHBlcmltZW50YWxSZWdpc3RlclJlbGF0aW9uc2hpcENv",
+ "dW50ZXJSZXF1ZXN0Gj8uYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsUmVn",
+ "aXN0ZXJSZWxhdGlvbnNoaXBDb3VudGVyUmVzcG9uc2UiSJJBDgoMRXhwZXJp",
+ "bWVudGFsgtPkkwIxIiwvdjEvZXhwZXJpbWVudGFsL3JlZ2lzdGVycmVsYXRp",
+ "b25zaGlwY291bnRlcjoBKhLQAQoeRXhwZXJpbWVudGFsQ291bnRSZWxhdGlv",
+ "bnNoaXBzEjUuYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsQ291bnRSZWxh",
+ "dGlvbnNoaXBzUmVxdWVzdBo2LmF1dGh6ZWQuYXBpLnYxLkV4cGVyaW1lbnRh",
+ "bENvdW50UmVsYXRpb25zaGlwc1Jlc3BvbnNlIj+SQQ4KDEV4cGVyaW1lbnRh",
+ "bILT5JMCKCIjL3YxL2V4cGVyaW1lbnRhbC9jb3VudHJlbGF0aW9uc2hpcHM6",
+ "ASoS/AEKKUV4cGVyaW1lbnRhbFVucmVnaXN0ZXJSZWxhdGlvbnNoaXBDb3Vu",
+ "dGVyEkAuYXV0aHplZC5hcGkudjEuRXhwZXJpbWVudGFsVW5yZWdpc3RlclJl",
+ "bGF0aW9uc2hpcENvdW50ZXJSZXF1ZXN0GkEuYXV0aHplZC5hcGkudjEuRXhw",
+ "ZXJpbWVudGFsVW5yZWdpc3RlclJlbGF0aW9uc2hpcENvdW50ZXJSZXNwb25z",
+ "ZSJKkkEOCgxFeHBlcmltZW50YWyC0+STAjMiLi92MS9leHBlcmltZW50YWwv",
+ "dW5yZWdpc3RlcnJlbGF0aW9uc2hpcGNvdW50ZXI6ASpCSgoSY29tLmF1dGh6",
+ "ZWQuYXBpLnYxUAFaMmdpdGh1Yi5jb20vYXV0aHplZC9hdXRoemVkLWdvL3By",
+ "b3RvL2F1dGh6ZWQvYXBpL3YxYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Authzed.Api.V1.CoreReflection.Descriptor, global::Authzed.Api.V1.PermissionServiceReflection.Descriptor, global::Buf.Validate.ValidateReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, global::Validate.ValidateReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
diff --git a/src/Authzed.Net/Authzed/Api/V1/PermissionService.cs b/src/Authzed.Net/Authzed/Api/V1/PermissionService.cs
index 2a38d69..dd2f0f6 100644
--- a/src/Authzed.Net/Authzed/Api/V1/PermissionService.cs
+++ b/src/Authzed.Net/Authzed/Api/V1/PermissionService.cs
@@ -84,225 +84,224 @@ static PermissionServiceReflection() {
"YXRpb24SSgoGZmlsdGVyGAIgASgLMiIuYXV0aHplZC5hcGkudjEuUmVsYXRp",
"b25zaGlwRmlsdGVyQg76QgWKAQIQAbpIA8gBAVIGZmlsdGVyIl4KCU9wZXJh",
"dGlvbhIZChVPUEVSQVRJT05fVU5TUEVDSUZJRUQQABIcChhPUEVSQVRJT05f",
- "TVVTVF9OT1RfTUFUQ0gQARIYChRPUEVSQVRJT05fTVVTVF9NQVRDSBACIs8C",
- "ChlXcml0ZVJlbGF0aW9uc2hpcHNSZXF1ZXN0ElYKB3VwZGF0ZXMYASADKAsy",
- "Ii5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBVcGRhdGVCGPpCCpIBByIF",
- "igECEAG6SAiSAQUiA8gBAVIHdXBkYXRlcxJtChZvcHRpb25hbF9wcmVjb25k",
- "aXRpb25zGAIgAygLMhwuYXV0aHplZC5hcGkudjEuUHJlY29uZGl0aW9uQhj6",
- "QgqSAQciBYoBAhABukgIkgEFIgPIAQFSFW9wdGlvbmFsUHJlY29uZGl0aW9u",
- "cxJrCh1vcHRpb25hbF90cmFuc2FjdGlvbl9tZXRhZGF0YRgDIAEoCzIXLmdv",
- "b2dsZS5wcm90b2J1Zi5TdHJ1Y3RCDvpCBYoBAhAAukgDyAEAUhtvcHRpb25h",
- "bFRyYW5zYWN0aW9uTWV0YWRhdGEiVQoaV3JpdGVSZWxhdGlvbnNoaXBzUmVz",
- "cG9uc2USNwoKd3JpdHRlbl9hdBgBIAEoCzIYLmF1dGh6ZWQuYXBpLnYxLlpl",
- "ZFRva2VuUgl3cml0dGVuQXQi3QMKGkRlbGV0ZVJlbGF0aW9uc2hpcHNSZXF1",
- "ZXN0EmMKE3JlbGF0aW9uc2hpcF9maWx0ZXIYASABKAsyIi5hdXRoemVkLmFw",
- "aS52MS5SZWxhdGlvbnNoaXBGaWx0ZXJCDvpCBYoBAhABukgDyAEBUhJyZWxh",
- "dGlvbnNoaXBGaWx0ZXISbQoWb3B0aW9uYWxfcHJlY29uZGl0aW9ucxgCIAMo",
- "CzIcLmF1dGh6ZWQuYXBpLnYxLlByZWNvbmRpdGlvbkIY+kIKkgEHIgWKAQIQ",
- "AbpICJIBBSIDyAEBUhVvcHRpb25hbFByZWNvbmRpdGlvbnMSNQoOb3B0aW9u",
- "YWxfbGltaXQYAyABKA1CDvpCBCoCKAC6SAQqAigAUg1vcHRpb25hbExpbWl0",
- "EkcKIG9wdGlvbmFsX2FsbG93X3BhcnRpYWxfZGVsZXRpb25zGAQgASgIUh1v",
- "cHRpb25hbEFsbG93UGFydGlhbERlbGV0aW9ucxJrCh1vcHRpb25hbF90cmFu",
- "c2FjdGlvbl9tZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1",
- "Y3RCDvpCBYoBAhAAukgDyAEAUhtvcHRpb25hbFRyYW5zYWN0aW9uTWV0YWRh",
- "dGEi9wIKG0RlbGV0ZVJlbGF0aW9uc2hpcHNSZXNwb25zZRI3CgpkZWxldGVk",
- "X2F0GAEgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SCWRlbGV0ZWRB",
- "dBJpChFkZWxldGlvbl9wcm9ncmVzcxgCIAEoDjI8LmF1dGh6ZWQuYXBpLnYx",
- "LkRlbGV0ZVJlbGF0aW9uc2hpcHNSZXNwb25zZS5EZWxldGlvblByb2dyZXNz",
- "UhBkZWxldGlvblByb2dyZXNzEj4KG3JlbGF0aW9uc2hpcHNfZGVsZXRlZF9j",
- "b3VudBgDIAEoBFIZcmVsYXRpb25zaGlwc0RlbGV0ZWRDb3VudCJ0ChBEZWxl",
- "dGlvblByb2dyZXNzEiEKHURFTEVUSU9OX1BST0dSRVNTX1VOU1BFQ0lGSUVE",
- "EAASHgoaREVMRVRJT05fUFJPR1JFU1NfQ09NUExFVEUQARIdChlERUxFVElP",
- "Tl9QUk9HUkVTU19QQVJUSUFMEAIizAMKFkNoZWNrUGVybWlzc2lvblJlcXVl",
- "c3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVkLmFwaS52MS5Db25z",
- "aXN0ZW5jeVILY29uc2lzdGVuY3kSSwoIcmVzb3VyY2UYAiABKAsyHy5hdXRo",
- "emVkLmFwaS52MS5PYmplY3RSZWZlcmVuY2VCDvpCBYoBAhABukgDyAEBUghy",
- "ZXNvdXJjZRJ0CgpwZXJtaXNzaW9uGAMgASgJQlT6QidyJShAMiFeKFthLXpd",
- "W2EtejAtOV9dezEsNjJ9W2EtejAtOV0pPyS6SCdyJShAMiFeKFthLXpdW2Et",
- "ejAtOV9dezEsNjJ9W2EtejAtOV0pPyRSCnBlcm1pc3Npb24SSgoHc3ViamVj",
- "dBgEIAEoCzIgLmF1dGh6ZWQuYXBpLnYxLlN1YmplY3RSZWZlcmVuY2VCDvpC",
- "BYoBAhABukgDyAEBUgdzdWJqZWN0EkEKB2NvbnRleHQYBSABKAsyFy5nb29n",
- "bGUucHJvdG9idWYuU3RydWN0Qg76QgWKAQIQALpIA8gBAFIHY29udGV4dBIh",
- "Cgx3aXRoX3RyYWNpbmcYBiABKAhSC3dpdGhUcmFjaW5nIu0EChdDaGVja1Bl",
- "cm1pc3Npb25SZXNwb25zZRJHCgpjaGVja2VkX2F0GAEgASgLMhguYXV0aHpl",
- "ZC5hcGkudjEuWmVkVG9rZW5CDvpCBYoBAhAAukgDyAEAUgljaGVja2VkQXQS",
- "dAoOcGVybWlzc2lvbnNoaXAYAiABKA4yNi5hdXRoemVkLmFwaS52MS5DaGVj",
- "a1Blcm1pc3Npb25SZXNwb25zZS5QZXJtaXNzaW9uc2hpcEIU+kIHggEEEAEg",
- "ALpIB4IBBBABIABSDnBlcm1pc3Npb25zaGlwEmEKE3BhcnRpYWxfY2F2ZWF0",
- "X2luZm8YAyABKAsyIS5hdXRoemVkLmFwaS52MS5QYXJ0aWFsQ2F2ZWF0SW5m",
- "b0IO+kIFigECEAC6SAPIAQBSEXBhcnRpYWxDYXZlYXRJbmZvEkEKC2RlYnVn",
- "X3RyYWNlGAQgASgLMiAuYXV0aHplZC5hcGkudjEuRGVidWdJbmZvcm1hdGlv",
- "blIKZGVidWdUcmFjZRJKChNvcHRpb25hbF9leHBpcmVzX2F0GAUgASgLMhou",
- "Z29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxFeHBpcmVzQXQi",
- "oAEKDlBlcm1pc3Npb25zaGlwEh4KGlBFUk1JU1NJT05TSElQX1VOU1BFQ0lG",
- "SUVEEAASIAocUEVSTUlTU0lPTlNISVBfTk9fUEVSTUlTU0lPThABEiEKHVBF",
- "Uk1JU1NJT05TSElQX0hBU19QRVJNSVNTSU9OEAISKQolUEVSTUlTU0lPTlNI",
- "SVBfQ09ORElUSU9OQUxfUEVSTUlTU0lPThADIuABChtDaGVja0J1bGtQZXJt",
- "aXNzaW9uc1JlcXVlc3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVk",
- "LmFwaS52MS5Db25zaXN0ZW5jeVILY29uc2lzdGVuY3kSXwoFaXRlbXMYAiAD",
- "KAsyLy5hdXRoemVkLmFwaS52MS5DaGVja0J1bGtQZXJtaXNzaW9uc1JlcXVl",
- "c3RJdGVtQhj6QgqSAQciBYoBAhABukgIkgEFIgPIAQFSBWl0ZW1zEiEKDHdp",
- "dGhfdHJhY2luZxgDIAEoCFILd2l0aFRyYWNpbmci8wIKH0NoZWNrQnVsa1Bl",
- "cm1pc3Npb25zUmVxdWVzdEl0ZW0SSwoIcmVzb3VyY2UYASABKAsyHy5hdXRo",
- "emVkLmFwaS52MS5PYmplY3RSZWZlcmVuY2VCDvpCBYoBAhABukgDyAEBUghy",
- "ZXNvdXJjZRJ0CgpwZXJtaXNzaW9uGAIgASgJQlT6QidyJShAMiFeKFthLXpd",
- "W2EtejAtOV9dezEsNjJ9W2EtejAtOV0pPyS6SCdyJShAMiFeKFthLXpdW2Et",
- "ejAtOV9dezEsNjJ9W2EtejAtOV0pPyRSCnBlcm1pc3Npb24SSgoHc3ViamVj",
- "dBgDIAEoCzIgLmF1dGh6ZWQuYXBpLnYxLlN1YmplY3RSZWZlcmVuY2VCDvpC",
- "BYoBAhABukgDyAEBUgdzdWJqZWN0EkEKB2NvbnRleHQYBCABKAsyFy5nb29n",
- "bGUucHJvdG9idWYuU3RydWN0Qg76QgWKAQIQALpIA8gBAFIHY29udGV4dCLB",
- "AQocQ2hlY2tCdWxrUGVybWlzc2lvbnNSZXNwb25zZRJHCgpjaGVja2VkX2F0",
- "GAEgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5CDvpCBYoBAhAAukgD",
- "yAEAUgljaGVja2VkQXQSWAoFcGFpcnMYAiADKAsyKC5hdXRoemVkLmFwaS52",
- "MS5DaGVja0J1bGtQZXJtaXNzaW9uc1BhaXJCGPpCCpIBByIFigECEAG6SAiS",
- "AQUiA8gBAVIFcGFpcnMi5QEKGENoZWNrQnVsa1Blcm1pc3Npb25zUGFpchJJ",
- "CgdyZXF1ZXN0GAEgASgLMi8uYXV0aHplZC5hcGkudjEuQ2hlY2tCdWxrUGVy",
- "bWlzc2lvbnNSZXF1ZXN0SXRlbVIHcmVxdWVzdBJGCgRpdGVtGAIgASgLMjAu",
- "YXV0aHplZC5hcGkudjEuQ2hlY2tCdWxrUGVybWlzc2lvbnNSZXNwb25zZUl0",
- "ZW1IAFIEaXRlbRIqCgVlcnJvchgDIAEoCzISLmdvb2dsZS5ycGMuU3RhdHVz",
- "SABSBWVycm9yQgoKCHJlc3BvbnNlIr4CCiBDaGVja0J1bGtQZXJtaXNzaW9u",
- "c1Jlc3BvbnNlSXRlbRJ0Cg5wZXJtaXNzaW9uc2hpcBgBIAEoDjI2LmF1dGh6",
- "ZWQuYXBpLnYxLkNoZWNrUGVybWlzc2lvblJlc3BvbnNlLlBlcm1pc3Npb25z",
- "aGlwQhT6QgeCAQQQASAAukgHggEEEAEgAFIOcGVybWlzc2lvbnNoaXASYQoT",
- "cGFydGlhbF9jYXZlYXRfaW5mbxgCIAEoCzIhLmF1dGh6ZWQuYXBpLnYxLlBh",
- "cnRpYWxDYXZlYXRJbmZvQg76QgWKAQIQALpIA8gBAFIRcGFydGlhbENhdmVh",
- "dEluZm8SQQoLZGVidWdfdHJhY2UYAyABKAsyIC5hdXRoemVkLmFwaS52MS5E",
- "ZWJ1Z0luZm9ybWF0aW9uUgpkZWJ1Z1RyYWNlIp8CChtFeHBhbmRQZXJtaXNz",
- "aW9uVHJlZVJlcXVlc3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVk",
+ "TVVTVF9OT1RfTUFUQ0gQARIYChRPUEVSQVRJT05fTVVTVF9NQVRDSBACIrkC",
+ "ChlXcml0ZVJlbGF0aW9uc2hpcHNSZXF1ZXN0EksKB3VwZGF0ZXMYASADKAsy",
+ "Ii5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBVcGRhdGVCDfpCCpIBByIF",
+ "igECEAFSB3VwZGF0ZXMSYgoWb3B0aW9uYWxfcHJlY29uZGl0aW9ucxgCIAMo",
+ "CzIcLmF1dGh6ZWQuYXBpLnYxLlByZWNvbmRpdGlvbkIN+kIKkgEHIgWKAQIQ",
+ "AVIVb3B0aW9uYWxQcmVjb25kaXRpb25zEmsKHW9wdGlvbmFsX3RyYW5zYWN0",
+ "aW9uX21ldGFkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIO",
+ "+kIFigECEAC6SAPIAQBSG29wdGlvbmFsVHJhbnNhY3Rpb25NZXRhZGF0YSJV",
+ "ChpXcml0ZVJlbGF0aW9uc2hpcHNSZXNwb25zZRI3Cgp3cml0dGVuX2F0GAEg",
+ "ASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5SCXdyaXR0ZW5BdCLSAwoa",
+ "RGVsZXRlUmVsYXRpb25zaGlwc1JlcXVlc3QSYwoTcmVsYXRpb25zaGlwX2Zp",
+ "bHRlchgBIAEoCzIiLmF1dGh6ZWQuYXBpLnYxLlJlbGF0aW9uc2hpcEZpbHRl",
+ "ckIO+kIFigECEAG6SAPIAQFSEnJlbGF0aW9uc2hpcEZpbHRlchJiChZvcHRp",
+ "b25hbF9wcmVjb25kaXRpb25zGAIgAygLMhwuYXV0aHplZC5hcGkudjEuUHJl",
+ "Y29uZGl0aW9uQg36QgqSAQciBYoBAhABUhVvcHRpb25hbFByZWNvbmRpdGlv",
+ "bnMSNQoOb3B0aW9uYWxfbGltaXQYAyABKA1CDvpCBCoCKAC6SAQqAigAUg1v",
+ "cHRpb25hbExpbWl0EkcKIG9wdGlvbmFsX2FsbG93X3BhcnRpYWxfZGVsZXRp",
+ "b25zGAQgASgIUh1vcHRpb25hbEFsbG93UGFydGlhbERlbGV0aW9ucxJrCh1v",
+ "cHRpb25hbF90cmFuc2FjdGlvbl9tZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5w",
+ "cm90b2J1Zi5TdHJ1Y3RCDvpCBYoBAhAAukgDyAEAUhtvcHRpb25hbFRyYW5z",
+ "YWN0aW9uTWV0YWRhdGEi9wIKG0RlbGV0ZVJlbGF0aW9uc2hpcHNSZXNwb25z",
+ "ZRI3CgpkZWxldGVkX2F0GAEgASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9r",
+ "ZW5SCWRlbGV0ZWRBdBJpChFkZWxldGlvbl9wcm9ncmVzcxgCIAEoDjI8LmF1",
+ "dGh6ZWQuYXBpLnYxLkRlbGV0ZVJlbGF0aW9uc2hpcHNSZXNwb25zZS5EZWxl",
+ "dGlvblByb2dyZXNzUhBkZWxldGlvblByb2dyZXNzEj4KG3JlbGF0aW9uc2hp",
+ "cHNfZGVsZXRlZF9jb3VudBgDIAEoBFIZcmVsYXRpb25zaGlwc0RlbGV0ZWRD",
+ "b3VudCJ0ChBEZWxldGlvblByb2dyZXNzEiEKHURFTEVUSU9OX1BST0dSRVNT",
+ "X1VOU1BFQ0lGSUVEEAASHgoaREVMRVRJT05fUFJPR1JFU1NfQ09NUExFVEUQ",
+ "ARIdChlERUxFVElPTl9QUk9HUkVTU19QQVJUSUFMEAIizAMKFkNoZWNrUGVy",
+ "bWlzc2lvblJlcXVlc3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVk",
"LmFwaS52MS5Db25zaXN0ZW5jeVILY29uc2lzdGVuY3kSSwoIcmVzb3VyY2UY",
"AiABKAsyHy5hdXRoemVkLmFwaS52MS5PYmplY3RSZWZlcmVuY2VCDvpCBYoB",
"AhABukgDyAEBUghyZXNvdXJjZRJ0CgpwZXJtaXNzaW9uGAMgASgJQlT6Qidy",
"JShAMiFeKFthLXpdW2EtejAtOV9dezEsNjJ9W2EtejAtOV0pPyS6SCdyJShA",
"MiFeKFthLXpdW2EtejAtOV9dezEsNjJ9W2EtejAtOV0pPyRSCnBlcm1pc3Np",
- "b24iogEKHEV4cGFuZFBlcm1pc3Npb25UcmVlUmVzcG9uc2USOQoLZXhwYW5k",
- "ZWRfYXQYASABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tlblIKZXhwYW5k",
- "ZWRBdBJHCgl0cmVlX3Jvb3QYAiABKAsyKi5hdXRoemVkLmFwaS52MS5QZXJt",
- "aXNzaW9uUmVsYXRpb25zaGlwVHJlZVIIdHJlZVJvb3QilAUKFkxvb2t1cFJl",
- "c291cmNlc1JlcXVlc3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVk",
- "LmFwaS52MS5Db25zaXN0ZW5jeVILY29uc2lzdGVuY3kSwwEKFHJlc291cmNl",
- "X29iamVjdF90eXBlGAIgASgJQpAB+kJFckMogAEyPl4oW2Etel1bYS16MC05",
- "X117MSw2MX1bYS16MC05XS8pKlthLXpdW2EtejAtOV9dezEsNjJ9W2EtejAt",
- "OV0kukhFckMogAEyPl4oW2Etel1bYS16MC05X117MSw2MX1bYS16MC05XS8p",
- "KlthLXpdW2EtejAtOV9dezEsNjJ9W2EtejAtOV0kUhJyZXNvdXJjZU9iamVj",
- "dFR5cGUSbgoKcGVybWlzc2lvbhgDIAEoCUJO+kIkciIoQDIeXlthLXpdW2Et",
- "ejAtOV9dezEsNjJ9W2EtejAtOV0kukgkciIoQDIeXlthLXpdW2EtejAtOV9d",
- "ezEsNjJ9W2EtejAtOV0kUgpwZXJtaXNzaW9uEkoKB3N1YmplY3QYBCABKAsy",
- "IC5hdXRoemVkLmFwaS52MS5TdWJqZWN0UmVmZXJlbmNlQg76QgWKAQIQAbpI",
- "A8gBAVIHc3ViamVjdBJBCgdjb250ZXh0GAUgASgLMhcuZ29vZ2xlLnByb3Rv",
- "YnVmLlN0cnVjdEIO+kIFigECEAC6SAPIAQBSB2NvbnRleHQSNQoOb3B0aW9u",
- "YWxfbGltaXQYBiABKA1CDvpCBCoCKAC6SAQqAigAUg1vcHRpb25hbExpbWl0",
- "Ej8KD29wdGlvbmFsX2N1cnNvchgHIAEoCzIWLmF1dGh6ZWQuYXBpLnYxLkN1",
- "cnNvclIOb3B0aW9uYWxDdXJzb3IikgMKF0xvb2t1cFJlc291cmNlc1Jlc3Bv",
- "bnNlEjoKDGxvb2tlZF91cF9hdBgBIAEoCzIYLmF1dGh6ZWQuYXBpLnYxLlpl",
- "ZFRva2VuUgpsb29rZWRVcEF0EiwKEnJlc291cmNlX29iamVjdF9pZBgCIAEo",
- "CVIQcmVzb3VyY2VPYmplY3RJZBJiCg5wZXJtaXNzaW9uc2hpcBgDIAEoDjIk",
- "LmF1dGh6ZWQuYXBpLnYxLkxvb2t1cFBlcm1pc3Npb25zaGlwQhT6QgeCAQQQ",
- "ASAAukgHggEEEAEgAFIOcGVybWlzc2lvbnNoaXASYQoTcGFydGlhbF9jYXZl",
- "YXRfaW5mbxgEIAEoCzIhLmF1dGh6ZWQuYXBpLnYxLlBhcnRpYWxDYXZlYXRJ",
- "bmZvQg76QgWKAQIQALpIA8gBAFIRcGFydGlhbENhdmVhdEluZm8SRgoTYWZ0",
- "ZXJfcmVzdWx0X2N1cnNvchgFIAEoCzIWLmF1dGh6ZWQuYXBpLnYxLkN1cnNv",
- "clIRYWZ0ZXJSZXN1bHRDdXJzb3IinAgKFUxvb2t1cFN1YmplY3RzUmVxdWVz",
- "dBI9Cgtjb25zaXN0ZW5jeRgBIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkNvbnNp",
- "c3RlbmN5Ugtjb25zaXN0ZW5jeRJLCghyZXNvdXJjZRgCIAEoCzIfLmF1dGh6",
- "ZWQuYXBpLnYxLk9iamVjdFJlZmVyZW5jZUIO+kIFigECEAG6SAPIAQFSCHJl",
- "c291cmNlEnQKCnBlcm1pc3Npb24YAyABKAlCVPpCJ3IlKEAyIV4oW2Etel1b",
- "YS16MC05X117MSw2Mn1bYS16MC05XSk/JLpIJ3IlKEAyIV4oW2Etel1bYS16",
- "MC05X117MSw2Mn1bYS16MC05XSk/JFIKcGVybWlzc2lvbhLBAQoTc3ViamVj",
- "dF9vYmplY3RfdHlwZRgEIAEoCUKQAfpCRXJDKIABMj5eKFthLXpdW2EtejAt",
- "OV9dezEsNjF9W2EtejAtOV0vKSpbYS16XVthLXowLTlfXXsxLDYyfVthLXow",
- "LTldJLpIRXJDKIABMj5eKFthLXpdW2EtejAtOV9dezEsNjF9W2EtejAtOV0v",
- "KSpbYS16XVthLXowLTlfXXsxLDYyfVthLXowLTldJFIRc3ViamVjdE9iamVj",
- "dFR5cGUSkAEKGW9wdGlvbmFsX3N1YmplY3RfcmVsYXRpb24YBSABKAlCVPpC",
- "J3IlKEAyIV4oW2Etel1bYS16MC05X117MSw2Mn1bYS16MC05XSk/JLpIJ3Il",
- "KEAyIV4oW2Etel1bYS16MC05X117MSw2Mn1bYS16MC05XSk/JFIXb3B0aW9u",
- "YWxTdWJqZWN0UmVsYXRpb24SQQoHY29udGV4dBgGIAEoCzIXLmdvb2dsZS5w",
- "cm90b2J1Zi5TdHJ1Y3RCDvpCBYoBAhAAukgDyAEAUgdjb250ZXh0EkYKF29w",
- "dGlvbmFsX2NvbmNyZXRlX2xpbWl0GAcgASgNQg76QgQqAigAukgEKgIoAFIV",
- "b3B0aW9uYWxDb25jcmV0ZUxpbWl0Ej8KD29wdGlvbmFsX2N1cnNvchgIIAEo",
- "CzIWLmF1dGh6ZWQuYXBpLnYxLkN1cnNvclIOb3B0aW9uYWxDdXJzb3ISXQoP",
- "d2lsZGNhcmRfb3B0aW9uGAkgASgOMjQuYXV0aHplZC5hcGkudjEuTG9va3Vw",
- "U3ViamVjdHNSZXF1ZXN0LldpbGRjYXJkT3B0aW9uUg53aWxkY2FyZE9wdGlv",
- "biJ/Cg5XaWxkY2FyZE9wdGlvbhIfChtXSUxEQ0FSRF9PUFRJT05fVU5TUEVD",
- "SUZJRUQQABIlCiFXSUxEQ0FSRF9PUFRJT05fSU5DTFVERV9XSUxEQ0FSRFMQ",
- "ARIlCiFXSUxEQ0FSRF9PUFRJT05fRVhDTFVERV9XSUxEQ0FSRFMQAiLWBAoW",
- "TG9va3VwU3ViamVjdHNSZXNwb25zZRI6Cgxsb29rZWRfdXBfYXQYASABKAsy",
- "GC5hdXRoemVkLmFwaS52MS5aZWRUb2tlblIKbG9va2VkVXBBdBIuChFzdWJq",
- "ZWN0X29iamVjdF9pZBgCIAEoCUICGAFSD3N1YmplY3RPYmplY3RJZBI0ChRl",
- "eGNsdWRlZF9zdWJqZWN0X2lkcxgDIAMoCUICGAFSEmV4Y2x1ZGVkU3ViamVj",
- "dElkcxJkCg5wZXJtaXNzaW9uc2hpcBgEIAEoDjIkLmF1dGh6ZWQuYXBpLnYx",
- "Lkxvb2t1cFBlcm1pc3Npb25zaGlwQhYYAfpCB4IBBBABIAC6SAeCAQQQASAA",
- "Ug5wZXJtaXNzaW9uc2hpcBJjChNwYXJ0aWFsX2NhdmVhdF9pbmZvGAUgASgL",
- "MiEuYXV0aHplZC5hcGkudjEuUGFydGlhbENhdmVhdEluZm9CEBgB+kIFigEC",
- "EAC6SAPIAQBSEXBhcnRpYWxDYXZlYXRJbmZvEjkKB3N1YmplY3QYBiABKAsy",
- "Hy5hdXRoemVkLmFwaS52MS5SZXNvbHZlZFN1YmplY3RSB3N1YmplY3QSTAoR",
- "ZXhjbHVkZWRfc3ViamVjdHMYByADKAsyHy5hdXRoemVkLmFwaS52MS5SZXNv",
- "bHZlZFN1YmplY3RSEGV4Y2x1ZGVkU3ViamVjdHMSRgoTYWZ0ZXJfcmVzdWx0",
- "X2N1cnNvchgIIAEoCzIWLmF1dGh6ZWQuYXBpLnYxLkN1cnNvclIRYWZ0ZXJS",
- "ZXN1bHRDdXJzb3IihAIKD1Jlc29sdmVkU3ViamVjdBIqChFzdWJqZWN0X29i",
- "amVjdF9pZBgBIAEoCVIPc3ViamVjdE9iamVjdElkEmIKDnBlcm1pc3Npb25z",
- "aGlwGAIgASgOMiQuYXV0aHplZC5hcGkudjEuTG9va3VwUGVybWlzc2lvbnNo",
- "aXBCFPpCB4IBBBABIAC6SAeCAQQQASAAUg5wZXJtaXNzaW9uc2hpcBJhChNw",
- "YXJ0aWFsX2NhdmVhdF9pbmZvGAMgASgLMiEuYXV0aHplZC5hcGkudjEuUGFy",
- "dGlhbENhdmVhdEluZm9CDvpCBYoBAhAAukgDyAEAUhFwYXJ0aWFsQ2F2ZWF0",
- "SW5mbyJ+Ch5JbXBvcnRCdWxrUmVsYXRpb25zaGlwc1JlcXVlc3QSXAoNcmVs",
- "YXRpb25zaGlwcxgBIAMoCzIcLmF1dGh6ZWQuYXBpLnYxLlJlbGF0aW9uc2hp",
- "cEIY+kIKkgEHIgWKAQIQAbpICJIBBSIDyAEBUg1yZWxhdGlvbnNoaXBzIkAK",
- "H0ltcG9ydEJ1bGtSZWxhdGlvbnNoaXBzUmVzcG9uc2USHQoKbnVtX2xvYWRl",
- "ZBgBIAEoBFIJbnVtTG9hZGVkIr0CCh5FeHBvcnRCdWxrUmVsYXRpb25zaGlw",
- "c1JlcXVlc3QSPQoLY29uc2lzdGVuY3kYASABKAsyGy5hdXRoemVkLmFwaS52",
- "MS5Db25zaXN0ZW5jeVILY29uc2lzdGVuY3kSNQoOb3B0aW9uYWxfbGltaXQY",
- "AiABKA1CDvpCBCoCKAC6SAQqAigAUg1vcHRpb25hbExpbWl0Ej8KD29wdGlv",
- "bmFsX2N1cnNvchgDIAEoCzIWLmF1dGh6ZWQuYXBpLnYxLkN1cnNvclIOb3B0",
- "aW9uYWxDdXJzb3ISZAocb3B0aW9uYWxfcmVsYXRpb25zaGlwX2ZpbHRlchgE",
- "IAEoCzIiLmF1dGh6ZWQuYXBpLnYxLlJlbGF0aW9uc2hpcEZpbHRlclIab3B0",
- "aW9uYWxSZWxhdGlvbnNoaXBGaWx0ZXIirQEKH0V4cG9ydEJ1bGtSZWxhdGlv",
- "bnNoaXBzUmVzcG9uc2USRgoTYWZ0ZXJfcmVzdWx0X2N1cnNvchgBIAEoCzIW",
- "LmF1dGh6ZWQuYXBpLnYxLkN1cnNvclIRYWZ0ZXJSZXN1bHRDdXJzb3ISQgoN",
- "cmVsYXRpb25zaGlwcxgCIAMoCzIcLmF1dGh6ZWQuYXBpLnYxLlJlbGF0aW9u",
- "c2hpcFINcmVsYXRpb25zaGlwcyqZAQoUTG9va3VwUGVybWlzc2lvbnNoaXAS",
- "JQohTE9PS1VQX1BFUk1JU1NJT05TSElQX1VOU1BFQ0lGSUVEEAASKAokTE9P",
- "S1VQX1BFUk1JU1NJT05TSElQX0hBU19QRVJNSVNTSU9OEAESMAosTE9PS1VQ",
- "X1BFUk1JU1NJT05TSElQX0NPTkRJVElPTkFMX1BFUk1JU1NJT04QAjKKDQoS",
- "UGVybWlzc2lvbnNTZXJ2aWNlEp0BChFSZWFkUmVsYXRpb25zaGlwcxIoLmF1",
- "dGh6ZWQuYXBpLnYxLlJlYWRSZWxhdGlvbnNoaXBzUmVxdWVzdBopLmF1dGh6",
- "ZWQuYXBpLnYxLlJlYWRSZWxhdGlvbnNoaXBzUmVzcG9uc2UiMZJBDQoLUGVy",
- "bWlzc2lvbnOC0+STAhsiFi92MS9yZWxhdGlvbnNoaXBzL3JlYWQ6ASowARKf",
- "AQoSV3JpdGVSZWxhdGlvbnNoaXBzEikuYXV0aHplZC5hcGkudjEuV3JpdGVS",
- "ZWxhdGlvbnNoaXBzUmVxdWVzdBoqLmF1dGh6ZWQuYXBpLnYxLldyaXRlUmVs",
- "YXRpb25zaGlwc1Jlc3BvbnNlIjKSQQ0KC1Blcm1pc3Npb25zgtPkkwIcIhcv",
- "djEvcmVsYXRpb25zaGlwcy93cml0ZToBKhKjAQoTRGVsZXRlUmVsYXRpb25z",
- "aGlwcxIqLmF1dGh6ZWQuYXBpLnYxLkRlbGV0ZVJlbGF0aW9uc2hpcHNSZXF1",
- "ZXN0GisuYXV0aHplZC5hcGkudjEuRGVsZXRlUmVsYXRpb25zaGlwc1Jlc3Bv",
- "bnNlIjOSQQ0KC1Blcm1pc3Npb25zgtPkkwIdIhgvdjEvcmVsYXRpb25zaGlw",
- "cy9kZWxldGU6ASoSlAEKD0NoZWNrUGVybWlzc2lvbhImLmF1dGh6ZWQuYXBp",
- "LnYxLkNoZWNrUGVybWlzc2lvblJlcXVlc3QaJy5hdXRoemVkLmFwaS52MS5D",
- "aGVja1Blcm1pc3Npb25SZXNwb25zZSIwkkENCgtQZXJtaXNzaW9uc4LT5JMC",
- "GiIVL3YxL3Blcm1pc3Npb25zL2NoZWNrOgEqEqcBChRDaGVja0J1bGtQZXJt",
- "aXNzaW9ucxIrLmF1dGh6ZWQuYXBpLnYxLkNoZWNrQnVsa1Blcm1pc3Npb25z",
- "UmVxdWVzdBosLmF1dGh6ZWQuYXBpLnYxLkNoZWNrQnVsa1Blcm1pc3Npb25z",
- "UmVzcG9uc2UiNJJBDQoLUGVybWlzc2lvbnOC0+STAh4iGS92MS9wZXJtaXNz",
- "aW9ucy9jaGVja2J1bGs6ASoSpAEKFEV4cGFuZFBlcm1pc3Npb25UcmVlEisu",
- "YXV0aHplZC5hcGkudjEuRXhwYW5kUGVybWlzc2lvblRyZWVSZXF1ZXN0Giwu",
- "YXV0aHplZC5hcGkudjEuRXhwYW5kUGVybWlzc2lvblRyZWVSZXNwb25zZSIx",
- "kkENCgtQZXJtaXNzaW9uc4LT5JMCGyIWL3YxL3Blcm1pc3Npb25zL2V4cGFu",
- "ZDoBKhKaAQoPTG9va3VwUmVzb3VyY2VzEiYuYXV0aHplZC5hcGkudjEuTG9v",
- "a3VwUmVzb3VyY2VzUmVxdWVzdBonLmF1dGh6ZWQuYXBpLnYxLkxvb2t1cFJl",
- "c291cmNlc1Jlc3BvbnNlIjSSQQ0KC1Blcm1pc3Npb25zgtPkkwIeIhkvdjEv",
- "cGVybWlzc2lvbnMvcmVzb3VyY2VzOgEqMAESlgEKDkxvb2t1cFN1YmplY3Rz",
- "EiUuYXV0aHplZC5hcGkudjEuTG9va3VwU3ViamVjdHNSZXF1ZXN0GiYuYXV0",
- "aHplZC5hcGkudjEuTG9va3VwU3ViamVjdHNSZXNwb25zZSIzkkENCgtQZXJt",
- "aXNzaW9uc4LT5JMCHSIYL3YxL3Blcm1pc3Npb25zL3N1YmplY3RzOgEqMAES",
- "tQEKF0ltcG9ydEJ1bGtSZWxhdGlvbnNoaXBzEi4uYXV0aHplZC5hcGkudjEu",
- "SW1wb3J0QnVsa1JlbGF0aW9uc2hpcHNSZXF1ZXN0Gi8uYXV0aHplZC5hcGku",
- "djEuSW1wb3J0QnVsa1JlbGF0aW9uc2hpcHNSZXNwb25zZSI3kkENCgtQZXJt",
- "aXNzaW9uc4LT5JMCISIcL3YxL3JlbGF0aW9uc2hpcHMvaW1wb3J0YnVsazoB",
- "KigBErUBChdFeHBvcnRCdWxrUmVsYXRpb25zaGlwcxIuLmF1dGh6ZWQuYXBp",
- "LnYxLkV4cG9ydEJ1bGtSZWxhdGlvbnNoaXBzUmVxdWVzdBovLmF1dGh6ZWQu",
- "YXBpLnYxLkV4cG9ydEJ1bGtSZWxhdGlvbnNoaXBzUmVzcG9uc2UiN5JBDQoL",
- "UGVybWlzc2lvbnOC0+STAiEiHC92MS9yZWxhdGlvbnNoaXBzL2V4cG9ydGJ1",
- "bGs6ASowAUJKChJjb20uYXV0aHplZC5hcGkudjFQAVoyZ2l0aHViLmNvbS9h",
- "dXRoemVkL2F1dGh6ZWQtZ28vcHJvdG8vYXV0aHplZC9hcGkvdjFiBnByb3Rv",
- "Mw=="));
+ "b24SSgoHc3ViamVjdBgEIAEoCzIgLmF1dGh6ZWQuYXBpLnYxLlN1YmplY3RS",
+ "ZWZlcmVuY2VCDvpCBYoBAhABukgDyAEBUgdzdWJqZWN0EkEKB2NvbnRleHQY",
+ "BSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qg76QgWKAQIQALpIA8gB",
+ "AFIHY29udGV4dBIhCgx3aXRoX3RyYWNpbmcYBiABKAhSC3dpdGhUcmFjaW5n",
+ "Iu0EChdDaGVja1Blcm1pc3Npb25SZXNwb25zZRJHCgpjaGVja2VkX2F0GAEg",
+ "ASgLMhguYXV0aHplZC5hcGkudjEuWmVkVG9rZW5CDvpCBYoBAhAAukgDyAEA",
+ "UgljaGVja2VkQXQSdAoOcGVybWlzc2lvbnNoaXAYAiABKA4yNi5hdXRoemVk",
+ "LmFwaS52MS5DaGVja1Blcm1pc3Npb25SZXNwb25zZS5QZXJtaXNzaW9uc2hp",
+ "cEIU+kIHggEEEAEgALpIB4IBBBABIABSDnBlcm1pc3Npb25zaGlwEmEKE3Bh",
+ "cnRpYWxfY2F2ZWF0X2luZm8YAyABKAsyIS5hdXRoemVkLmFwaS52MS5QYXJ0",
+ "aWFsQ2F2ZWF0SW5mb0IO+kIFigECEAC6SAPIAQBSEXBhcnRpYWxDYXZlYXRJ",
+ "bmZvEkEKC2RlYnVnX3RyYWNlGAQgASgLMiAuYXV0aHplZC5hcGkudjEuRGVi",
+ "dWdJbmZvcm1hdGlvblIKZGVidWdUcmFjZRJKChNvcHRpb25hbF9leHBpcmVz",
+ "X2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9u",
+ "YWxFeHBpcmVzQXQioAEKDlBlcm1pc3Npb25zaGlwEh4KGlBFUk1JU1NJT05T",
+ "SElQX1VOU1BFQ0lGSUVEEAASIAocUEVSTUlTU0lPTlNISVBfTk9fUEVSTUlT",
+ "U0lPThABEiEKHVBFUk1JU1NJT05TSElQX0hBU19QRVJNSVNTSU9OEAISKQol",
+ "UEVSTUlTU0lPTlNISVBfQ09ORElUSU9OQUxfUEVSTUlTU0lPThADItUBChtD",
+ "aGVja0J1bGtQZXJtaXNzaW9uc1JlcXVlc3QSPQoLY29uc2lzdGVuY3kYASAB",
+ "KAsyGy5hdXRoemVkLmFwaS52MS5Db25zaXN0ZW5jeVILY29uc2lzdGVuY3kS",
+ "VAoFaXRlbXMYAiADKAsyLy5hdXRoemVkLmFwaS52MS5DaGVja0J1bGtQZXJt",
+ "aXNzaW9uc1JlcXVlc3RJdGVtQg36QgqSAQciBYoBAhABUgVpdGVtcxIhCgx3",
+ "aXRoX3RyYWNpbmcYAyABKAhSC3dpdGhUcmFjaW5nIvMCCh9DaGVja0J1bGtQ",
+ "ZXJtaXNzaW9uc1JlcXVlc3RJdGVtEksKCHJlc291cmNlGAEgASgLMh8uYXV0",
+ "aHplZC5hcGkudjEuT2JqZWN0UmVmZXJlbmNlQg76QgWKAQIQAbpIA8gBAVII",
+ "cmVzb3VyY2USdAoKcGVybWlzc2lvbhgCIAEoCUJU+kInciUoQDIhXihbYS16",
+ "XVthLXowLTlfXXsxLDYyfVthLXowLTldKT8kukgnciUoQDIhXihbYS16XVth",
+ "LXowLTlfXXsxLDYyfVthLXowLTldKT8kUgpwZXJtaXNzaW9uEkoKB3N1Ympl",
+ "Y3QYAyABKAsyIC5hdXRoemVkLmFwaS52MS5TdWJqZWN0UmVmZXJlbmNlQg76",
+ "QgWKAQIQAbpIA8gBAVIHc3ViamVjdBJBCgdjb250ZXh0GAQgASgLMhcuZ29v",
+ "Z2xlLnByb3RvYnVmLlN0cnVjdEIO+kIFigECEAC6SAPIAQBSB2NvbnRleHQi",
+ "tgEKHENoZWNrQnVsa1Blcm1pc3Npb25zUmVzcG9uc2USRwoKY2hlY2tlZF9h",
+ "dBgBIAEoCzIYLmF1dGh6ZWQuYXBpLnYxLlplZFRva2VuQg76QgWKAQIQALpI",
+ "A8gBAFIJY2hlY2tlZEF0Ek0KBXBhaXJzGAIgAygLMiguYXV0aHplZC5hcGku",
+ "djEuQ2hlY2tCdWxrUGVybWlzc2lvbnNQYWlyQg36QgqSAQciBYoBAhABUgVw",
+ "YWlycyLlAQoYQ2hlY2tCdWxrUGVybWlzc2lvbnNQYWlyEkkKB3JlcXVlc3QY",
+ "ASABKAsyLy5hdXRoemVkLmFwaS52MS5DaGVja0J1bGtQZXJtaXNzaW9uc1Jl",
+ "cXVlc3RJdGVtUgdyZXF1ZXN0EkYKBGl0ZW0YAiABKAsyMC5hdXRoemVkLmFw",
+ "aS52MS5DaGVja0J1bGtQZXJtaXNzaW9uc1Jlc3BvbnNlSXRlbUgAUgRpdGVt",
+ "EioKBWVycm9yGAMgASgLMhIuZ29vZ2xlLnJwYy5TdGF0dXNIAFIFZXJyb3JC",
+ "CgoIcmVzcG9uc2UivgIKIENoZWNrQnVsa1Blcm1pc3Npb25zUmVzcG9uc2VJ",
+ "dGVtEnQKDnBlcm1pc3Npb25zaGlwGAEgASgOMjYuYXV0aHplZC5hcGkudjEu",
+ "Q2hlY2tQZXJtaXNzaW9uUmVzcG9uc2UuUGVybWlzc2lvbnNoaXBCFPpCB4IB",
+ "BBABIAC6SAeCAQQQASAAUg5wZXJtaXNzaW9uc2hpcBJhChNwYXJ0aWFsX2Nh",
+ "dmVhdF9pbmZvGAIgASgLMiEuYXV0aHplZC5hcGkudjEuUGFydGlhbENhdmVh",
+ "dEluZm9CDvpCBYoBAhAAukgDyAEAUhFwYXJ0aWFsQ2F2ZWF0SW5mbxJBCgtk",
+ "ZWJ1Z190cmFjZRgDIAEoCzIgLmF1dGh6ZWQuYXBpLnYxLkRlYnVnSW5mb3Jt",
+ "YXRpb25SCmRlYnVnVHJhY2UinwIKG0V4cGFuZFBlcm1pc3Npb25UcmVlUmVx",
+ "dWVzdBI9Cgtjb25zaXN0ZW5jeRgBIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkNv",
+ "bnNpc3RlbmN5Ugtjb25zaXN0ZW5jeRJLCghyZXNvdXJjZRgCIAEoCzIfLmF1",
+ "dGh6ZWQuYXBpLnYxLk9iamVjdFJlZmVyZW5jZUIO+kIFigECEAG6SAPIAQFS",
+ "CHJlc291cmNlEnQKCnBlcm1pc3Npb24YAyABKAlCVPpCJ3IlKEAyIV4oW2Et",
+ "el1bYS16MC05X117MSw2Mn1bYS16MC05XSk/JLpIJ3IlKEAyIV4oW2Etel1b",
+ "YS16MC05X117MSw2Mn1bYS16MC05XSk/JFIKcGVybWlzc2lvbiKiAQocRXhw",
+ "YW5kUGVybWlzc2lvblRyZWVSZXNwb25zZRI5CgtleHBhbmRlZF9hdBgBIAEo",
+ "CzIYLmF1dGh6ZWQuYXBpLnYxLlplZFRva2VuUgpleHBhbmRlZEF0EkcKCXRy",
+ "ZWVfcm9vdBgCIAEoCzIqLmF1dGh6ZWQuYXBpLnYxLlBlcm1pc3Npb25SZWxh",
+ "dGlvbnNoaXBUcmVlUgh0cmVlUm9vdCKzBQoWTG9va3VwUmVzb3VyY2VzUmVx",
+ "dWVzdBI9Cgtjb25zaXN0ZW5jeRgBIAEoCzIbLmF1dGh6ZWQuYXBpLnYxLkNv",
+ "bnNpc3RlbmN5Ugtjb25zaXN0ZW5jeRLDAQoUcmVzb3VyY2Vfb2JqZWN0X3R5",
+ "cGUYAiABKAlCkAH6QkVyQyiAATI+XihbYS16XVthLXowLTlfXXsxLDYxfVth",
+ "LXowLTldLykqW2Etel1bYS16MC05X117MSw2Mn1bYS16MC05XSS6SEVyQyiA",
+ "ATI+XihbYS16XVthLXowLTlfXXsxLDYxfVthLXowLTldLykqW2Etel1bYS16",
+ "MC05X117MSw2Mn1bYS16MC05XSRSEnJlc291cmNlT2JqZWN0VHlwZRJuCgpw",
+ "ZXJtaXNzaW9uGAMgASgJQk76QiRyIihAMh5eW2Etel1bYS16MC05X117MSw2",
+ "Mn1bYS16MC05XSS6SCRyIihAMh5eW2Etel1bYS16MC05X117MSw2Mn1bYS16",
+ "MC05XSRSCnBlcm1pc3Npb24SSgoHc3ViamVjdBgEIAEoCzIgLmF1dGh6ZWQu",
+ "YXBpLnYxLlN1YmplY3RSZWZlcmVuY2VCDvpCBYoBAhABukgDyAEBUgdzdWJq",
+ "ZWN0EkEKB2NvbnRleHQYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0",
+ "Qg76QgWKAQIQALpIA8gBAFIHY29udGV4dBI1Cg5vcHRpb25hbF9saW1pdBgG",
+ "IAEoDUIO+kIEKgIoALpIBCoCKABSDW9wdGlvbmFsTGltaXQSPwoPb3B0aW9u",
+ "YWxfY3Vyc29yGAcgASgLMhYuYXV0aHplZC5hcGkudjEuQ3Vyc29yUg5vcHRp",
+ "b25hbEN1cnNvchIdCgp3aXRoX2RlYnVnGAggASgIUgl3aXRoRGVidWcikgMK",
+ "F0xvb2t1cFJlc291cmNlc1Jlc3BvbnNlEjoKDGxvb2tlZF91cF9hdBgBIAEo",
+ "CzIYLmF1dGh6ZWQuYXBpLnYxLlplZFRva2VuUgpsb29rZWRVcEF0EiwKEnJl",
+ "c291cmNlX29iamVjdF9pZBgCIAEoCVIQcmVzb3VyY2VPYmplY3RJZBJiCg5w",
+ "ZXJtaXNzaW9uc2hpcBgDIAEoDjIkLmF1dGh6ZWQuYXBpLnYxLkxvb2t1cFBl",
+ "cm1pc3Npb25zaGlwQhT6QgeCAQQQASAAukgHggEEEAEgAFIOcGVybWlzc2lv",
+ "bnNoaXASYQoTcGFydGlhbF9jYXZlYXRfaW5mbxgEIAEoCzIhLmF1dGh6ZWQu",
+ "YXBpLnYxLlBhcnRpYWxDYXZlYXRJbmZvQg76QgWKAQIQALpIA8gBAFIRcGFy",
+ "dGlhbENhdmVhdEluZm8SRgoTYWZ0ZXJfcmVzdWx0X2N1cnNvchgFIAEoCzIW",
+ "LmF1dGh6ZWQuYXBpLnYxLkN1cnNvclIRYWZ0ZXJSZXN1bHRDdXJzb3IinAgK",
+ "FUxvb2t1cFN1YmplY3RzUmVxdWVzdBI9Cgtjb25zaXN0ZW5jeRgBIAEoCzIb",
+ "LmF1dGh6ZWQuYXBpLnYxLkNvbnNpc3RlbmN5Ugtjb25zaXN0ZW5jeRJLCghy",
+ "ZXNvdXJjZRgCIAEoCzIfLmF1dGh6ZWQuYXBpLnYxLk9iamVjdFJlZmVyZW5j",
+ "ZUIO+kIFigECEAG6SAPIAQFSCHJlc291cmNlEnQKCnBlcm1pc3Npb24YAyAB",
+ "KAlCVPpCJ3IlKEAyIV4oW2Etel1bYS16MC05X117MSw2Mn1bYS16MC05XSk/",
+ "JLpIJ3IlKEAyIV4oW2Etel1bYS16MC05X117MSw2Mn1bYS16MC05XSk/JFIK",
+ "cGVybWlzc2lvbhLBAQoTc3ViamVjdF9vYmplY3RfdHlwZRgEIAEoCUKQAfpC",
+ "RXJDKIABMj5eKFthLXpdW2EtejAtOV9dezEsNjF9W2EtejAtOV0vKSpbYS16",
+ "XVthLXowLTlfXXsxLDYyfVthLXowLTldJLpIRXJDKIABMj5eKFthLXpdW2Et",
+ "ejAtOV9dezEsNjF9W2EtejAtOV0vKSpbYS16XVthLXowLTlfXXsxLDYyfVth",
+ "LXowLTldJFIRc3ViamVjdE9iamVjdFR5cGUSkAEKGW9wdGlvbmFsX3N1Ympl",
+ "Y3RfcmVsYXRpb24YBSABKAlCVPpCJ3IlKEAyIV4oW2Etel1bYS16MC05X117",
+ "MSw2Mn1bYS16MC05XSk/JLpIJ3IlKEAyIV4oW2Etel1bYS16MC05X117MSw2",
+ "Mn1bYS16MC05XSk/JFIXb3B0aW9uYWxTdWJqZWN0UmVsYXRpb24SQQoHY29u",
+ "dGV4dBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCDvpCBYoBAhAA",
+ "ukgDyAEAUgdjb250ZXh0EkYKF29wdGlvbmFsX2NvbmNyZXRlX2xpbWl0GAcg",
+ "ASgNQg76QgQqAigAukgEKgIoAFIVb3B0aW9uYWxDb25jcmV0ZUxpbWl0Ej8K",
+ "D29wdGlvbmFsX2N1cnNvchgIIAEoCzIWLmF1dGh6ZWQuYXBpLnYxLkN1cnNv",
+ "clIOb3B0aW9uYWxDdXJzb3ISXQoPd2lsZGNhcmRfb3B0aW9uGAkgASgOMjQu",
+ "YXV0aHplZC5hcGkudjEuTG9va3VwU3ViamVjdHNSZXF1ZXN0LldpbGRjYXJk",
+ "T3B0aW9uUg53aWxkY2FyZE9wdGlvbiJ/Cg5XaWxkY2FyZE9wdGlvbhIfChtX",
+ "SUxEQ0FSRF9PUFRJT05fVU5TUEVDSUZJRUQQABIlCiFXSUxEQ0FSRF9PUFRJ",
+ "T05fSU5DTFVERV9XSUxEQ0FSRFMQARIlCiFXSUxEQ0FSRF9PUFRJT05fRVhD",
+ "TFVERV9XSUxEQ0FSRFMQAiLWBAoWTG9va3VwU3ViamVjdHNSZXNwb25zZRI6",
+ "Cgxsb29rZWRfdXBfYXQYASABKAsyGC5hdXRoemVkLmFwaS52MS5aZWRUb2tl",
+ "blIKbG9va2VkVXBBdBIuChFzdWJqZWN0X29iamVjdF9pZBgCIAEoCUICGAFS",
+ "D3N1YmplY3RPYmplY3RJZBI0ChRleGNsdWRlZF9zdWJqZWN0X2lkcxgDIAMo",
+ "CUICGAFSEmV4Y2x1ZGVkU3ViamVjdElkcxJkCg5wZXJtaXNzaW9uc2hpcBgE",
+ "IAEoDjIkLmF1dGh6ZWQuYXBpLnYxLkxvb2t1cFBlcm1pc3Npb25zaGlwQhYY",
+ "AfpCB4IBBBABIAC6SAeCAQQQASAAUg5wZXJtaXNzaW9uc2hpcBJjChNwYXJ0",
+ "aWFsX2NhdmVhdF9pbmZvGAUgASgLMiEuYXV0aHplZC5hcGkudjEuUGFydGlh",
+ "bENhdmVhdEluZm9CEBgB+kIFigECEAC6SAPIAQBSEXBhcnRpYWxDYXZlYXRJ",
+ "bmZvEjkKB3N1YmplY3QYBiABKAsyHy5hdXRoemVkLmFwaS52MS5SZXNvbHZl",
+ "ZFN1YmplY3RSB3N1YmplY3QSTAoRZXhjbHVkZWRfc3ViamVjdHMYByADKAsy",
+ "Hy5hdXRoemVkLmFwaS52MS5SZXNvbHZlZFN1YmplY3RSEGV4Y2x1ZGVkU3Vi",
+ "amVjdHMSRgoTYWZ0ZXJfcmVzdWx0X2N1cnNvchgIIAEoCzIWLmF1dGh6ZWQu",
+ "YXBpLnYxLkN1cnNvclIRYWZ0ZXJSZXN1bHRDdXJzb3IihAIKD1Jlc29sdmVk",
+ "U3ViamVjdBIqChFzdWJqZWN0X29iamVjdF9pZBgBIAEoCVIPc3ViamVjdE9i",
+ "amVjdElkEmIKDnBlcm1pc3Npb25zaGlwGAIgASgOMiQuYXV0aHplZC5hcGku",
+ "djEuTG9va3VwUGVybWlzc2lvbnNoaXBCFPpCB4IBBBABIAC6SAeCAQQQASAA",
+ "Ug5wZXJtaXNzaW9uc2hpcBJhChNwYXJ0aWFsX2NhdmVhdF9pbmZvGAMgASgL",
+ "MiEuYXV0aHplZC5hcGkudjEuUGFydGlhbENhdmVhdEluZm9CDvpCBYoBAhAA",
+ "ukgDyAEAUhFwYXJ0aWFsQ2F2ZWF0SW5mbyJzCh5JbXBvcnRCdWxrUmVsYXRp",
+ "b25zaGlwc1JlcXVlc3QSUQoNcmVsYXRpb25zaGlwcxgBIAMoCzIcLmF1dGh6",
+ "ZWQuYXBpLnYxLlJlbGF0aW9uc2hpcEIN+kIKkgEHIgWKAQIQAVINcmVsYXRp",
+ "b25zaGlwcyJACh9JbXBvcnRCdWxrUmVsYXRpb25zaGlwc1Jlc3BvbnNlEh0K",
+ "Cm51bV9sb2FkZWQYASABKARSCW51bUxvYWRlZCK9AgoeRXhwb3J0QnVsa1Jl",
+ "bGF0aW9uc2hpcHNSZXF1ZXN0Ej0KC2NvbnNpc3RlbmN5GAEgASgLMhsuYXV0",
+ "aHplZC5hcGkudjEuQ29uc2lzdGVuY3lSC2NvbnNpc3RlbmN5EjUKDm9wdGlv",
+ "bmFsX2xpbWl0GAIgASgNQg76QgQqAigAukgEKgIoAFINb3B0aW9uYWxMaW1p",
+ "dBI/Cg9vcHRpb25hbF9jdXJzb3IYAyABKAsyFi5hdXRoemVkLmFwaS52MS5D",
+ "dXJzb3JSDm9wdGlvbmFsQ3Vyc29yEmQKHG9wdGlvbmFsX3JlbGF0aW9uc2hp",
+ "cF9maWx0ZXIYBCABKAsyIi5hdXRoemVkLmFwaS52MS5SZWxhdGlvbnNoaXBG",
+ "aWx0ZXJSGm9wdGlvbmFsUmVsYXRpb25zaGlwRmlsdGVyIq0BCh9FeHBvcnRC",
+ "dWxrUmVsYXRpb25zaGlwc1Jlc3BvbnNlEkYKE2FmdGVyX3Jlc3VsdF9jdXJz",
+ "b3IYASABKAsyFi5hdXRoemVkLmFwaS52MS5DdXJzb3JSEWFmdGVyUmVzdWx0",
+ "Q3Vyc29yEkIKDXJlbGF0aW9uc2hpcHMYAiADKAsyHC5hdXRoemVkLmFwaS52",
+ "MS5SZWxhdGlvbnNoaXBSDXJlbGF0aW9uc2hpcHMqmQEKFExvb2t1cFBlcm1p",
+ "c3Npb25zaGlwEiUKIUxPT0tVUF9QRVJNSVNTSU9OU0hJUF9VTlNQRUNJRklF",
+ "RBAAEigKJExPT0tVUF9QRVJNSVNTSU9OU0hJUF9IQVNfUEVSTUlTU0lPThAB",
+ "EjAKLExPT0tVUF9QRVJNSVNTSU9OU0hJUF9DT05ESVRJT05BTF9QRVJNSVNT",
+ "SU9OEAIyig0KElBlcm1pc3Npb25zU2VydmljZRKdAQoRUmVhZFJlbGF0aW9u",
+ "c2hpcHMSKC5hdXRoemVkLmFwaS52MS5SZWFkUmVsYXRpb25zaGlwc1JlcXVl",
+ "c3QaKS5hdXRoemVkLmFwaS52MS5SZWFkUmVsYXRpb25zaGlwc1Jlc3BvbnNl",
+ "IjGSQQ0KC1Blcm1pc3Npb25zgtPkkwIbIhYvdjEvcmVsYXRpb25zaGlwcy9y",
+ "ZWFkOgEqMAESnwEKEldyaXRlUmVsYXRpb25zaGlwcxIpLmF1dGh6ZWQuYXBp",
+ "LnYxLldyaXRlUmVsYXRpb25zaGlwc1JlcXVlc3QaKi5hdXRoemVkLmFwaS52",
+ "MS5Xcml0ZVJlbGF0aW9uc2hpcHNSZXNwb25zZSIykkENCgtQZXJtaXNzaW9u",
+ "c4LT5JMCHCIXL3YxL3JlbGF0aW9uc2hpcHMvd3JpdGU6ASoSowEKE0RlbGV0",
+ "ZVJlbGF0aW9uc2hpcHMSKi5hdXRoemVkLmFwaS52MS5EZWxldGVSZWxhdGlv",
+ "bnNoaXBzUmVxdWVzdBorLmF1dGh6ZWQuYXBpLnYxLkRlbGV0ZVJlbGF0aW9u",
+ "c2hpcHNSZXNwb25zZSIzkkENCgtQZXJtaXNzaW9uc4LT5JMCHSIYL3YxL3Jl",
+ "bGF0aW9uc2hpcHMvZGVsZXRlOgEqEpQBCg9DaGVja1Blcm1pc3Npb24SJi5h",
+ "dXRoemVkLmFwaS52MS5DaGVja1Blcm1pc3Npb25SZXF1ZXN0GicuYXV0aHpl",
+ "ZC5hcGkudjEuQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2UiMJJBDQoLUGVybWlz",
+ "c2lvbnOC0+STAhoiFS92MS9wZXJtaXNzaW9ucy9jaGVjazoBKhKnAQoUQ2hl",
+ "Y2tCdWxrUGVybWlzc2lvbnMSKy5hdXRoemVkLmFwaS52MS5DaGVja0J1bGtQ",
+ "ZXJtaXNzaW9uc1JlcXVlc3QaLC5hdXRoemVkLmFwaS52MS5DaGVja0J1bGtQ",
+ "ZXJtaXNzaW9uc1Jlc3BvbnNlIjSSQQ0KC1Blcm1pc3Npb25zgtPkkwIeIhkv",
+ "djEvcGVybWlzc2lvbnMvY2hlY2tidWxrOgEqEqQBChRFeHBhbmRQZXJtaXNz",
+ "aW9uVHJlZRIrLmF1dGh6ZWQuYXBpLnYxLkV4cGFuZFBlcm1pc3Npb25UcmVl",
+ "UmVxdWVzdBosLmF1dGh6ZWQuYXBpLnYxLkV4cGFuZFBlcm1pc3Npb25UcmVl",
+ "UmVzcG9uc2UiMZJBDQoLUGVybWlzc2lvbnOC0+STAhsiFi92MS9wZXJtaXNz",
+ "aW9ucy9leHBhbmQ6ASoSmgEKD0xvb2t1cFJlc291cmNlcxImLmF1dGh6ZWQu",
+ "YXBpLnYxLkxvb2t1cFJlc291cmNlc1JlcXVlc3QaJy5hdXRoemVkLmFwaS52",
+ "MS5Mb29rdXBSZXNvdXJjZXNSZXNwb25zZSI0kkENCgtQZXJtaXNzaW9uc4LT",
+ "5JMCHiIZL3YxL3Blcm1pc3Npb25zL3Jlc291cmNlczoBKjABEpYBCg5Mb29r",
+ "dXBTdWJqZWN0cxIlLmF1dGh6ZWQuYXBpLnYxLkxvb2t1cFN1YmplY3RzUmVx",
+ "dWVzdBomLmF1dGh6ZWQuYXBpLnYxLkxvb2t1cFN1YmplY3RzUmVzcG9uc2Ui",
+ "M5JBDQoLUGVybWlzc2lvbnOC0+STAh0iGC92MS9wZXJtaXNzaW9ucy9zdWJq",
+ "ZWN0czoBKjABErUBChdJbXBvcnRCdWxrUmVsYXRpb25zaGlwcxIuLmF1dGh6",
+ "ZWQuYXBpLnYxLkltcG9ydEJ1bGtSZWxhdGlvbnNoaXBzUmVxdWVzdBovLmF1",
+ "dGh6ZWQuYXBpLnYxLkltcG9ydEJ1bGtSZWxhdGlvbnNoaXBzUmVzcG9uc2Ui",
+ "N5JBDQoLUGVybWlzc2lvbnOC0+STAiEiHC92MS9yZWxhdGlvbnNoaXBzL2lt",
+ "cG9ydGJ1bGs6ASooARK1AQoXRXhwb3J0QnVsa1JlbGF0aW9uc2hpcHMSLi5h",
+ "dXRoemVkLmFwaS52MS5FeHBvcnRCdWxrUmVsYXRpb25zaGlwc1JlcXVlc3Qa",
+ "Ly5hdXRoemVkLmFwaS52MS5FeHBvcnRCdWxrUmVsYXRpb25zaGlwc1Jlc3Bv",
+ "bnNlIjeSQQ0KC1Blcm1pc3Npb25zgtPkkwIhIhwvdjEvcmVsYXRpb25zaGlw",
+ "cy9leHBvcnRidWxrOgEqMAFCSgoSY29tLmF1dGh6ZWQuYXBpLnYxUAFaMmdp",
+ "dGh1Yi5jb20vYXV0aHplZC9hdXRoemVkLWdvL3Byb3RvL2F1dGh6ZWQvYXBp",
+ "L3YxYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Authzed.Api.V1.CoreReflection.Descriptor, global::Authzed.Api.V1.DebugReflection.Descriptor, global::Buf.Validate.ValidateReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, global::Validate.ValidateReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Authzed.Api.V1.LookupPermissionship), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -325,7 +324,7 @@ static PermissionServiceReflection() {
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.CheckBulkPermissionsResponseItem), global::Authzed.Api.V1.CheckBulkPermissionsResponseItem.Parser, new[]{ "Permissionship", "PartialCaveatInfo", "DebugTrace" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.ExpandPermissionTreeRequest), global::Authzed.Api.V1.ExpandPermissionTreeRequest.Parser, new[]{ "Consistency", "Resource", "Permission" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.ExpandPermissionTreeResponse), global::Authzed.Api.V1.ExpandPermissionTreeResponse.Parser, new[]{ "ExpandedAt", "TreeRoot" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.LookupResourcesRequest), global::Authzed.Api.V1.LookupResourcesRequest.Parser, new[]{ "Consistency", "ResourceObjectType", "Permission", "Subject", "Context", "OptionalLimit", "OptionalCursor" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.LookupResourcesRequest), global::Authzed.Api.V1.LookupResourcesRequest.Parser, new[]{ "Consistency", "ResourceObjectType", "Permission", "Subject", "Context", "OptionalLimit", "OptionalCursor", "WithDebug" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.LookupResourcesResponse), global::Authzed.Api.V1.LookupResourcesResponse.Parser, new[]{ "LookedUpAt", "ResourceObjectId", "Permissionship", "PartialCaveatInfo", "AfterResultCursor" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.LookupSubjectsRequest), global::Authzed.Api.V1.LookupSubjectsRequest.Parser, new[]{ "Consistency", "Resource", "Permission", "SubjectObjectType", "OptionalSubjectRelation", "Context", "OptionalConcreteLimit", "OptionalCursor", "WildcardOption" }, null, new[]{ typeof(global::Authzed.Api.V1.LookupSubjectsRequest.Types.WildcardOption) }, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Authzed.Api.V1.LookupSubjectsResponse), global::Authzed.Api.V1.LookupSubjectsResponse.Parser, new[]{ "LookedUpAt", "SubjectObjectId", "ExcludedSubjectIds", "Permissionship", "PartialCaveatInfo", "Subject", "ExcludedSubjects", "AfterResultCursor" }, null, null, null, null),
@@ -344,8 +343,22 @@ static PermissionServiceReflection() {
/// LookupPermissionship represents whether a Lookup response was partially evaluated or not
///
public enum LookupPermissionship {
+ ///
+ /// LOOKUP_PERMISSIONSHIP_UNSPECIFIED is the default value and should not be used or
+ /// relied upon. Servers should not return this value.
+ ///
[pbr::OriginalName("LOOKUP_PERMISSIONSHIP_UNSPECIFIED")] Unspecified = 0,
+ ///
+ /// LOOKUP_PERMISSIONSHIP_HAS_PERMISSION indicates that the subject has permission
+ /// on the resource with no missing caveat context.
+ ///
[pbr::OriginalName("LOOKUP_PERMISSIONSHIP_HAS_PERMISSION")] HasPermission = 1,
+ ///
+ /// LOOKUP_PERMISSIONSHIP_CONDITIONAL_PERMISSION indicates that the subject has
+ /// permission on the resource, but only if a caveat condition is met. The
+ /// `partial_caveat_info` field in the response should contain the missing context
+ /// fields that must be provided to fully evaluate the caveat.
+ ///
[pbr::OriginalName("LOOKUP_PERMISSIONSHIP_CONDITIONAL_PERMISSION")] ConditionalPermission = 2,
}
@@ -4618,9 +4631,27 @@ public void MergeFrom(pb::CodedInputStream input) {
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static partial class Types {
public enum Permissionship {
+ ///
+ /// PERMISSIONSHIP_UNSPECIFIED is the default value and should not be used or
+ /// relied upon. Servers should not return this value.
+ ///
[pbr::OriginalName("PERMISSIONSHIP_UNSPECIFIED")] Unspecified = 0,
+ ///
+ /// PERMISSIONSHIP_NO_PERMISSION indicates that the subject does not have the
+ /// requested permission on the resource.
+ ///
[pbr::OriginalName("PERMISSIONSHIP_NO_PERMISSION")] NoPermission = 1,
+ ///
+ /// PERMISSIONSHIP_HAS_PERMISSION indicates that the subject has the requested
+ /// permission on the resource.
+ ///
[pbr::OriginalName("PERMISSIONSHIP_HAS_PERMISSION")] HasPermission = 2,
+ ///
+ /// PERMISSIONSHIP_CONDITIONAL_PERMISSION indicates that the subject has the
+ /// requested permission on the resource, but only if a caveat condition is met.
+ /// The `partial_caveat_info` field in the response should contain the missing
+ /// context fields that must be provided to fully evaluate the caveat.
+ ///
[pbr::OriginalName("PERMISSIONSHIP_CONDITIONAL_PERMISSION")] ConditionalPermission = 3,
}
@@ -6724,6 +6755,7 @@ public LookupResourcesRequest(LookupResourcesRequest other) : this() {
context_ = other.context_ != null ? other.context_.Clone() : null;
optionalLimit_ = other.optionalLimit_;
optionalCursor_ = other.optionalCursor_ != null ? other.optionalCursor_.Clone() : null;
+ withDebug_ = other.withDebug_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -6841,6 +6873,25 @@ public uint OptionalLimit {
}
}
+ /// Field number for the "with_debug" field.
+ public const int WithDebugFieldNumber = 8;
+ private bool withDebug_;
+ ///
+ ///
+ /// with_debug, if true, indicates that the response should return debug information
+ /// if present and available. For now, ONLY enables debugging of maximum recursion depth
+ /// errors, with additional context being returned in error details, but this may be
+ /// extended in the future.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool WithDebug {
+ get { return withDebug_; }
+ set {
+ withDebug_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
@@ -6863,6 +6914,7 @@ public bool Equals(LookupResourcesRequest other) {
if (!object.Equals(Context, other.Context)) return false;
if (OptionalLimit != other.OptionalLimit) return false;
if (!object.Equals(OptionalCursor, other.OptionalCursor)) return false;
+ if (WithDebug != other.WithDebug) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -6877,6 +6929,7 @@ public override int GetHashCode() {
if (context_ != null) hash ^= Context.GetHashCode();
if (OptionalLimit != 0) hash ^= OptionalLimit.GetHashCode();
if (optionalCursor_ != null) hash ^= OptionalCursor.GetHashCode();
+ if (WithDebug != false) hash ^= WithDebug.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -6923,6 +6976,10 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(58);
output.WriteMessage(OptionalCursor);
}
+ if (WithDebug != false) {
+ output.WriteRawTag(64);
+ output.WriteBool(WithDebug);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -6961,6 +7018,10 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(58);
output.WriteMessage(OptionalCursor);
}
+ if (WithDebug != false) {
+ output.WriteRawTag(64);
+ output.WriteBool(WithDebug);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -6992,6 +7053,9 @@ public int CalculateSize() {
if (optionalCursor_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(OptionalCursor);
}
+ if (WithDebug != false) {
+ size += 1 + 1;
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -7037,6 +7101,9 @@ public void MergeFrom(LookupResourcesRequest other) {
}
OptionalCursor.MergeFrom(other.OptionalCursor);
}
+ if (other.WithDebug != false) {
+ WithDebug = other.WithDebug;
+ }
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -7096,6 +7163,10 @@ public void MergeFrom(pb::CodedInputStream input) {
input.ReadMessage(OptionalCursor);
break;
}
+ case 64: {
+ WithDebug = input.ReadBool();
+ break;
+ }
}
}
#endif
@@ -7155,6 +7226,10 @@ public void MergeFrom(pb::CodedInputStream input) {
input.ReadMessage(OptionalCursor);
break;
}
+ case 64: {
+ WithDebug = input.ReadBool();
+ break;
+ }
}
}
}
@@ -7724,9 +7799,8 @@ public uint OptionalConcreteLimit {
public const int OptionalCursorFieldNumber = 8;
private global::Authzed.Api.V1.Cursor optionalCursor_;
///
- /// 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.
+ /// optional_cursor is not currently supported for LookupSubjects and this
+ /// field will be ignored. Cursoring support will be added in a future version.
///
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]