This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch bumps
in repository https://gitbox.apache.org/repos/asf/skywalking-goapi.git

commit 07bc5cb64fe0d1987fc91768a426391fab80bc6d
Author: kezhenxu94 <[email protected]>
AuthorDate: Fri May 16 15:32:34 2025 +0800

    build(deps): bump up a bunch of dependencies and update query protocol
---
 .github/workflows/build.yaml                       |   6 +-
 .../v3/ConfigurationDiscoveryService_grpc.pb.go    |  24 +-
 collect/common/v3/Command.pb.go                    | 101 +++--
 collect/ebpf/accesslog/v3/accesslog.pb.go          |   5 -
 collect/ebpf/profiling/process/v3/Process.pb.go    |   2 -
 collect/ebpf/profiling/v3/Continuous.pb.go         |   3 -
 collect/ebpf/profiling/v3/Profile.pb.go            |   1 -
 collect/language/agent/v3/BrowserPerf.pb.go        |   2 +-
 collect/language/agent/v3/Meter.pb.go              |   1 -
 .../language/asyncprofiler/v10/AsyncProfiler.pb.go |   1 -
 collect/logging/v3/Logging.pb.go                   |   1 -
 collect/servicemesh/v3/service-mesh.pb.go          |   7 +-
 dependencies.sh                                    |   2 +-
 go.mod                                             |  22 +-
 go.sum                                             | 226 +++--------
 gqlgen.yml                                         |   3 +-
 proto/envoy/api/v2/core/address.pb.go              |  10 +-
 proto/envoy/api/v2/core/base.pb.go                 |  21 +-
 proto/envoy/api/v2/core/config_source.pb.go        |  13 +-
 proto/envoy/api/v2/core/event_service_config.pb.go |   1 -
 proto/envoy/api/v2/core/grpc_service.pb.go         |  15 +-
 proto/envoy/api/v2/core/http_uri.pb.go             |   7 +-
 proto/envoy/api/v2/core/socket_option.pb.go        |   1 -
 proto/envoy/config/core/v3/address.pb.go           |  11 +-
 proto/envoy/config/core/v3/base.pb.go              |  21 +-
 proto/envoy/config/core/v3/http_uri.pb.go          |   7 +-
 proto/envoy/config/core/v3/socket_option.pb.go     |   1 -
 proto/envoy/data/accesslog/v2/accesslog.pb.go      |  15 +-
 proto/envoy/data/accesslog/v3/accesslog.pb.go      |  15 +-
 proto/envoy/service/accesslog/v2/als.pb.go         |   1 -
 proto/envoy/service/accesslog/v3/als.pb.go         |   1 -
 proto/opentelemetry/proto/common/v1/common.pb.go   |   1 -
 proto/opentelemetry/proto/metrics/v1/metrics.pb.go | 161 ++++----
 proto/validate/validate.pb.go                      |   3 -
 proto/xds/core/v3/context_params.pb.go             |   3 +-
 query/schema.go                                    | 414 +++++++++++++++++++--
 satellite/data/v1/SniffData.pb.go                  |   1 -
 scripts/update_query_protocol.sh                   |   6 +-
 38 files changed, 666 insertions(+), 470 deletions(-)

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 16f51f8..0b61e22 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -26,13 +26,13 @@ jobs:
     name: Build
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v4
         with:
           submodules: true
 
-      - uses: actions/setup-go@v2
+      - uses: actions/setup-go@v5
         with:
-          go-version: "1.20"
+          go-version: "1.24"
 
       - name: Build
         run: make
diff --git 
a/collect/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go 
b/collect/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
index 1b9e724..4fb5b39 100644
--- a/collect/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
+++ b/collect/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
@@ -25,13 +25,11 @@ const _ = grpc.SupportPackageIsVersion7
 type ConfigurationDiscoveryServiceClient interface {
        // fetchConfigurations service requests the latest configuration.
        // Expect command of Commands is:
-       //
-       //      command: CDS # meaning ConfigurationDiscoveryService's response
-       //      args: Include string key and string value pair.
-       //            The key depends on the agent implementation.
-       //            The value is the latest value in String value. The 
watcher of key owner takes the responsibility to convert it to the correct type 
or format.
-       //            One reserved key is `UUID`. The value would help reducing 
the traffic load between agent and OAP if there is no change.
-       //
+       //    command: CDS # meaning ConfigurationDiscoveryService's response
+       //    args: Include string key and string value pair.
+       //          The key depends on the agent implementation.
+       //          The value is the latest value in String value. The watcher 
of key owner takes the responsibility to convert it to the correct type or 
format.
+       //          One reserved key is `UUID`. The value would help reducing 
the traffic load between agent and OAP if there is no change.
        // Commands could be empty if no change detected based on 
ConfigurationSyncRequest.
        FetchConfigurations(ctx context.Context, in *ConfigurationSyncRequest, 
opts ...grpc.CallOption) (*v3.Commands, error)
 }
@@ -59,13 +57,11 @@ func (c *configurationDiscoveryServiceClient) 
FetchConfigurations(ctx context.Co
 type ConfigurationDiscoveryServiceServer interface {
        // fetchConfigurations service requests the latest configuration.
        // Expect command of Commands is:
-       //
-       //      command: CDS # meaning ConfigurationDiscoveryService's response
-       //      args: Include string key and string value pair.
-       //            The key depends on the agent implementation.
-       //            The value is the latest value in String value. The 
watcher of key owner takes the responsibility to convert it to the correct type 
or format.
-       //            One reserved key is `UUID`. The value would help reducing 
the traffic load between agent and OAP if there is no change.
-       //
+       //    command: CDS # meaning ConfigurationDiscoveryService's response
+       //    args: Include string key and string value pair.
+       //          The key depends on the agent implementation.
+       //          The value is the latest value in String value. The watcher 
of key owner takes the responsibility to convert it to the correct type or 
format.
+       //          One reserved key is `UUID`. The value would help reducing 
the traffic load between agent and OAP if there is no change.
        // Commands could be empty if no change detected based on 
ConfigurationSyncRequest.
        FetchConfigurations(context.Context, *ConfigurationSyncRequest) 
(*v3.Commands, error)
        mustEmbedUnimplementedConfigurationDiscoveryServiceServer()
diff --git a/collect/common/v3/Command.pb.go b/collect/common/v3/Command.pb.go
index deae98d..fe91418 100644
--- a/collect/common/v3/Command.pb.go
+++ b/collect/common/v3/Command.pb.go
@@ -44,73 +44,68 @@ const (
 // The available commands are,
 // Name: ConfigurationDiscoveryCommand
 // Args:
-//
-//     SerialNumber: String
-//     UUID: String
-//     properties: Key-value pairs rely on agent-side implementations
+//     SerialNumber: String
+//     UUID: String
+//     properties: Key-value pairs rely on agent-side implementations
 //
 // Ref, Java agent supported configurations, 
https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/configuration-discovery/
 //
 // Name: ProfileTaskQuery
 // Args:
-//
-//     SerialNumber: String
-//     TaskId: String
-//     EndpointName: String
-//     Duration: Integer
-//     MinDurationThreshold: Integer
-//     DumpPeriod: Integer
-//     MaxSamplingCount: Integer
-//     StartTime: Date Timestamp
-//     CreateTime: Date Timestamp
+//     SerialNumber: String
+//     TaskId: String
+//     EndpointName: String
+//     Duration: Integer
+//     MinDurationThreshold: Integer
+//     DumpPeriod: Integer
+//     MaxSamplingCount: Integer
+//     StartTime: Date Timestamp
+//     CreateTime: Date Timestamp
 //
 // Name: EBPFProfilingTaskQuery
 // Args:
-//
-//     TaskId: String
-//     ProcessId: Integer List
-//     TaskUpdateTime: Date timestamp
-//     TriggerType: Enum, value = FIXED_TIME
-//     TargetType: Enum, value = ON_CPU, OFF_CPU or NETWORK
-//     TaskStartTime: Date Timestamp
-//     ExtensionConfigJSON: JSON serialization of NetworkSamplings.
-//         --- NetworkSamplings ---
-//         NetworkSamplings: List
-//             URIRegex: String
-//             MinDuration: Integer
-//             When4xx: Boolean
-//             When5xx: Boolean
-//             Settings: Object
-//                 RequireCompleteRequest: Boolean
-//                 MaxRequestSize: Integer
-//                 RequireCompleteResponse: Boolean
-//                 MaxResponseSize: Integer
-//         ------------------------
-//     FixedTriggerDuration: Long
+//     TaskId: String
+//     ProcessId: Integer List
+//     TaskUpdateTime: Date timestamp
+//     TriggerType: Enum, value = FIXED_TIME
+//     TargetType: Enum, value = ON_CPU, OFF_CPU or NETWORK
+//     TaskStartTime: Date Timestamp
+//     ExtensionConfigJSON: JSON serialization of NetworkSamplings.
+//         --- NetworkSamplings ---
+//         NetworkSamplings: List
+//             URIRegex: String
+//             MinDuration: Integer
+//             When4xx: Boolean
+//             When5xx: Boolean
+//             Settings: Object
+//                 RequireCompleteRequest: Boolean
+//                 MaxRequestSize: Integer
+//                 RequireCompleteResponse: Boolean
+//                 MaxResponseSize: Integer
+//         ------------------------
+//     FixedTriggerDuration: Long
 //
 // Name: ContinuousProfilingPolicyQuery
 // Args:
-//
-//     ServiceWithPolicyJSON: List JSON serialization of ServiceWithPolicy.
-//         --- ServiceWithPolicy ---
-//         ServiceName: String
-//         UUID: String
-//         Profiling: Multiple profiling configuration. Map
-//             Key: Profiling type. Enum, value = ON_CPU, OFF_CPU, NETWORK
-//             Value: Profiling policies. Map
-//                 Key: Monitoring type. Enum, value = PROCESS_CPU, 
PROCESS_THREAD_COUNT, SYSTEM_LOAD, HTTP_ERROR_RATE, HTTP_AVG_RESPONSE_TIME
-//                 Value: Policy configuration. Object.
-//                     Threshold: String
-//                     Period(s): Integer
-//                     Count: Integer
-//                     URIList: List<String>
-//                     URIRegex: String
-//         ---------------------------
+//     ServiceWithPolicyJSON: List JSON serialization of ServiceWithPolicy.
+//         --- ServiceWithPolicy ---
+//         ServiceName: String
+//         UUID: String
+//         Profiling: Multiple profiling configuration. Map
+//             Key: Profiling type. Enum, value = ON_CPU, OFF_CPU, NETWORK
+//             Value: Profiling policies. Map
+//                 Key: Monitoring type. Enum, value = PROCESS_CPU, 
PROCESS_THREAD_COUNT, SYSTEM_LOAD, HTTP_ERROR_RATE, HTTP_AVG_RESPONSE_TIME
+//                 Value: Policy configuration. Object.
+//                     Threshold: String
+//                     Period(s): Integer
+//                     Count: Integer
+//                     URIList: List<String>
+//                     URIRegex: String
+//         ---------------------------
 //
 // Name: ContinuousProfilingReportTask
 // Args:
-//
-//     TaskId: String
+//     TaskId: String
 type Command struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/collect/ebpf/accesslog/v3/accesslog.pb.go 
b/collect/ebpf/accesslog/v3/accesslog.pb.go
index 2e26bab..1767a5a 100644
--- a/collect/ebpf/accesslog/v3/accesslog.pb.go
+++ b/collect/ebpf/accesslog/v3/accesslog.pb.go
@@ -877,7 +877,6 @@ type ConnectionAttachment struct {
        // detect contains the environment information
        //
        // Types that are assignable to Environment:
-       //
        //      *ConnectionAttachment_ZTunnel
        Environment isConnectionAttachment_Environment 
`protobuf_oneof:"environment"`
 }
@@ -1011,7 +1010,6 @@ type ConnectionAddress struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Address:
-       //
        //      *ConnectionAddress_Kubernetes
        //      *ConnectionAddress_Ip
        Address isConnectionAddress_Address `protobuf_oneof:"address"`
@@ -1228,7 +1226,6 @@ type AccessLogKernelLog struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Operation:
-       //
        //      *AccessLogKernelLog_Connect
        //      *AccessLogKernelLog_Accept
        //      *AccessLogKernelLog_Close
@@ -1351,7 +1348,6 @@ type AccessLogProtocolLogs struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Protocol:
-       //
        //      *AccessLogProtocolLogs_Http
        Protocol isAccessLogProtocolLogs_Protocol `protobuf_oneof:"protocol"`
 }
@@ -2641,7 +2637,6 @@ type EBPFTimestamp struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Timestamp:
-       //
        //      *EBPFTimestamp_Offset
        Timestamp isEBPFTimestamp_Timestamp `protobuf_oneof:"timestamp"`
 }
diff --git a/collect/ebpf/profiling/process/v3/Process.pb.go 
b/collect/ebpf/profiling/process/v3/Process.pb.go
index 833463a..d7abb74 100644
--- a/collect/ebpf/profiling/process/v3/Process.pb.go
+++ b/collect/ebpf/profiling/process/v3/Process.pb.go
@@ -102,7 +102,6 @@ type EBPFProcessProperties struct {
        // The Process metadata
        //
        // Types that are assignable to Metadata:
-       //
        //      *EBPFProcessProperties_HostProcess
        //      *EBPFProcessProperties_K8SProcess
        Metadata isEBPFProcessProperties_Metadata `protobuf_oneof:"metadata"`
@@ -454,7 +453,6 @@ type EBPFProcessDownstream struct {
        // Locate the process by basic information
        //
        // Types that are assignable to Process:
-       //
        //      *EBPFProcessDownstream_HostProcess
        //      *EBPFProcessDownstream_K8SProcess
        Process isEBPFProcessDownstream_Process `protobuf_oneof:"process"`
diff --git a/collect/ebpf/profiling/v3/Continuous.pb.go 
b/collect/ebpf/profiling/v3/Continuous.pb.go
index 391c5a4..dcfea99 100644
--- a/collect/ebpf/profiling/v3/Continuous.pb.go
+++ b/collect/ebpf/profiling/v3/Continuous.pb.go
@@ -225,7 +225,6 @@ type ContinuousProfilingReport struct {
        // target profiling task
        //
        // Types that are assignable to TargetTask:
-       //
        //      *ContinuousProfilingReport_OnCPU
        //      *ContinuousProfilingReport_OffCPU
        //      *ContinuousProfilingReport_Network
@@ -363,7 +362,6 @@ type ContinuousProfilingCause struct {
 
        Type ContinuousProfilingTriggeredMonitorType 
`protobuf:"varint,1,opt,name=type,proto3,enum=skywalking.v3.ContinuousProfilingTriggeredMonitorType"
 json:"type,omitempty"`
        // Types that are assignable to Cause:
-       //
        //      *ContinuousProfilingCause_SingleValue
        //      *ContinuousProfilingCause_Uri
        Cause isContinuousProfilingCause_Cause `protobuf_oneof:"cause"`
@@ -506,7 +504,6 @@ type ContinuousProfilingURICause struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Uri:
-       //
        //      *ContinuousProfilingURICause_Regex
        //      *ContinuousProfilingURICause_Path
        Uri       isContinuousProfilingURICause_Uri `protobuf_oneof:"uri"`
diff --git a/collect/ebpf/profiling/v3/Profile.pb.go 
b/collect/ebpf/profiling/v3/Profile.pb.go
index 9b6cb83..f488d88 100644
--- a/collect/ebpf/profiling/v3/Profile.pb.go
+++ b/collect/ebpf/profiling/v3/Profile.pb.go
@@ -151,7 +151,6 @@ type EBPFProfilingData struct {
        // profiling data
        //
        // Types that are assignable to Profiling:
-       //
        //      *EBPFProfilingData_OnCPU
        //      *EBPFProfilingData_OffCPU
        Profiling isEBPFProfilingData_Profiling `protobuf_oneof:"profiling"`
diff --git a/collect/language/agent/v3/BrowserPerf.pb.go 
b/collect/language/agent/v3/BrowserPerf.pb.go
index d019faf..47f02a4 100644
--- a/collect/language/agent/v3/BrowserPerf.pb.go
+++ b/collect/language/agent/v3/BrowserPerf.pb.go
@@ -115,7 +115,7 @@ type BrowserPerfData struct {
        DnsTime int32 `protobuf:"varint,6,opt,name=dnsTime,proto3" 
json:"dnsTime,omitempty"`
        // Time to first Byte
        TtfbTime int32 `protobuf:"varint,7,opt,name=ttfbTime,proto3" 
json:"ttfbTime,omitempty"`
-       // TCP connection time
+       //  TCP connection time
        TcpTime int32 `protobuf:"varint,8,opt,name=tcpTime,proto3" 
json:"tcpTime,omitempty"`
        // Content transfer time
        TransTime int32 `protobuf:"varint,9,opt,name=transTime,proto3" 
json:"transTime,omitempty"`
diff --git a/collect/language/agent/v3/Meter.pb.go 
b/collect/language/agent/v3/Meter.pb.go
index 13081d7..0ecca79 100644
--- a/collect/language/agent/v3/Meter.pb.go
+++ b/collect/language/agent/v3/Meter.pb.go
@@ -305,7 +305,6 @@ type MeterData struct {
        // Meter data could be a single value or histogram.
        //
        // Types that are assignable to Metric:
-       //
        //      *MeterData_SingleValue
        //      *MeterData_Histogram
        Metric isMeterData_Metric `protobuf_oneof:"metric"`
diff --git a/collect/language/asyncprofiler/v10/AsyncProfiler.pb.go 
b/collect/language/asyncprofiler/v10/AsyncProfiler.pb.go
index 8b989d2..344208a 100644
--- a/collect/language/asyncprofiler/v10/AsyncProfiler.pb.go
+++ b/collect/language/asyncprofiler/v10/AsyncProfiler.pb.go
@@ -98,7 +98,6 @@ type AsyncProfilerData struct {
        // metaData of the AsyncProfiler task and its result data, only sent in 
the first request.
        MetaData *AsyncProfilerMetaData 
`protobuf:"bytes,1,opt,name=metaData,proto3" json:"metaData,omitempty"`
        // Types that are assignable to Result:
-       //
        //      *AsyncProfilerData_ErrorMessage
        //      *AsyncProfilerData_Content
        Result isAsyncProfilerData_Result `protobuf_oneof:"result"`
diff --git a/collect/logging/v3/Logging.pb.go b/collect/logging/v3/Logging.pb.go
index 4a49943..eec0a47 100644
--- a/collect/logging/v3/Logging.pb.go
+++ b/collect/logging/v3/Logging.pb.go
@@ -176,7 +176,6 @@ type LogDataBody struct {
        // Content with extendable format.
        //
        // Types that are assignable to Content:
-       //
        //      *LogDataBody_Text
        //      *LogDataBody_Json
        //      *LogDataBody_Yaml
diff --git a/collect/servicemesh/v3/service-mesh.pb.go 
b/collect/servicemesh/v3/service-mesh.pb.go
index cd4e508..c6228cd 100644
--- a/collect/servicemesh/v3/service-mesh.pb.go
+++ b/collect/servicemesh/v3/service-mesh.pb.go
@@ -90,7 +90,6 @@ type ServiceMeshMetrics struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Metrics:
-       //
        //      *ServiceMeshMetrics_HttpMetrics
        //      *ServiceMeshMetrics_TcpMetrics
        Metrics isServiceMeshMetrics_Metrics `protobuf_oneof:"metrics"`
@@ -200,8 +199,7 @@ type HTTPServiceMeshMetric struct {
        // | ... request workflow  ... | upstream | ----- response -----> |     
           proxy                | ------- response -------> | client  |
        // |                 time_to_first_upstream_rx_byte               |
        // |                                  time_to_last_downstream_tx_byte   
                                                            |
-       //
-       //      |              internalResponseLatencyNanos                     
  |
+       //                                                                |     
         internalResponseLatencyNanos                       |
        InternalResponseLatencyNanos int64                    
`protobuf:"varint,16,opt,name=internalResponseLatencyNanos,proto3" 
json:"internalResponseLatencyNanos,omitempty"`
        SourceInstanceProperties     []*v3.KeyStringValuePair 
`protobuf:"bytes,17,rep,name=sourceInstanceProperties,proto3" 
json:"sourceInstanceProperties,omitempty"`
        DestInstanceProperties       []*v3.KeyStringValuePair 
`protobuf:"bytes,18,rep,name=destInstanceProperties,proto3" 
json:"destInstanceProperties,omitempty"`
@@ -441,8 +439,7 @@ type TCPServiceMeshMetric struct {
        // | ... request workflow  ... | upstream | ----- response -----> |     
           proxy                | ------- response -------> | client  |
        // |                 time_to_first_upstream_rx_byte               |
        // |                                  time_to_last_downstream_tx_byte   
                                                            |
-       //
-       //      |              internalResponseLatencyNanos                     
  |
+       //                                                                |     
         internalResponseLatencyNanos                       |
        InternalResponseLatencyNanos int64                    
`protobuf:"varint,11,opt,name=internalResponseLatencyNanos,proto3" 
json:"internalResponseLatencyNanos,omitempty"`
        SourceInstanceProperties     []*v3.KeyStringValuePair 
`protobuf:"bytes,12,rep,name=sourceInstanceProperties,proto3" 
json:"sourceInstanceProperties,omitempty"`
        DestInstanceProperties       []*v3.KeyStringValuePair 
`protobuf:"bytes,13,rep,name=destInstanceProperties,proto3" 
json:"destInstanceProperties,omitempty"`
diff --git a/dependencies.sh b/dependencies.sh
index 67aaa25..de7c996 100644
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -18,7 +18,7 @@
 # under the License.
 
 export COLLECT_PROTOCOL_SHA=07e6018301187a6a9429e5c204c62df1e4db7a6b
-export QUERY_PROTOCOL_SHA=a9ed9eef09cf97256df9a33eab91fca1ba13096e
+export QUERY_PROTOCOL_SHA=23baed2234e4bbc18cd7ec7d47bfe7d4bc8ef363
 export ENVOY_SERVICE_PROTOCOL_SHA=533b32f1b390a3a88ec2008d0561e07c926d879a
 export XDS_SERVICE_PROTOCOL_SHA=25de7278fc844d392d607214f36dbedf50f167ee
 export PROTOC_VALIDATE_SHA=v0.6.1
diff --git a/go.mod b/go.mod
index 859848d..ff4dbb5 100644
--- a/go.mod
+++ b/go.mod
@@ -1,11 +1,21 @@
 module skywalking.apache.org/repo/goapi
 
-go 1.16
+go 1.24
 
 require (
-       github.com/google/go-cmp v0.5.6 // indirect
-       golang.org/x/net v0.20.0 // indirect
-       google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84 // 
indirect
-       google.golang.org/grpc v1.40.0
-       google.golang.org/protobuf v1.32.0
+       github.com/99designs/gqlgen v0.17.73
+       github.com/vektah/gqlparser/v2 v2.5.27
+       google.golang.org/grpc v1.72.0
+       google.golang.org/protobuf v1.36.6
+)
+
+require (
+       github.com/agnivade/levenshtein v1.2.1 // indirect
+       github.com/google/go-cmp v0.7.0 // indirect
+       github.com/google/uuid v1.6.0 // indirect
+       github.com/sosodev/duration v1.3.1 // indirect
+       golang.org/x/net v0.40.0 // indirect
+       golang.org/x/sys v0.33.0 // indirect
+       golang.org/x/text v0.25.0 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250505200425-f936aa4a68b2 // indirect
 )
diff --git a/go.sum b/go.sum
index 3397d2d..17e723a 100644
--- a/go.sum
+++ b/go.sum
@@ -1,170 +1,58 @@
-cloud.google.com/go v0.26.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/OneOfOne/xxhash v1.2.2/go.mod 
h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/antihax/optional v1.0.0/go.mod 
h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash v1.1.0/go.mod 
h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod 
h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod 
h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane 
v0.9.1-0.20191026205805-5f8ba28d4473/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod 
h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/go-control-plane 
v0.9.9-0.20201210154907-fd9021fe5dad/go.mod 
h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane 
v0.9.9-0.20210217033140-668b12f5399d/go.mod 
h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane 
v0.9.9-0.20210512163311-63b5d3c536b0/go.mod 
h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/ghodss/yaml v1.0.0/go.mod 
h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod 
h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/mock v1.1.1/go.mod 
h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod 
h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod 
h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod 
h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod 
h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod 
h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod 
h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod 
h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2/go.mod 
h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3/go.mod 
h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2 
h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
-github.com/golang/protobuf v1.5.2/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/google/go-cmp v0.2.0/go.mod 
h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
-github.com/google/go-cmp v0.5.6/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/uuid v1.1.2/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod 
h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
+github.com/99designs/gqlgen v0.17.73 
h1:A3Ki+rHWqKbAOlg5fxiZBnz6OjW3nwupDHEG15gEsrg=
+github.com/99designs/gqlgen v0.17.73/go.mod 
h1:2RyGWjy2k7W9jxrs8MOQthXGkD3L3oGr0jXW3Pu8lGg=
+github.com/agnivade/levenshtein v1.2.1 
h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=
+github.com/agnivade/levenshtein v1.2.1/go.mod 
h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=
+github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 
h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
+github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod 
h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
+github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 
h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
+github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod 
h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
+github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 
h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=
+github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod 
h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod 
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
+github.com/go-logr/stdr v1.2.2/go.mod 
h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/golang/protobuf v1.5.4 
h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
+github.com/golang/protobuf v1.5.4/go.mod 
h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
+github.com/google/go-cmp v0.7.0/go.mod 
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/rogpeppe/fastuuid v1.2.0/go.mod 
h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
-github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod 
h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.5.1/go.mod 
h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/yuin/goldmark v1.3.5/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod 
h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.18.0/go.mod 
h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod 
h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod 
h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod 
h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod 
h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod 
h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod 
h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
-golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
-golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
-golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
-golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
-golang.org/x/term v0.16.0/go.mod 
h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod 
h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod 
h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod 
h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod 
h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.1.3/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 
h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod 
h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod 
h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod 
h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod 
h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84 
h1:R1r5J0u6Cx+RNl/6mezTw6oA14cmKC96FeUwL6A9bd4=
-google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod 
h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
-google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod 
h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod 
h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.33.1/go.mod 
h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
-google.golang.org/grpc v1.36.0/go.mod 
h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.38.0/go.mod 
h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
-google.golang.org/grpc v1.40.0/go.mod 
h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod 
h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod 
h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0/go.mod 
h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod 
h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.32.0 
h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
-google.golang.org/protobuf v1.32.0/go.mod 
h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
+github.com/sergi/go-diff v1.3.1/go.mod 
h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
+github.com/sosodev/duration v1.3.1 
h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4=
+github.com/sosodev/duration v1.3.1/go.mod 
h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=
+github.com/stretchr/testify v1.10.0 
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/vektah/gqlparser/v2 v2.5.27 
h1:RHPD3JOplpk5mP5JGX8RKZkt2/Vwj/PZv0HxTdwFp0s=
+github.com/vektah/gqlparser/v2 v2.5.27/go.mod 
h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo=
+go.opentelemetry.io/auto/sdk v1.1.0 
h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
+go.opentelemetry.io/auto/sdk v1.1.0/go.mod 
h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
+go.opentelemetry.io/otel v1.34.0 
h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
+go.opentelemetry.io/otel v1.34.0/go.mod 
h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
+go.opentelemetry.io/otel/metric v1.34.0 
h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
+go.opentelemetry.io/otel/metric v1.34.0/go.mod 
h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
+go.opentelemetry.io/otel/sdk v1.34.0 
h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
+go.opentelemetry.io/otel/sdk v1.34.0/go.mod 
h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
+go.opentelemetry.io/otel/sdk/metric v1.34.0 
h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
+go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod 
h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
+go.opentelemetry.io/otel/trace v1.34.0 
h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
+go.opentelemetry.io/otel/trace v1.34.0/go.mod 
h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
+golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
+golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
+golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
+golang.org/x/text v0.25.0/go.mod 
h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250505200425-f936aa4a68b2 
h1:IqsN8hx+lWLqlN+Sc3DoMy/watjofWiU8sRFgQ8fhKM=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250505200425-f936aa4a68b2/go.mod 
h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
+google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM=
+google.golang.org/grpc v1.72.0/go.mod 
h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
+google.golang.org/protobuf v1.36.6 
h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
+google.golang.org/protobuf v1.36.6/go.mod 
h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/gqlgen.yml b/gqlgen.yml
index e8fa97d..2b5d541 100644
--- a/gqlgen.yml
+++ b/gqlgen.yml
@@ -14,7 +14,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-schema: temp/query-protocol/*.graphqls
+schema:
+  - temp/query-protocol/*.graphqls
 
 skip_validation: true
 
diff --git a/proto/envoy/api/v2/core/address.pb.go 
b/proto/envoy/api/v2/core/address.pb.go
index f4040e3..f29a300 100644
--- a/proto/envoy/api/v2/core/address.pb.go
+++ b/proto/envoy/api/v2/core/address.pb.go
@@ -137,7 +137,7 @@ type SocketAddress struct {
 
        Protocol SocketAddress_Protocol 
`protobuf:"varint,1,opt,name=protocol,proto3,enum=envoy.api.v2.core.SocketAddress_Protocol"
 json:"protocol,omitempty"`
        // The address for this socket. :ref:`Listeners <config_listeners>` 
will bind
-       // to the address. An empty address is not allowed. Specify “0.0.0.0“ 
or “::“
+       // to the address. An empty address is not allowed. Specify ``0.0.0.0`` 
or ``::``
        // to bind to any address. [#comment:TODO(zuercher) reinstate when 
implemented:
        // It is possible to distinguish a Listener address via the 
prefix/suffix matching
        // in :ref:`FilterChainMatch 
<envoy_api_msg_listener.FilterChainMatch>`.] When used
@@ -149,7 +149,6 @@ type SocketAddress struct {
        // via :ref:`resolver_name 
<envoy_api_field_core.SocketAddress.resolver_name>`.
        Address string `protobuf:"bytes,2,opt,name=address,proto3" 
json:"address,omitempty"`
        // Types that are assignable to PortSpecifier:
-       //
        //      *SocketAddress_PortValue
        //      *SocketAddress_NamedPort
        PortSpecifier isSocketAddress_PortSpecifier 
`protobuf_oneof:"port_specifier"`
@@ -160,9 +159,9 @@ type SocketAddress struct {
        // *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
        ResolverName string 
`protobuf:"bytes,5,opt,name=resolver_name,json=resolverName,proto3" 
json:"resolver_name,omitempty"`
        // When binding to an IPv6 address above, this enables `IPv4 
compatibility
-       // <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to “::“ will
+       // <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to ``::`` 
will
        // allow both IPv4 and IPv6 connections, with peer IPv4 addresses 
mapped into
-       // IPv6 space as “::FFFF:<IPv4-address>“.
+       // IPv6 space as ``::FFFF:<IPv4-address>``.
        Ipv4Compat bool 
`protobuf:"varint,6,opt,name=ipv4_compat,json=ipv4Compat,proto3" 
json:"ipv4_compat,omitempty"`
 }
 
@@ -419,7 +418,6 @@ type Address struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Address:
-       //
        //      *Address_SocketAddress
        //      *Address_Pipe
        Address isAddress_Address `protobuf_oneof:"address"`
@@ -501,7 +499,7 @@ type CidrRange struct {
        sizeCache     protoimpl.SizeCache
        unknownFields protoimpl.UnknownFields
 
-       // IPv4 or IPv6 address, e.g. “192.0.0.0“ or “2001:db8::“.
+       // IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
        AddressPrefix string 
`protobuf:"bytes,1,opt,name=address_prefix,json=addressPrefix,proto3" 
json:"address_prefix,omitempty"`
        // Length of prefix, e.g. 0, 32. Defaults to 0 when unset.
        PrefixLen *wrapperspb.UInt32Value 
`protobuf:"bytes,2,opt,name=prefix_len,json=prefixLen,proto3" 
json:"prefix_len,omitempty"`
diff --git a/proto/envoy/api/v2/core/base.pb.go 
b/proto/envoy/api/v2/core/base.pb.go
index 56a08c7..0089c51 100644
--- a/proto/envoy/api/v2/core/base.pb.go
+++ b/proto/envoy/api/v2/core/base.pb.go
@@ -479,7 +479,6 @@ type Node struct {
        // E.g. "envoy" or "grpc"
        UserAgentName string 
`protobuf:"bytes,6,opt,name=user_agent_name,json=userAgentName,proto3" 
json:"user_agent_name,omitempty"`
        // Types that are assignable to UserAgentVersionType:
-       //
        //      *Node_UserAgentVersion
        //      *Node_UserAgentBuildVersion
        UserAgentVersionType isNode_UserAgentVersionType 
`protobuf_oneof:"user_agent_version_type"`
@@ -652,10 +651,9 @@ func (*Node_UserAgentBuildVersion) 
isNode_UserAgentVersionType() {}
 // object to match against. There are some well defined metadata used today for
 // this purpose:
 //
-//   - “{"envoy.lb": {"canary": <bool> }}“ This indicates the canary status of 
an
-//     endpoint and is also used during header processing
-//     (x-envoy-upstream-canary) and for stats purposes.
-//
+// * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of 
an
+//   endpoint and is also used during header processing
+//   (x-envoy-upstream-canary) and for stats purposes.
 // [#next-major-version: move to type/metadata/v2]
 type Metadata struct {
        state         protoimpl.MessageState
@@ -1058,7 +1056,6 @@ type DataSource struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Specifier:
-       //
        //      *DataSource_Filename
        //      *DataSource_InlineBytes
        //      *DataSource_InlineString
@@ -1285,7 +1282,6 @@ type AsyncDataSource struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Specifier:
-       //
        //      *AsyncDataSource_Local
        //      *AsyncDataSource_Remote
        Specifier isAsyncDataSource_Specifier `protobuf_oneof:"specifier"`
@@ -1378,7 +1374,6 @@ type TransportSocket struct {
        // See the supported transport socket implementations for further 
documentation.
        //
        // Types that are assignable to ConfigType:
-       //
        //      *TransportSocket_Config
        //      *TransportSocket_TypedConfig
        ConfigType isTransportSocket_ConfigType `protobuf_oneof:"config_type"`
@@ -1467,11 +1462,11 @@ func (*TransportSocket_TypedConfig) 
isTransportSocket_ConfigType() {}
 //
 // .. note::
 //
-//     Parsing of the runtime key's data is implemented such that it may be 
represented as a
-//     :ref:`FractionalPercent <envoy_api_msg_type.FractionalPercent>` proto 
represented as JSON/YAML
-//     and may also be represented as an integer with the assumption that the 
value is an integral
-//     percentage out of 100. For instance, a runtime key lookup returning the 
value "42" would parse
-//     as a `FractionalPercent` whose numerator is 42 and denominator is 
HUNDRED.
+//   Parsing of the runtime key's data is implemented such that it may be 
represented as a
+//   :ref:`FractionalPercent <envoy_api_msg_type.FractionalPercent>` proto 
represented as JSON/YAML
+//   and may also be represented as an integer with the assumption that the 
value is an integral
+//   percentage out of 100. For instance, a runtime key lookup returning the 
value "42" would parse
+//   as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
 type RuntimeFractionalPercent struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/proto/envoy/api/v2/core/config_source.pb.go 
b/proto/envoy/api/v2/core/config_source.pb.go
index 50a71fe..c324374 100644
--- a/proto/envoy/api/v2/core/config_source.pb.go
+++ b/proto/envoy/api/v2/core/config_source.pb.go
@@ -168,8 +168,8 @@ type ApiConfigSource struct {
        //
        // .. note::
        //
-       //      The cluster with name ``cluster_name`` must be statically 
defined and its
-       //      type must not be ``EDS``.
+       //  The cluster with name ``cluster_name`` must be statically defined 
and its
+       //  type must not be ``EDS``.
        ClusterNames []string 
`protobuf:"bytes,2,rep,name=cluster_names,json=clusterNames,proto3" 
json:"cluster_names,omitempty"`
        // Multiple gRPC services be provided for GRPC. If > 1 cluster is 
defined,
        // services will be cycled through if any kind of failure occurs.
@@ -440,7 +440,6 @@ type ConfigSource struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to ConfigSourceSpecifier:
-       //
        //      *ConfigSource_Path
        //      *ConfigSource_ApiConfigSource
        //      *ConfigSource_Ads
@@ -552,13 +551,13 @@ type ConfigSource_Path struct {
        //
        // .. note::
        //
-       //      The path to the source must exist at config load time.
+       //  The path to the source must exist at config load time.
        //
        // .. note::
        //
-       //      Envoy will only watch the file path for *moves.* This is 
because in general only moves
-       //      are atomic. The same method of swapping files as is 
demonstrated in the
-       //      :ref:`runtime documentation 
<config_runtime_symbolic_link_swap>` can be used here also.
+       //   Envoy will only watch the file path for *moves.* This is because 
in general only moves
+       //   are atomic. The same method of swapping files as is demonstrated 
in the
+       //   :ref:`runtime documentation <config_runtime_symbolic_link_swap>` 
can be used here also.
        Path string `protobuf:"bytes,1,opt,name=path,proto3,oneof"`
 }
 
diff --git a/proto/envoy/api/v2/core/event_service_config.pb.go 
b/proto/envoy/api/v2/core/event_service_config.pb.go
index 0073963..8cb2307 100644
--- a/proto/envoy/api/v2/core/event_service_config.pb.go
+++ b/proto/envoy/api/v2/core/event_service_config.pb.go
@@ -30,7 +30,6 @@ type EventServiceConfig struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to ConfigSourceSpecifier:
-       //
        //      *EventServiceConfig_GrpcService
        ConfigSourceSpecifier isEventServiceConfig_ConfigSourceSpecifier 
`protobuf_oneof:"config_source_specifier"`
 }
diff --git a/proto/envoy/api/v2/core/grpc_service.pb.go 
b/proto/envoy/api/v2/core/grpc_service.pb.go
index 86cf03e..c5c1273 100644
--- a/proto/envoy/api/v2/core/grpc_service.pb.go
+++ b/proto/envoy/api/v2/core/grpc_service.pb.go
@@ -35,7 +35,6 @@ type GrpcService struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to TargetSpecifier:
-       //
        //      *GrpcService_EnvoyGrpc_
        //      *GrpcService_GoogleGrpc_
        TargetSpecifier isGrpcService_TargetSpecifier 
`protobuf_oneof:"target_specifier"`
@@ -44,7 +43,7 @@ type GrpcService struct {
        Timeout *durationpb.Duration 
`protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
        // Additional metadata to include in streams initiated to the 
GrpcService.
        // This can be used for scenarios in which additional ad hoc 
authorization
-       // headers (e.g. “x-foo-bar: baz-key“) are to be injected.
+       // headers (e.g. ``x-foo-bar: baz-key``) are to be injected.
        InitialMetadata []*HeaderValue 
`protobuf:"bytes,5,rep,name=initial_metadata,json=initialMetadata,proto3" 
json:"initial_metadata,omitempty"`
 }
 
@@ -205,12 +204,11 @@ type GrpcService_GoogleGrpc struct {
        // service.
        //
        // .. csv-table::
+       //    :header: Name, Type, Description
+       //    :widths: 1, 1, 2
        //
-       //      :header: Name, Type, Description
-       //      :widths: 1, 1, 2
-       //
-       //      streams_total, Counter, Total number of streams opened
-       //      streams_closed_<gRPC status code>, Counter, Total streams 
closed with <gRPC status code>
+       //    streams_total, Counter, Total number of streams opened
+       //    streams_closed_<gRPC status code>, Counter, Total streams closed 
with <gRPC status code>
        StatPrefix string 
`protobuf:"bytes,4,opt,name=stat_prefix,json=statPrefix,proto3" 
json:"stat_prefix,omitempty"`
        // The name of the Google gRPC credentials factory to use. This must 
have been registered with
        // Envoy. If this is empty, a default credentials factory will be used 
that sets up channel
@@ -410,7 +408,6 @@ type GrpcService_GoogleGrpc_ChannelCredentials struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to CredentialSpecifier:
-       //
        //      *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials
        //      *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault
        //      *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials
@@ -510,7 +507,6 @@ type GrpcService_GoogleGrpc_CallCredentials struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to CredentialSpecifier:
-       //
        //      *GrpcService_GoogleGrpc_CallCredentials_AccessToken
        //      *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine
        //      *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken
@@ -795,7 +791,6 @@ type 
GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin struct
 
        Name string `protobuf:"bytes,1,opt,name=name,proto3" 
json:"name,omitempty"`
        // Types that are assignable to ConfigType:
-       //
        //      
*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_Config
        //      
*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_TypedConfig
        ConfigType 
isGrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin_ConfigType
 `protobuf_oneof:"config_type"`
diff --git a/proto/envoy/api/v2/core/http_uri.pb.go 
b/proto/envoy/api/v2/core/http_uri.pb.go
index a050aad..277690a 100644
--- a/proto/envoy/api/v2/core/http_uri.pb.go
+++ b/proto/envoy/api/v2/core/http_uri.pb.go
@@ -35,7 +35,8 @@ type HttpUri struct {
        //
        // .. code-block:: yaml
        //
-       //      uri: https://www.googleapis.com/oauth2/v1/certs
+       //    uri: https://www.googleapis.com/oauth2/v1/certs
+       //
        Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
        // Specify how `uri` is to be fetched. Today, this requires an explicit
        // cluster, but in the future we may support dynamic cluster creation or
@@ -43,7 +44,6 @@ type HttpUri struct {
        // <https://github.com/envoyproxy/envoy/issues/1606>`_.
        //
        // Types that are assignable to HttpUpstreamType:
-       //
        //      *HttpUri_Cluster
        HttpUpstreamType isHttpUri_HttpUpstreamType 
`protobuf_oneof:"http_upstream_type"`
        // Sets the maximum duration in milliseconds that a response can take 
to arrive upon request.
@@ -122,7 +122,8 @@ type HttpUri_Cluster struct {
        //
        // .. code-block:: yaml
        //
-       //      cluster: jwks_cluster
+       //    cluster: jwks_cluster
+       //
        Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3,oneof"`
 }
 
diff --git a/proto/envoy/api/v2/core/socket_option.pb.go 
b/proto/envoy/api/v2/core/socket_option.pb.go
index 91aa3e7..76fc15e 100644
--- a/proto/envoy/api/v2/core/socket_option.pb.go
+++ b/proto/envoy/api/v2/core/socket_option.pb.go
@@ -90,7 +90,6 @@ type SocketOption struct {
        // The numeric name as passed to setsockopt
        Name int64 `protobuf:"varint,3,opt,name=name,proto3" 
json:"name,omitempty"`
        // Types that are assignable to Value:
-       //
        //      *SocketOption_IntValue
        //      *SocketOption_BufValue
        Value isSocketOption_Value `protobuf_oneof:"value"`
diff --git a/proto/envoy/config/core/v3/address.pb.go 
b/proto/envoy/config/core/v3/address.pb.go
index ba28714..830bec8 100644
--- a/proto/envoy/config/core/v3/address.pb.go
+++ b/proto/envoy/config/core/v3/address.pb.go
@@ -138,7 +138,6 @@ type EnvoyInternalAddress struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to AddressNameSpecifier:
-       //
        //      *EnvoyInternalAddress_ServerListenerName
        AddressNameSpecifier isEnvoyInternalAddress_AddressNameSpecifier 
`protobuf_oneof:"address_name_specifier"`
 }
@@ -208,7 +207,7 @@ type SocketAddress struct {
 
        Protocol SocketAddress_Protocol 
`protobuf:"varint,1,opt,name=protocol,proto3,enum=envoy.config.core.v3.SocketAddress_Protocol"
 json:"protocol,omitempty"`
        // The address for this socket. :ref:`Listeners <config_listeners>` 
will bind
-       // to the address. An empty address is not allowed. Specify “0.0.0.0“ 
or “::“
+       // to the address. An empty address is not allowed. Specify ``0.0.0.0`` 
or ``::``
        // to bind to any address. [#comment:TODO(zuercher) reinstate when 
implemented:
        // It is possible to distinguish a Listener address via the 
prefix/suffix matching
        // in :ref:`FilterChainMatch 
<envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used
@@ -220,7 +219,6 @@ type SocketAddress struct {
        // via :ref:`resolver_name 
<envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`.
        Address string `protobuf:"bytes,2,opt,name=address,proto3" 
json:"address,omitempty"`
        // Types that are assignable to PortSpecifier:
-       //
        //      *SocketAddress_PortValue
        //      *SocketAddress_NamedPort
        PortSpecifier isSocketAddress_PortSpecifier 
`protobuf_oneof:"port_specifier"`
@@ -231,9 +229,9 @@ type SocketAddress struct {
        // *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
        ResolverName string 
`protobuf:"bytes,5,opt,name=resolver_name,json=resolverName,proto3" 
json:"resolver_name,omitempty"`
        // When binding to an IPv6 address above, this enables `IPv4 
compatibility
-       // <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to “::“ will
+       // <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to ``::`` 
will
        // allow both IPv4 and IPv6 connections, with peer IPv4 addresses 
mapped into
-       // IPv6 space as “::FFFF:<IPv4-address>“.
+       // IPv6 space as ``::FFFF:<IPv4-address>``.
        Ipv4Compat bool 
`protobuf:"varint,6,opt,name=ipv4_compat,json=ipv4Compat,proto3" 
json:"ipv4_compat,omitempty"`
 }
 
@@ -490,7 +488,6 @@ type Address struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Address:
-       //
        //      *Address_SocketAddress
        //      *Address_Pipe
        //      *Address_EnvoyInternalAddress
@@ -587,7 +584,7 @@ type CidrRange struct {
        sizeCache     protoimpl.SizeCache
        unknownFields protoimpl.UnknownFields
 
-       // IPv4 or IPv6 address, e.g. “192.0.0.0“ or “2001:db8::“.
+       // IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
        AddressPrefix string 
`protobuf:"bytes,1,opt,name=address_prefix,json=addressPrefix,proto3" 
json:"address_prefix,omitempty"`
        // Length of prefix, e.g. 0, 32. Defaults to 0 when unset.
        PrefixLen *wrapperspb.UInt32Value 
`protobuf:"bytes,2,opt,name=prefix_len,json=prefixLen,proto3" 
json:"prefix_len,omitempty"`
diff --git a/proto/envoy/config/core/v3/base.pb.go 
b/proto/envoy/config/core/v3/base.pb.go
index b7da6ff..21683b4 100644
--- a/proto/envoy/config/core/v3/base.pb.go
+++ b/proto/envoy/config/core/v3/base.pb.go
@@ -538,7 +538,6 @@ type Node struct {
        // E.g. "envoy" or "grpc"
        UserAgentName string 
`protobuf:"bytes,6,opt,name=user_agent_name,json=userAgentName,proto3" 
json:"user_agent_name,omitempty"`
        // Types that are assignable to UserAgentVersionType:
-       //
        //      *Node_UserAgentVersion
        //      *Node_UserAgentBuildVersion
        UserAgentVersionType isNode_UserAgentVersionType 
`protobuf_oneof:"user_agent_version_type"`
@@ -713,10 +712,9 @@ func (*Node_UserAgentBuildVersion) 
isNode_UserAgentVersionType() {}
 // object to match against. There are some well defined metadata used today for
 // this purpose:
 //
-//   - “{"envoy.lb": {"canary": <bool> }}“ This indicates the canary status of 
an
-//     endpoint and is also used during header processing
-//     (x-envoy-upstream-canary) and for stats purposes.
-//
+// * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of 
an
+//   endpoint and is also used during header processing
+//   (x-envoy-upstream-canary) and for stats purposes.
 // [#next-major-version: move to type/metadata/v2]
 type Metadata struct {
        state         protoimpl.MessageState
@@ -1255,7 +1253,6 @@ type DataSource struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Specifier:
-       //
        //      *DataSource_Filename
        //      *DataSource_InlineBytes
        //      *DataSource_InlineString
@@ -1482,7 +1479,6 @@ type AsyncDataSource struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to Specifier:
-       //
        //      *AsyncDataSource_Local
        //      *AsyncDataSource_Remote
        Specifier isAsyncDataSource_Specifier `protobuf_oneof:"specifier"`
@@ -1575,7 +1571,6 @@ type TransportSocket struct {
        // See the supported transport socket implementations for further 
documentation.
        //
        // Types that are assignable to ConfigType:
-       //
        //      *TransportSocket_TypedConfig
        ConfigType isTransportSocket_ConfigType `protobuf_oneof:"config_type"`
 }
@@ -1648,11 +1643,11 @@ func (*TransportSocket_TypedConfig) 
isTransportSocket_ConfigType() {}
 //
 // .. note::
 //
-//     Parsing of the runtime key's data is implemented such that it may be 
represented as a
-//     :ref:`FractionalPercent <envoy_v3_api_msg_type.v3.FractionalPercent>` 
proto represented as JSON/YAML
-//     and may also be represented as an integer with the assumption that the 
value is an integral
-//     percentage out of 100. For instance, a runtime key lookup returning the 
value "42" would parse
-//     as a `FractionalPercent` whose numerator is 42 and denominator is 
HUNDRED.
+//   Parsing of the runtime key's data is implemented such that it may be 
represented as a
+//   :ref:`FractionalPercent <envoy_v3_api_msg_type.v3.FractionalPercent>` 
proto represented as JSON/YAML
+//   and may also be represented as an integer with the assumption that the 
value is an integral
+//   percentage out of 100. For instance, a runtime key lookup returning the 
value "42" would parse
+//   as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
 type RuntimeFractionalPercent struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/proto/envoy/config/core/v3/http_uri.pb.go 
b/proto/envoy/config/core/v3/http_uri.pb.go
index 3edcb89..61b184e 100644
--- a/proto/envoy/config/core/v3/http_uri.pb.go
+++ b/proto/envoy/config/core/v3/http_uri.pb.go
@@ -35,7 +35,8 @@ type HttpUri struct {
        //
        // .. code-block:: yaml
        //
-       //      uri: https://www.googleapis.com/oauth2/v1/certs
+       //    uri: https://www.googleapis.com/oauth2/v1/certs
+       //
        Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
        // Specify how `uri` is to be fetched. Today, this requires an explicit
        // cluster, but in the future we may support dynamic cluster creation or
@@ -43,7 +44,6 @@ type HttpUri struct {
        // <https://github.com/envoyproxy/envoy/issues/1606>`_.
        //
        // Types that are assignable to HttpUpstreamType:
-       //
        //      *HttpUri_Cluster
        HttpUpstreamType isHttpUri_HttpUpstreamType 
`protobuf_oneof:"http_upstream_type"`
        // Sets the maximum duration in milliseconds that a response can take 
to arrive upon request.
@@ -122,7 +122,8 @@ type HttpUri_Cluster struct {
        //
        // .. code-block:: yaml
        //
-       //      cluster: jwks_cluster
+       //    cluster: jwks_cluster
+       //
        Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3,oneof"`
 }
 
diff --git a/proto/envoy/config/core/v3/socket_option.pb.go 
b/proto/envoy/config/core/v3/socket_option.pb.go
index 604570e..4e4c083 100644
--- a/proto/envoy/config/core/v3/socket_option.pb.go
+++ b/proto/envoy/config/core/v3/socket_option.pb.go
@@ -90,7 +90,6 @@ type SocketOption struct {
        // The numeric name as passed to setsockopt
        Name int64 `protobuf:"varint,3,opt,name=name,proto3" 
json:"name,omitempty"`
        // Types that are assignable to Value:
-       //
        //      *SocketOption_IntValue
        //      *SocketOption_BufValue
        Value isSocketOption_Value `protobuf_oneof:"value"`
diff --git a/proto/envoy/data/accesslog/v2/accesslog.pb.go 
b/proto/envoy/data/accesslog/v2/accesslog.pb.go
index a9903f1..e6d7168 100644
--- a/proto/envoy/data/accesslog/v2/accesslog.pb.go
+++ b/proto/envoy/data/accesslog/v2/accesslog.pb.go
@@ -866,7 +866,7 @@ type TLSProperties struct {
        TlsVersion TLSProperties_TLSVersion 
`protobuf:"varint,1,opt,name=tls_version,json=tlsVersion,proto3,enum=envoy.data.accesslog.v2.TLSProperties_TLSVersion"
 json:"tls_version,omitempty"`
        // TLS cipher suite negotiated during handshake. The value is a
        // four-digit hex code defined by the IANA TLS Cipher Suite Registry
-       // (e.g. “009C“ for “TLS_RSA_WITH_AES_128_GCM_SHA256“).
+       // (e.g. ``009C`` for ``TLS_RSA_WITH_AES_128_GCM_SHA256``).
        //
        // Here it is expressed as an integer.
        TlsCipherSuite *wrapperspb.UInt32Value 
`protobuf:"bytes,2,opt,name=tls_cipher_suite,json=tlsCipherSuite,proto3" 
json:"tls_cipher_suite,omitempty"`
@@ -964,26 +964,26 @@ type HTTPRequestProperties struct {
        RequestMethod core.RequestMethod 
`protobuf:"varint,1,opt,name=request_method,json=requestMethod,proto3,enum=envoy.api.v2.core.RequestMethod"
 json:"request_method,omitempty"`
        // The scheme portion of the incoming request URI.
        Scheme string `protobuf:"bytes,2,opt,name=scheme,proto3" 
json:"scheme,omitempty"`
-       // HTTP/2 “:authority“ or HTTP/1.1 “Host“ header value.
+       // HTTP/2 ``:authority`` or HTTP/1.1 ``Host`` header value.
        Authority string `protobuf:"bytes,3,opt,name=authority,proto3" 
json:"authority,omitempty"`
        // The port of the incoming request URI
        // (unused currently, as port is composed onto authority).
        Port *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=port,proto3" 
json:"port,omitempty"`
        // The path portion from the incoming request URI.
        Path string `protobuf:"bytes,5,opt,name=path,proto3" 
json:"path,omitempty"`
-       // Value of the “User-Agent“ request header.
+       // Value of the ``User-Agent`` request header.
        UserAgent string 
`protobuf:"bytes,6,opt,name=user_agent,json=userAgent,proto3" 
json:"user_agent,omitempty"`
-       // Value of the “Referer“ request header.
+       // Value of the ``Referer`` request header.
        Referer string `protobuf:"bytes,7,opt,name=referer,proto3" 
json:"referer,omitempty"`
-       // Value of the “X-Forwarded-For“ request header.
+       // Value of the ``X-Forwarded-For`` request header.
        ForwardedFor string 
`protobuf:"bytes,8,opt,name=forwarded_for,json=forwardedFor,proto3" 
json:"forwarded_for,omitempty"`
-       // Value of the “X-Request-Id“ request header
+       // Value of the ``X-Request-Id`` request header
        //
        // This header is used by Envoy to uniquely identify a request.
        // It will be generated for all external requests and internal requests 
that
        // do not already have a request ID.
        RequestId string 
`protobuf:"bytes,9,opt,name=request_id,json=requestId,proto3" 
json:"request_id,omitempty"`
-       // Value of the “X-Envoy-Original-Path“ request header.
+       // Value of the ``X-Envoy-Original-Path`` request header.
        OriginalPath string 
`protobuf:"bytes,10,opt,name=original_path,json=originalPath,proto3" 
json:"original_path,omitempty"`
        // Size of the HTTP request headers in bytes.
        //
@@ -1332,7 +1332,6 @@ type TLSProperties_CertificateProperties_SubjectAltName 
struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to San:
-       //
        //      *TLSProperties_CertificateProperties_SubjectAltName_Uri
        //      *TLSProperties_CertificateProperties_SubjectAltName_Dns
        San isTLSProperties_CertificateProperties_SubjectAltName_San 
`protobuf_oneof:"san"`
diff --git a/proto/envoy/data/accesslog/v3/accesslog.pb.go 
b/proto/envoy/data/accesslog/v3/accesslog.pb.go
index 709d698..4749d0e 100644
--- a/proto/envoy/data/accesslog/v3/accesslog.pb.go
+++ b/proto/envoy/data/accesslog/v3/accesslog.pb.go
@@ -929,7 +929,7 @@ type TLSProperties struct {
        TlsVersion TLSProperties_TLSVersion 
`protobuf:"varint,1,opt,name=tls_version,json=tlsVersion,proto3,enum=envoy.data.accesslog.v3.TLSProperties_TLSVersion"
 json:"tls_version,omitempty"`
        // TLS cipher suite negotiated during handshake. The value is a
        // four-digit hex code defined by the IANA TLS Cipher Suite Registry
-       // (e.g. “009C“ for “TLS_RSA_WITH_AES_128_GCM_SHA256“).
+       // (e.g. ``009C`` for ``TLS_RSA_WITH_AES_128_GCM_SHA256``).
        //
        // Here it is expressed as an integer.
        TlsCipherSuite *wrapperspb.UInt32Value 
`protobuf:"bytes,2,opt,name=tls_cipher_suite,json=tlsCipherSuite,proto3" 
json:"tls_cipher_suite,omitempty"`
@@ -1027,26 +1027,26 @@ type HTTPRequestProperties struct {
        RequestMethod v3.RequestMethod 
`protobuf:"varint,1,opt,name=request_method,json=requestMethod,proto3,enum=envoy.config.core.v3.RequestMethod"
 json:"request_method,omitempty"`
        // The scheme portion of the incoming request URI.
        Scheme string `protobuf:"bytes,2,opt,name=scheme,proto3" 
json:"scheme,omitempty"`
-       // HTTP/2 “:authority“ or HTTP/1.1 “Host“ header value.
+       // HTTP/2 ``:authority`` or HTTP/1.1 ``Host`` header value.
        Authority string `protobuf:"bytes,3,opt,name=authority,proto3" 
json:"authority,omitempty"`
        // The port of the incoming request URI
        // (unused currently, as port is composed onto authority).
        Port *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=port,proto3" 
json:"port,omitempty"`
        // The path portion from the incoming request URI.
        Path string `protobuf:"bytes,5,opt,name=path,proto3" 
json:"path,omitempty"`
-       // Value of the “User-Agent“ request header.
+       // Value of the ``User-Agent`` request header.
        UserAgent string 
`protobuf:"bytes,6,opt,name=user_agent,json=userAgent,proto3" 
json:"user_agent,omitempty"`
-       // Value of the “Referer“ request header.
+       // Value of the ``Referer`` request header.
        Referer string `protobuf:"bytes,7,opt,name=referer,proto3" 
json:"referer,omitempty"`
-       // Value of the “X-Forwarded-For“ request header.
+       // Value of the ``X-Forwarded-For`` request header.
        ForwardedFor string 
`protobuf:"bytes,8,opt,name=forwarded_for,json=forwardedFor,proto3" 
json:"forwarded_for,omitempty"`
-       // Value of the “X-Request-Id“ request header
+       // Value of the ``X-Request-Id`` request header
        //
        // This header is used by Envoy to uniquely identify a request.
        // It will be generated for all external requests and internal requests 
that
        // do not already have a request ID.
        RequestId string 
`protobuf:"bytes,9,opt,name=request_id,json=requestId,proto3" 
json:"request_id,omitempty"`
-       // Value of the “X-Envoy-Original-Path“ request header.
+       // Value of the ``X-Envoy-Original-Path`` request header.
        OriginalPath string 
`protobuf:"bytes,10,opt,name=original_path,json=originalPath,proto3" 
json:"original_path,omitempty"`
        // Size of the HTTP request headers in bytes.
        //
@@ -1395,7 +1395,6 @@ type TLSProperties_CertificateProperties_SubjectAltName 
struct {
        unknownFields protoimpl.UnknownFields
 
        // Types that are assignable to San:
-       //
        //      *TLSProperties_CertificateProperties_SubjectAltName_Uri
        //      *TLSProperties_CertificateProperties_SubjectAltName_Dns
        San isTLSProperties_CertificateProperties_SubjectAltName_San 
`protobuf_oneof:"san"`
diff --git a/proto/envoy/service/accesslog/v2/als.pb.go 
b/proto/envoy/service/accesslog/v2/als.pb.go
index 4818c6f..a876399 100644
--- a/proto/envoy/service/accesslog/v2/als.pb.go
+++ b/proto/envoy/service/accesslog/v2/als.pb.go
@@ -77,7 +77,6 @@ type StreamAccessLogsMessage struct {
        // ever include one type of log entry.
        //
        // Types that are assignable to LogEntries:
-       //
        //      *StreamAccessLogsMessage_HttpLogs
        //      *StreamAccessLogsMessage_TcpLogs
        LogEntries isStreamAccessLogsMessage_LogEntries 
`protobuf_oneof:"log_entries"`
diff --git a/proto/envoy/service/accesslog/v3/als.pb.go 
b/proto/envoy/service/accesslog/v3/als.pb.go
index 4606cd9..a818de8 100644
--- a/proto/envoy/service/accesslog/v3/als.pb.go
+++ b/proto/envoy/service/accesslog/v3/als.pb.go
@@ -77,7 +77,6 @@ type StreamAccessLogsMessage struct {
        // ever include one type of log entry.
        //
        // Types that are assignable to LogEntries:
-       //
        //      *StreamAccessLogsMessage_HttpLogs
        //      *StreamAccessLogsMessage_TcpLogs
        LogEntries isStreamAccessLogsMessage_LogEntries 
`protobuf_oneof:"log_entries"`
diff --git a/proto/opentelemetry/proto/common/v1/common.pb.go 
b/proto/opentelemetry/proto/common/v1/common.pb.go
index 9a2022a..658a180 100644
--- a/proto/opentelemetry/proto/common/v1/common.pb.go
+++ b/proto/opentelemetry/proto/common/v1/common.pb.go
@@ -46,7 +46,6 @@ type AnyValue struct {
        // in which case this AnyValue is considered to be "empty".
        //
        // Types that are assignable to Value:
-       //
        //      *AnyValue_StringValue
        //      *AnyValue_BoolValue
        //      *AnyValue_IntValue
diff --git a/proto/opentelemetry/proto/metrics/v1/metrics.pb.go 
b/proto/opentelemetry/proto/metrics/v1/metrics.pb.go
index b953c10..22d43a7 100644
--- a/proto/opentelemetry/proto/metrics/v1/metrics.pb.go
+++ b/proto/opentelemetry/proto/metrics/v1/metrics.pb.go
@@ -56,18 +56,18 @@ const (
        // it receives and reports the sum of these requests every second as a
        // DELTA metric:
        //
-       //  1. The system starts receiving at time=t_0.
-       //  2. A request is received, the system measures 1 request.
-       //  3. A request is received, the system measures 1 request.
-       //  4. A request is received, the system measures 1 request.
-       //  5. The 1 second collection cycle ends. A metric is exported for the
-       //     number of requests received over the interval of time t_0 to
-       //     t_0+1 with a value of 3.
-       //  6. A request is received, the system measures 1 request.
-       //  7. A request is received, the system measures 1 request.
-       //  8. The 1 second collection cycle ends. A metric is exported for the
-       //     number of requests received over the interval of time t_0+1 to
-       //     t_0+2 with a value of 2.
+       //   1. The system starts receiving at time=t_0.
+       //   2. A request is received, the system measures 1 request.
+       //   3. A request is received, the system measures 1 request.
+       //   4. A request is received, the system measures 1 request.
+       //   5. The 1 second collection cycle ends. A metric is exported for the
+       //      number of requests received over the interval of time t_0 to
+       //      t_0+1 with a value of 3.
+       //   6. A request is received, the system measures 1 request.
+       //   7. A request is received, the system measures 1 request.
+       //   8. The 1 second collection cycle ends. A metric is exported for the
+       //      number of requests received over the interval of time t_0+1 to
+       //      t_0+2 with a value of 2.
        AggregationTemporality_AGGREGATION_TEMPORALITY_DELTA 
AggregationTemporality = 1
        // CUMULATIVE is an AggregationTemporality for a metric aggregator which
        // reports changes since a fixed start time. This means that current 
values
@@ -81,24 +81,24 @@ const (
        // it receives and reports the sum of these requests every second as a
        // CUMULATIVE metric:
        //
-       //  1. The system starts receiving at time=t_0.
-       //  2. A request is received, the system measures 1 request.
-       //  3. A request is received, the system measures 1 request.
-       //  4. A request is received, the system measures 1 request.
-       //  5. The 1 second collection cycle ends. A metric is exported for the
-       //     number of requests received over the interval of time t_0 to
-       //     t_0+1 with a value of 3.
-       //  6. A request is received, the system measures 1 request.
-       //  7. A request is received, the system measures 1 request.
-       //  8. The 1 second collection cycle ends. A metric is exported for the
-       //     number of requests received over the interval of time t_0 to
-       //     t_0+2 with a value of 5.
-       //  9. The system experiences a fault and loses state.
-       //  10. The system recovers and resumes receiving at time=t_1.
-       //  11. A request is received, the system measures 1 request.
-       //  12. The 1 second collection cycle ends. A metric is exported for the
-       //     number of requests received over the interval of time t_1 to
-       //     t_0+1 with a value of 1.
+       //   1. The system starts receiving at time=t_0.
+       //   2. A request is received, the system measures 1 request.
+       //   3. A request is received, the system measures 1 request.
+       //   4. A request is received, the system measures 1 request.
+       //   5. The 1 second collection cycle ends. A metric is exported for the
+       //      number of requests received over the interval of time t_0 to
+       //      t_0+1 with a value of 3.
+       //   6. A request is received, the system measures 1 request.
+       //   7. A request is received, the system measures 1 request.
+       //   8. The 1 second collection cycle ends. A metric is exported for the
+       //      number of requests received over the interval of time t_0 to
+       //      t_0+2 with a value of 5.
+       //   9. The system experiences a fault and loses state.
+       //   10. The system recovers and resumes receiving at time=t_1.
+       //   11. A request is received, the system measures 1 request.
+       //   12. The 1 second collection cycle ends. A metric is exported for 
the
+       //      number of requests received over the interval of time t_1 to
+       //      t_0+1 with a value of 1.
        //
        // Note: Even though, when reporting changes since last report time, 
using
        // CUMULATIVE is valid, it is not recommended. This may cause problems 
for
@@ -153,7 +153,8 @@ func (AggregationTemporality) EnumDescriptor() ([]byte, 
[]int) {
 // enum is a bit-mask.  To test the presence of a single flag in the flags of
 // a data point, for example, use an expression like:
 //
-//     (point.flags & FLAG_NO_RECORDED_VALUE) == FLAG_NO_RECORDED_VALUE
+//   (point.flags & FLAG_NO_RECORDED_VALUE) == FLAG_NO_RECORDED_VALUE
+//
 type DataPointFlags int32
 
 const (
@@ -406,68 +407,66 @@ func (x *ScopeMetrics) GetSchemaUrl() string {
 // Defines a Metric which has one or more timeseries.  The following is a
 // brief summary of the Metric data model.  For more details, see:
 //
-//     
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/data-model.md
+//   
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/data-model.md
+//
 //
 // The data model and relation between entities is shown in the
 // diagram below. Here, "DataPoint" is the term used to refer to any
 // one of the specific data point value types, and "points" is the term used
 // to refer to any one of the lists of points contained in the Metric.
 //
-//   - Metric is composed of a metadata and data.
-//
-//   - Metadata part contains a name, description, unit.
-//
-//   - Data is one of the possible types (Sum, Gauge, Histogram, Summary).
-//
-//   - DataPoint contains timestamps, attributes, and one of the possible 
value type
-//     fields.
+// - Metric is composed of a metadata and data.
+// - Metadata part contains a name, description, unit.
+// - Data is one of the possible types (Sum, Gauge, Histogram, Summary).
+// - DataPoint contains timestamps, attributes, and one of the possible value 
type
+//   fields.
 //
 //     Metric
-//     +------------+
-//     |name        |
-//     |description |
-//     |unit        |     +------------------------------------+
-//     |data        |---> |Gauge, Sum, Histogram, Summary, ... |
-//     +------------+     +------------------------------------+
+//  +------------+
+//  |name        |
+//  |description |
+//  |unit        |     +------------------------------------+
+//  |data        |---> |Gauge, Sum, Histogram, Summary, ... |
+//  +------------+     +------------------------------------+
 //
-//     Data [One of Gauge, Sum, Histogram, Summary, ...]
-//     +-----------+
-//     |...        |  // Metadata about the Data.
-//     |points     |--+
-//     +-----------+  |
-//     |      +---------------------------+
-//     |      |DataPoint 1                |
-//     v      |+------+------+   +------+ |
-//     +-----+   ||label |label |...|label | |
-//     |  1  |-->||value1|value2|...|valueN| |
-//     +-----+   |+------+------+   +------+ |
-//     |  .  |   |+-----+                    |
-//     |  .  |   ||value|                    |
-//     |  .  |   |+-----+                    |
-//     |  .  |   +---------------------------+
-//     |  .  |                   .
-//     |  .  |                   .
-//     |  .  |                   .
-//     |  .  |   +---------------------------+
-//     |  .  |   |DataPoint M                |
-//     +-----+   |+------+------+   +------+ |
-//     |  M  |-->||label |label |...|label | |
-//     +-----+   ||value1|value2|...|valueN| |
-//     |+------+------+   +------+ |
-//     |+-----+                    |
-//     ||value|                    |
-//     |+-----+                    |
-//     +---------------------------+
+//    Data [One of Gauge, Sum, Histogram, Summary, ...]
+//  +-----------+
+//  |...        |  // Metadata about the Data.
+//  |points     |--+
+//  +-----------+  |
+//                 |      +---------------------------+
+//                 |      |DataPoint 1                |
+//                 v      |+------+------+   +------+ |
+//              +-----+   ||label |label |...|label | |
+//              |  1  |-->||value1|value2|...|valueN| |
+//              +-----+   |+------+------+   +------+ |
+//              |  .  |   |+-----+                    |
+//              |  .  |   ||value|                    |
+//              |  .  |   |+-----+                    |
+//              |  .  |   +---------------------------+
+//              |  .  |                   .
+//              |  .  |                   .
+//              |  .  |                   .
+//              |  .  |   +---------------------------+
+//              |  .  |   |DataPoint M                |
+//              +-----+   |+------+------+   +------+ |
+//              |  M  |-->||label |label |...|label | |
+//              +-----+   ||value1|value2|...|valueN| |
+//                        |+------+------+   +------+ |
+//                        |+-----+                    |
+//                        ||value|                    |
+//                        |+-----+                    |
+//                        +---------------------------+
 //
 // Each distinct type of DataPoint represents the output of a specific
 // aggregation function, the result of applying the DataPoint's
 // associated function of to one or more measurements.
 //
 // All DataPoint types have three common fields:
-//   - Attributes includes key-value pairs associated with the data point
-//   - TimeUnixNano is required, set to the end time of the aggregation
-//   - StartTimeUnixNano is optional, but strongly encouraged for DataPoints
-//     having an AggregationTemporality field, as discussed below.
+// - Attributes includes key-value pairs associated with the data point
+// - TimeUnixNano is required, set to the end time of the aggregation
+// - StartTimeUnixNano is optional, but strongly encouraged for DataPoints
+//   having an AggregationTemporality field, as discussed below.
 //
 // Both TimeUnixNano and StartTimeUnixNano values are expressed as
 // UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.
@@ -507,7 +506,6 @@ type Metric struct {
        // the time interval over which they are reported.
        //
        // Types that are assignable to Data:
-       //
        //      *Metric_Gauge
        //      *Metric_Sum
        //      *Metric_Histogram
@@ -967,7 +965,6 @@ type NumberDataPoint struct {
        // value fields is not present inside this oneof.
        //
        // Types that are assignable to Value:
-       //
        //      *NumberDataPoint_AsDouble
        //      *NumberDataPoint_AsInt
        Value isNumberDataPoint_Value `protobuf_oneof:"value"`
@@ -1274,6 +1271,7 @@ func (x *HistogramDataPoint) GetMax() float64 {
 // time-varying values of a ExponentialHistogram of double values. A 
ExponentialHistogram contains
 // summary statistics for a population of values, it may optionally contain the
 // distribution of those values across a set of buckets.
+//
 type ExponentialHistogramDataPoint struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
@@ -1311,7 +1309,7 @@ type ExponentialHistogramDataPoint struct {
        // scale describes the resolution of the histogram.  Boundaries are
        // located at powers of the base, where:
        //
-       //      base = (2^(2^-scale))
+       //   base = (2^(2^-scale))
        //
        // The histogram bucket identified by `index`, a signed integer,
        // contains values that are greater than (base^index) and
@@ -1618,7 +1616,6 @@ type Exemplar struct {
        // inside this oneof.
        //
        // Types that are assignable to Value:
-       //
        //      *Exemplar_AsDouble
        //      *Exemplar_AsInt
        Value isExemplar_Value `protobuf_oneof:"value"`
diff --git a/proto/validate/validate.pb.go b/proto/validate/validate.pb.go
index f997a02..4f11909 100644
--- a/proto/validate/validate.pb.go
+++ b/proto/validate/validate.pb.go
@@ -94,7 +94,6 @@ type FieldRules struct {
 
        Message *MessageRules `protobuf:"bytes,17,opt,name=message" 
json:"message,omitempty"`
        // Types that are assignable to Type:
-       //
        //      *FieldRules_Float
        //      *FieldRules_Double
        //      *FieldRules_Int32
@@ -2001,7 +2000,6 @@ type StringRules struct {
        // patterns
        //
        // Types that are assignable to WellKnown:
-       //
        //      *StringRules_Email
        //      *StringRules_Hostname
        //      *StringRules_Ip
@@ -2373,7 +2371,6 @@ type BytesRules struct {
        // patterns
        //
        // Types that are assignable to WellKnown:
-       //
        //      *BytesRules_Ip
        //      *BytesRules_Ipv4
        //      *BytesRules_Ipv6
diff --git a/proto/xds/core/v3/context_params.pb.go 
b/proto/xds/core/v3/context_params.pb.go
index 106b983..548f800 100644
--- a/proto/xds/core/v3/context_params.pb.go
+++ b/proto/xds/core/v3/context_params.pb.go
@@ -26,8 +26,7 @@ const (
 // type functional attributes. All per-resource type attributes will be 
`xds.resource.`
 // prefixed and some of these are documented below:
 // `xds.resource.listening_address`: The value is "IP:port" (e.g. 
"10.1.1.3:8080") which is
-//
-//     the listening address of a Listener. Used in a Listener resource query.
+//   the listening address of a Listener. Used in a Listener resource query.
 type ContextParams struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/query/schema.go b/query/schema.go
index 84261d6..f95b498 100644
--- a/query/schema.go
+++ b/query/schema.go
@@ -3,6 +3,7 @@
 package query
 
 import (
+       "bytes"
        "fmt"
        "io"
        "strconv"
@@ -280,9 +281,10 @@ type DebuggingTrace struct {
 }
 
 type Duration struct {
-       Start string `json:"start"`
-       End   string `json:"end"`
-       Step  Step   `json:"step"`
+       Start     string `json:"start"`
+       End       string `json:"end"`
+       Step      Step   `json:"step"`
+       ColdStage *bool  `json:"coldStage,omitempty"`
 }
 
 type EBPFNetworkDataCollectingSettings struct {
@@ -634,11 +636,23 @@ type MetricsCondition struct {
        Entity *Entity `json:"entity"`
 }
 
+type MetricsTTL struct {
+       Minute     int `json:"minute"`
+       Hour       int `json:"hour"`
+       Day        int `json:"day"`
+       ColdMinute int `json:"coldMinute"`
+       ColdHour   int `json:"coldHour"`
+       ColdDay    int `json:"coldDay"`
+}
+
 type MetricsValues struct {
        Label  *string    `json:"label,omitempty"`
        Values *IntValues `json:"values,omitempty"`
 }
 
+type Mutation struct {
+}
+
 type NewDashboardSetting struct {
        Configuration string `json:"configuration"`
 }
@@ -811,6 +825,9 @@ type ProfiledTraceSegments struct {
        Spans         []*ProfiledSpan `json:"spans"`
 }
 
+type Query struct {
+}
+
 type Record struct {
        Name  string  `json:"name"`
        ID    string  `json:"id"`
@@ -825,6 +842,13 @@ type RecordCondition struct {
        Order        Order   `json:"order"`
 }
 
+type RecordsTTL struct {
+       Value            int `json:"value"`
+       SuperDataset     int `json:"superDataset"`
+       ColdValue        int `json:"coldValue"`
+       ColdSuperDataset int `json:"coldSuperDataset"`
+}
+
 type Ref struct {
        TraceID         string  `json:"traceId"`
        ParentSegmentID string  `json:"parentSegmentId"`
@@ -1039,7 +1063,7 @@ func (e AsyncProfilerEventType) String() string {
        return string(e)
 }
 
-func (e *AsyncProfilerEventType) UnmarshalGQL(v interface{}) error {
+func (e *AsyncProfilerEventType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1056,6 +1080,20 @@ func (e AsyncProfilerEventType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *AsyncProfilerEventType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e AsyncProfilerEventType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type AsyncProfilerTaskCreationType string
 
 const (
@@ -1082,7 +1120,7 @@ func (e AsyncProfilerTaskCreationType) String() string {
        return string(e)
 }
 
-func (e *AsyncProfilerTaskCreationType) UnmarshalGQL(v interface{}) error {
+func (e *AsyncProfilerTaskCreationType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1099,6 +1137,20 @@ func (e AsyncProfilerTaskCreationType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *AsyncProfilerTaskCreationType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e AsyncProfilerTaskCreationType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type AsyncProfilerTaskLogOperationType string
 
 const (
@@ -1127,7 +1179,7 @@ func (e AsyncProfilerTaskLogOperationType) String() 
string {
        return string(e)
 }
 
-func (e *AsyncProfilerTaskLogOperationType) UnmarshalGQL(v interface{}) error {
+func (e *AsyncProfilerTaskLogOperationType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1144,6 +1196,20 @@ func (e AsyncProfilerTaskLogOperationType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *AsyncProfilerTaskLogOperationType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e AsyncProfilerTaskLogOperationType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type ContentType string
 
 const (
@@ -1170,7 +1236,7 @@ func (e ContentType) String() string {
        return string(e)
 }
 
-func (e *ContentType) UnmarshalGQL(v interface{}) error {
+func (e *ContentType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1187,6 +1253,20 @@ func (e ContentType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *ContentType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e ContentType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type ContinuousProfilingMonitorType string
 
 const (
@@ -1217,7 +1297,7 @@ func (e ContinuousProfilingMonitorType) String() string {
        return string(e)
 }
 
-func (e *ContinuousProfilingMonitorType) UnmarshalGQL(v interface{}) error {
+func (e *ContinuousProfilingMonitorType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1234,6 +1314,20 @@ func (e ContinuousProfilingMonitorType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *ContinuousProfilingMonitorType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e ContinuousProfilingMonitorType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type ContinuousProfilingTargetType string
 
 const (
@@ -1260,7 +1354,7 @@ func (e ContinuousProfilingTargetType) String() string {
        return string(e)
 }
 
-func (e *ContinuousProfilingTargetType) UnmarshalGQL(v interface{}) error {
+func (e *ContinuousProfilingTargetType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1277,6 +1371,20 @@ func (e ContinuousProfilingTargetType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *ContinuousProfilingTargetType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e ContinuousProfilingTargetType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type DetectPoint string
 
 const (
@@ -1303,7 +1411,7 @@ func (e DetectPoint) String() string {
        return string(e)
 }
 
-func (e *DetectPoint) UnmarshalGQL(v interface{}) error {
+func (e *DetectPoint) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1320,6 +1428,20 @@ func (e DetectPoint) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *DetectPoint) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e DetectPoint) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type EBPFProfilingAnalyzeAggregateType string
 
 const (
@@ -1344,7 +1466,7 @@ func (e EBPFProfilingAnalyzeAggregateType) String() 
string {
        return string(e)
 }
 
-func (e *EBPFProfilingAnalyzeAggregateType) UnmarshalGQL(v interface{}) error {
+func (e *EBPFProfilingAnalyzeAggregateType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1361,6 +1483,20 @@ func (e EBPFProfilingAnalyzeAggregateType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *EBPFProfilingAnalyzeAggregateType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e EBPFProfilingAnalyzeAggregateType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type EBPFProfilingStackType string
 
 const (
@@ -1385,7 +1521,7 @@ func (e EBPFProfilingStackType) String() string {
        return string(e)
 }
 
-func (e *EBPFProfilingStackType) UnmarshalGQL(v interface{}) error {
+func (e *EBPFProfilingStackType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1402,6 +1538,20 @@ func (e EBPFProfilingStackType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *EBPFProfilingStackType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e EBPFProfilingStackType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type EBPFProfilingTargetType string
 
 const (
@@ -1428,7 +1578,7 @@ func (e EBPFProfilingTargetType) String() string {
        return string(e)
 }
 
-func (e *EBPFProfilingTargetType) UnmarshalGQL(v interface{}) error {
+func (e *EBPFProfilingTargetType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1445,6 +1595,20 @@ func (e EBPFProfilingTargetType) MarshalGQL(w io.Writer) 
{
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *EBPFProfilingTargetType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e EBPFProfilingTargetType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type EBPFProfilingTriggerType string
 
 const (
@@ -1469,7 +1633,7 @@ func (e EBPFProfilingTriggerType) String() string {
        return string(e)
 }
 
-func (e *EBPFProfilingTriggerType) UnmarshalGQL(v interface{}) error {
+func (e *EBPFProfilingTriggerType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1486,6 +1650,20 @@ func (e EBPFProfilingTriggerType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *EBPFProfilingTriggerType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e EBPFProfilingTriggerType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type ErrorCategory string
 
 const (
@@ -1520,7 +1698,7 @@ func (e ErrorCategory) String() string {
        return string(e)
 }
 
-func (e *ErrorCategory) UnmarshalGQL(v interface{}) error {
+func (e *ErrorCategory) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1537,6 +1715,20 @@ func (e ErrorCategory) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *ErrorCategory) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e ErrorCategory) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type EventType string
 
 const (
@@ -1561,7 +1753,7 @@ func (e EventType) String() string {
        return string(e)
 }
 
-func (e *EventType) UnmarshalGQL(v interface{}) error {
+func (e *EventType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1578,6 +1770,20 @@ func (e EventType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *EventType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e EventType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type ExpressionResultType string
 
 const (
@@ -1608,7 +1814,7 @@ func (e ExpressionResultType) String() string {
        return string(e)
 }
 
-func (e *ExpressionResultType) UnmarshalGQL(v interface{}) error {
+func (e *ExpressionResultType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1625,6 +1831,20 @@ func (e ExpressionResultType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *ExpressionResultType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e ExpressionResultType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type JFREventType string
 
 const (
@@ -1655,7 +1875,7 @@ func (e JFREventType) String() string {
        return string(e)
 }
 
-func (e *JFREventType) UnmarshalGQL(v interface{}) error {
+func (e *JFREventType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1672,6 +1892,20 @@ func (e JFREventType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *JFREventType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e JFREventType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type Language string
 
 const (
@@ -1710,7 +1944,7 @@ func (e Language) String() string {
        return string(e)
 }
 
-func (e *Language) UnmarshalGQL(v interface{}) error {
+func (e *Language) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1727,6 +1961,20 @@ func (e Language) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *Language) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e Language) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type MetricsType string
 
 const (
@@ -1757,7 +2005,7 @@ func (e MetricsType) String() string {
        return string(e)
 }
 
-func (e *MetricsType) UnmarshalGQL(v interface{}) error {
+func (e *MetricsType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1774,6 +2022,20 @@ func (e MetricsType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *MetricsType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e MetricsType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type Order string
 
 const (
@@ -1798,7 +2060,7 @@ func (e Order) String() string {
        return string(e)
 }
 
-func (e *Order) UnmarshalGQL(v interface{}) error {
+func (e *Order) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1815,6 +2077,20 @@ func (e Order) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *Order) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e Order) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type ProfileTaskLogOperationType string
 
 const (
@@ -1839,7 +2115,7 @@ func (e ProfileTaskLogOperationType) String() string {
        return string(e)
 }
 
-func (e *ProfileTaskLogOperationType) UnmarshalGQL(v interface{}) error {
+func (e *ProfileTaskLogOperationType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1856,6 +2132,20 @@ func (e ProfileTaskLogOperationType) MarshalGQL(w 
io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *ProfileTaskLogOperationType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e ProfileTaskLogOperationType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type QueryOrder string
 
 const (
@@ -1880,7 +2170,7 @@ func (e QueryOrder) String() string {
        return string(e)
 }
 
-func (e *QueryOrder) UnmarshalGQL(v interface{}) error {
+func (e *QueryOrder) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1897,6 +2187,20 @@ func (e QueryOrder) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *QueryOrder) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e QueryOrder) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type RefType string
 
 const (
@@ -1921,7 +2225,7 @@ func (e RefType) String() string {
        return string(e)
 }
 
-func (e *RefType) UnmarshalGQL(v interface{}) error {
+func (e *RefType) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1938,6 +2242,20 @@ func (e RefType) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *RefType) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e RefType) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type Scope string
 
 const (
@@ -1976,7 +2294,7 @@ func (e Scope) String() string {
        return string(e)
 }
 
-func (e *Scope) UnmarshalGQL(v interface{}) error {
+func (e *Scope) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -1993,6 +2311,20 @@ func (e Scope) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *Scope) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e Scope) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type Step string
 
 const (
@@ -2021,7 +2353,7 @@ func (e Step) String() string {
        return string(e)
 }
 
-func (e *Step) UnmarshalGQL(v interface{}) error {
+func (e *Step) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -2038,6 +2370,20 @@ func (e Step) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
 
+func (e *Step) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e Step) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
+
 type TraceState string
 
 const (
@@ -2064,7 +2410,7 @@ func (e TraceState) String() string {
        return string(e)
 }
 
-func (e *TraceState) UnmarshalGQL(v interface{}) error {
+func (e *TraceState) UnmarshalGQL(v any) error {
        str, ok := v.(string)
        if !ok {
                return fmt.Errorf("enums must be strings")
@@ -2080,3 +2426,17 @@ func (e *TraceState) UnmarshalGQL(v interface{}) error {
 func (e TraceState) MarshalGQL(w io.Writer) {
        fmt.Fprint(w, strconv.Quote(e.String()))
 }
+
+func (e *TraceState) UnmarshalJSON(b []byte) error {
+       s, err := strconv.Unquote(string(b))
+       if err != nil {
+               return err
+       }
+       return e.UnmarshalGQL(s)
+}
+
+func (e TraceState) MarshalJSON() ([]byte, error) {
+       var buf bytes.Buffer
+       e.MarshalGQL(&buf)
+       return buf.Bytes(), nil
+}
diff --git a/satellite/data/v1/SniffData.pb.go 
b/satellite/data/v1/SniffData.pb.go
index 4662b75..f695247 100644
--- a/satellite/data/v1/SniffData.pb.go
+++ b/satellite/data/v1/SniffData.pb.go
@@ -167,7 +167,6 @@ type SniffData struct {
        // Transfer data.
        //
        // Types that are assignable to Data:
-       //
        //      *SniffData_Clr
        //      *SniffData_Jvm
        //      *SniffData_Meter
diff --git a/scripts/update_query_protocol.sh b/scripts/update_query_protocol.sh
index aed54a1..d77dfd4 100644
--- a/scripts/update_query_protocol.sh
+++ b/scripts/update_query_protocol.sh
@@ -42,12 +42,10 @@ tar -zxf "$TEMPDIR"/query-protocol.tgz -C 
"$TEMPDIR"/query-protocol --strip 1
 
 rm -rf "$TEMPDIR"/query-protocol.tgz
 
-go get github.com/99designs/[email protected]
+go get github.com/99designs/[email protected]
 
-"$(go env GOPATH)"/bin/gqlgen -h > /dev/null 2>&1 || go install 
github.com/99designs/gqlgen
-"$(go env GOPATH)"/bin/gqlgen generate
+go run github.com/99designs/[email protected] generate
 
 rm -rf "$TEMPDIR"/query-protocol
 
 go mod tidy
-

Reply via email to