diff --git a/api/service/v1alpha1/service.pb.go b/api/service/v1alpha1/service.pb.go index bb52d3dc0e..213fb33138 100644 --- a/api/service/v1alpha1/service.pb.go +++ b/api/service/v1alpha1/service.pb.go @@ -1538,6 +1538,16 @@ type ListStagesRequest struct { // When specified, only Stages that subscribe to at least one of the named // Warehouses are returned. FreightOrigins []string `protobuf:"bytes,2,rep,name=freight_origins,json=freightOrigins,proto3" json:"freight_origins,omitempty"` + // summary, when true, strips heavy fields from each Stage in the response. + // Intended for list and graph views that render many Stages but do not + // need full FreightHistory, PromotionTemplate step configuration, or the + // raw health output blob. Stripped Stages still carry: metadata, shard, + // requestedFreight, promotionTemplate step skeletons (kind/as/name but + // not config), verification, conditions, currentFreight (history[0]), + // currentPromotion, lastPromotion, health metadata (without output.raw), + // observedGeneration, autoPromotionEnabled. Use summary=false (default) + // to retrieve the full Stage, or GetStage for a single Stage in detail. + Summary bool `protobuf:"varint,3,opt,name=summary,proto3" json:"summary,omitempty"` } func (x *ListStagesRequest) Reset() { @@ -1586,14 +1596,30 @@ func (x *ListStagesRequest) GetFreightOrigins() []string { return nil } +func (x *ListStagesRequest) GetSummary() bool { + if x != nil { + return x.Summary + } + return false +} + // ListStagesResponse contains a list of stages within a project. type ListStagesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // stages is the list of Stage resources found in the project. + // stages is the list of Stage resources found in the project. When the + // corresponding request set summary=true, each Stage has heavy fields + // stripped: status.freightHistory is truncated to index 0, + // spec.promotionTemplate.spec.steps[*].config is cleared, and + // status.health.output is nil. Stages []*v1alpha1.Stage `protobuf:"bytes,1,rep,name=stages,proto3" json:"stages,omitempty"` + // resource_version is the Kubernetes ResourceVersion of the underlying + // StageList. Clients may pass this value to WatchStages to begin watching + // from the exact point this list was taken, receiving only subsequent + // changes without redundant initial events. + ResourceVersion string `protobuf:"bytes,2,opt,name=resource_version,json=resourceVersion,proto3" json:"resource_version,omitempty"` } func (x *ListStagesResponse) Reset() { @@ -1635,6 +1661,13 @@ func (x *ListStagesResponse) GetStages() []*v1alpha1.Stage { return nil } +func (x *ListStagesResponse) GetResourceVersion() string { + if x != nil { + return x.ResourceVersion + } + return "" +} + // ListImagesRequest is the request for listing images and their usage across stages. type ListImagesRequest struct { state protoimpl.MessageState @@ -1982,6 +2015,117 @@ func (*GetStageResponse_Stage) isGetStageResponse_Result() {} func (*GetStageResponse_Raw) isGetStageResponse_Result() {} +// GetStageHealthOutputsRequest is the request for fetching the raw health +// output blob of one or more Stages within a project. +type GetStageHealthOutputsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // project is the name of the project containing the Stages. + Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + // stage_names is the list of Stage names whose health outputs to return. + // Order is irrelevant; duplicates are deduplicated by the server. + StageNames []string `protobuf:"bytes,2,rep,name=stage_names,json=stageNames,proto3" json:"stage_names,omitempty"` +} + +func (x *GetStageHealthOutputsRequest) Reset() { + *x = GetStageHealthOutputsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_service_v1alpha1_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStageHealthOutputsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStageHealthOutputsRequest) ProtoMessage() {} + +func (x *GetStageHealthOutputsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_service_v1alpha1_service_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStageHealthOutputsRequest.ProtoReflect.Descriptor instead. +func (*GetStageHealthOutputsRequest) Descriptor() ([]byte, []int) { + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{32} +} + +func (x *GetStageHealthOutputsRequest) GetProject() string { + if x != nil { + return x.Project + } + return "" +} + +func (x *GetStageHealthOutputsRequest) GetStageNames() []string { + if x != nil { + return x.StageNames + } + return nil +} + +// GetStageHealthOutputsResponse contains per-Stage raw health output blobs. +type GetStageHealthOutputsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // health_outputs maps Stage name to the raw bytes of its + // Stage.status.health.output.raw field. Stages that do not exist in the + // project or have no health output recorded are omitted from the map. + HealthOutputs map[string][]byte `protobuf:"bytes,1,rep,name=health_outputs,json=healthOutputs,proto3" json:"health_outputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *GetStageHealthOutputsResponse) Reset() { + *x = GetStageHealthOutputsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_service_v1alpha1_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStageHealthOutputsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStageHealthOutputsResponse) ProtoMessage() {} + +func (x *GetStageHealthOutputsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_service_v1alpha1_service_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStageHealthOutputsResponse.ProtoReflect.Descriptor instead. +func (*GetStageHealthOutputsResponse) Descriptor() ([]byte, []int) { + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{33} +} + +func (x *GetStageHealthOutputsResponse) GetHealthOutputs() map[string][]byte { + if x != nil { + return x.HealthOutputs + } + return nil +} + // WatchStagesRequest is the request for watching stage changes via streaming. type WatchStagesRequest struct { state protoimpl.MessageState @@ -1996,12 +2140,21 @@ type WatchStagesRequest struct { // When specified, only events for Stages that subscribe to at least one of // the named Warehouses are streamed. FreightOrigins []string `protobuf:"bytes,3,rep,name=freight_origins,json=freightOrigins,proto3" json:"freight_origins,omitempty"` + // summary, when true, applies the same projection as + // ListStagesRequest.summary to each streamed Stage. See the summary + // field on ListStagesRequest for the list of fields stripped. + Summary bool `protobuf:"varint,4,opt,name=summary,proto3" json:"summary,omitempty"` + // resource_version is an optional Kubernetes ResourceVersion. When set, + // the watch begins at the specified version, allowing clients to resume + // from a prior list (see ListStagesResponse.resource_version) or watch + // without missing or duplicating events. + ResourceVersion string `protobuf:"bytes,5,opt,name=resource_version,json=resourceVersion,proto3" json:"resource_version,omitempty"` } func (x *WatchStagesRequest) Reset() { *x = WatchStagesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[32] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2014,7 +2167,7 @@ func (x *WatchStagesRequest) String() string { func (*WatchStagesRequest) ProtoMessage() {} func (x *WatchStagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[32] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2027,7 +2180,7 @@ func (x *WatchStagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchStagesRequest.ProtoReflect.Descriptor instead. func (*WatchStagesRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{32} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{34} } func (x *WatchStagesRequest) GetProject() string { @@ -2051,6 +2204,20 @@ func (x *WatchStagesRequest) GetFreightOrigins() []string { return nil } +func (x *WatchStagesRequest) GetSummary() bool { + if x != nil { + return x.Summary + } + return false +} + +func (x *WatchStagesRequest) GetResourceVersion() string { + if x != nil { + return x.ResourceVersion + } + return "" +} + // WatchStagesResponse contains stage change notifications. type WatchStagesResponse struct { state protoimpl.MessageState @@ -2066,7 +2233,7 @@ type WatchStagesResponse struct { func (x *WatchStagesResponse) Reset() { *x = WatchStagesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[33] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2079,7 +2246,7 @@ func (x *WatchStagesResponse) String() string { func (*WatchStagesResponse) ProtoMessage() {} func (x *WatchStagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[33] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2092,7 +2259,7 @@ func (x *WatchStagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchStagesResponse.ProtoReflect.Descriptor instead. func (*WatchStagesResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{33} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{35} } func (x *WatchStagesResponse) GetStage() *v1alpha1.Stage { @@ -2124,7 +2291,7 @@ type DeleteStageRequest struct { func (x *DeleteStageRequest) Reset() { *x = DeleteStageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[34] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2137,7 +2304,7 @@ func (x *DeleteStageRequest) String() string { func (*DeleteStageRequest) ProtoMessage() {} func (x *DeleteStageRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[34] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2150,7 +2317,7 @@ func (x *DeleteStageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteStageRequest.ProtoReflect.Descriptor instead. func (*DeleteStageRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{34} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{36} } func (x *DeleteStageRequest) GetProject() string { @@ -2177,7 +2344,7 @@ type DeleteStageResponse struct { func (x *DeleteStageResponse) Reset() { *x = DeleteStageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[35] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2190,7 +2357,7 @@ func (x *DeleteStageResponse) String() string { func (*DeleteStageResponse) ProtoMessage() {} func (x *DeleteStageResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[35] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2203,7 +2370,7 @@ func (x *DeleteStageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteStageResponse.ProtoReflect.Descriptor instead. func (*DeleteStageResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{35} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{37} } type GetClusterConfigRequest struct { @@ -2217,7 +2384,7 @@ type GetClusterConfigRequest struct { func (x *GetClusterConfigRequest) Reset() { *x = GetClusterConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[36] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2230,7 +2397,7 @@ func (x *GetClusterConfigRequest) String() string { func (*GetClusterConfigRequest) ProtoMessage() {} func (x *GetClusterConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[36] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2243,7 +2410,7 @@ func (x *GetClusterConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClusterConfigRequest.ProtoReflect.Descriptor instead. func (*GetClusterConfigRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{36} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{38} } func (x *GetClusterConfigRequest) GetFormat() RawFormat { @@ -2268,7 +2435,7 @@ type GetClusterConfigResponse struct { func (x *GetClusterConfigResponse) Reset() { *x = GetClusterConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[37] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2281,7 +2448,7 @@ func (x *GetClusterConfigResponse) String() string { func (*GetClusterConfigResponse) ProtoMessage() {} func (x *GetClusterConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[37] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2294,7 +2461,7 @@ func (x *GetClusterConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClusterConfigResponse.ProtoReflect.Descriptor instead. func (*GetClusterConfigResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{37} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{39} } func (m *GetClusterConfigResponse) GetResult() isGetClusterConfigResponse_Result { @@ -2343,7 +2510,7 @@ type DeleteClusterConfigRequest struct { func (x *DeleteClusterConfigRequest) Reset() { *x = DeleteClusterConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[38] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2356,7 +2523,7 @@ func (x *DeleteClusterConfigRequest) String() string { func (*DeleteClusterConfigRequest) ProtoMessage() {} func (x *DeleteClusterConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[38] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2369,7 +2536,7 @@ func (x *DeleteClusterConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteClusterConfigRequest.ProtoReflect.Descriptor instead. func (*DeleteClusterConfigRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{38} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{40} } type DeleteClusterConfigResponse struct { @@ -2381,7 +2548,7 @@ type DeleteClusterConfigResponse struct { func (x *DeleteClusterConfigResponse) Reset() { *x = DeleteClusterConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[39] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2394,7 +2561,7 @@ func (x *DeleteClusterConfigResponse) String() string { func (*DeleteClusterConfigResponse) ProtoMessage() {} func (x *DeleteClusterConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[39] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2407,7 +2574,7 @@ func (x *DeleteClusterConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteClusterConfigResponse.ProtoReflect.Descriptor instead. func (*DeleteClusterConfigResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{39} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{41} } type WatchClusterConfigRequest struct { @@ -2419,7 +2586,7 @@ type WatchClusterConfigRequest struct { func (x *WatchClusterConfigRequest) Reset() { *x = WatchClusterConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[40] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2432,7 +2599,7 @@ func (x *WatchClusterConfigRequest) String() string { func (*WatchClusterConfigRequest) ProtoMessage() {} func (x *WatchClusterConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[40] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2445,7 +2612,7 @@ func (x *WatchClusterConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchClusterConfigRequest.ProtoReflect.Descriptor instead. func (*WatchClusterConfigRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{40} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{42} } type WatchClusterConfigResponse struct { @@ -2460,7 +2627,7 @@ type WatchClusterConfigResponse struct { func (x *WatchClusterConfigResponse) Reset() { *x = WatchClusterConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[41] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2473,7 +2640,7 @@ func (x *WatchClusterConfigResponse) String() string { func (*WatchClusterConfigResponse) ProtoMessage() {} func (x *WatchClusterConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[41] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2486,7 +2653,7 @@ func (x *WatchClusterConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchClusterConfigResponse.ProtoReflect.Descriptor instead. func (*WatchClusterConfigResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{41} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{43} } func (x *WatchClusterConfigResponse) GetClusterConfig() *v1alpha1.ClusterConfig { @@ -2518,7 +2685,7 @@ type ListPromotionsRequest struct { func (x *ListPromotionsRequest) Reset() { *x = ListPromotionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[42] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2531,7 +2698,7 @@ func (x *ListPromotionsRequest) String() string { func (*ListPromotionsRequest) ProtoMessage() {} func (x *ListPromotionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[42] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2544,7 +2711,7 @@ func (x *ListPromotionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromotionsRequest.ProtoReflect.Descriptor instead. func (*ListPromotionsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{42} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{44} } func (x *ListPromotionsRequest) GetProject() string { @@ -2574,7 +2741,7 @@ type ListPromotionsResponse struct { func (x *ListPromotionsResponse) Reset() { *x = ListPromotionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[43] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2587,7 +2754,7 @@ func (x *ListPromotionsResponse) String() string { func (*ListPromotionsResponse) ProtoMessage() {} func (x *ListPromotionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[43] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2600,7 +2767,7 @@ func (x *ListPromotionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromotionsResponse.ProtoReflect.Descriptor instead. func (*ListPromotionsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{43} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{45} } func (x *ListPromotionsResponse) GetPromotions() []*v1alpha1.Promotion { @@ -2625,7 +2792,7 @@ type WatchPromotionsRequest struct { func (x *WatchPromotionsRequest) Reset() { *x = WatchPromotionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[44] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2638,7 +2805,7 @@ func (x *WatchPromotionsRequest) String() string { func (*WatchPromotionsRequest) ProtoMessage() {} func (x *WatchPromotionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[44] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2651,7 +2818,7 @@ func (x *WatchPromotionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchPromotionsRequest.ProtoReflect.Descriptor instead. func (*WatchPromotionsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{44} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{46} } func (x *WatchPromotionsRequest) GetProject() string { @@ -2683,7 +2850,7 @@ type WatchPromotionsResponse struct { func (x *WatchPromotionsResponse) Reset() { *x = WatchPromotionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[45] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2696,7 +2863,7 @@ func (x *WatchPromotionsResponse) String() string { func (*WatchPromotionsResponse) ProtoMessage() {} func (x *WatchPromotionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[45] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2709,7 +2876,7 @@ func (x *WatchPromotionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchPromotionsResponse.ProtoReflect.Descriptor instead. func (*WatchPromotionsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{45} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{47} } func (x *WatchPromotionsResponse) GetPromotion() *v1alpha1.Promotion { @@ -2743,7 +2910,7 @@ type GetPromotionRequest struct { func (x *GetPromotionRequest) Reset() { *x = GetPromotionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[46] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2756,7 +2923,7 @@ func (x *GetPromotionRequest) String() string { func (*GetPromotionRequest) ProtoMessage() {} func (x *GetPromotionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[46] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2769,7 +2936,7 @@ func (x *GetPromotionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromotionRequest.ProtoReflect.Descriptor instead. func (*GetPromotionRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{46} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{48} } func (x *GetPromotionRequest) GetProject() string { @@ -2809,7 +2976,7 @@ type GetPromotionResponse struct { func (x *GetPromotionResponse) Reset() { *x = GetPromotionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[47] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2822,7 +2989,7 @@ func (x *GetPromotionResponse) String() string { func (*GetPromotionResponse) ProtoMessage() {} func (x *GetPromotionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[47] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2835,7 +3002,7 @@ func (x *GetPromotionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromotionResponse.ProtoReflect.Descriptor instead. func (*GetPromotionResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{47} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{49} } func (m *GetPromotionResponse) GetResult() isGetPromotionResponse_Result { @@ -2892,7 +3059,7 @@ type WatchPromotionRequest struct { func (x *WatchPromotionRequest) Reset() { *x = WatchPromotionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[48] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2905,7 +3072,7 @@ func (x *WatchPromotionRequest) String() string { func (*WatchPromotionRequest) ProtoMessage() {} func (x *WatchPromotionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[48] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2918,7 +3085,7 @@ func (x *WatchPromotionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchPromotionRequest.ProtoReflect.Descriptor instead. func (*WatchPromotionRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{48} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{50} } func (x *WatchPromotionRequest) GetProject() string { @@ -2950,7 +3117,7 @@ type WatchPromotionResponse struct { func (x *WatchPromotionResponse) Reset() { *x = WatchPromotionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[49] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2963,7 +3130,7 @@ func (x *WatchPromotionResponse) String() string { func (*WatchPromotionResponse) ProtoMessage() {} func (x *WatchPromotionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[49] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2976,7 +3143,7 @@ func (x *WatchPromotionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchPromotionResponse.ProtoReflect.Descriptor instead. func (*WatchPromotionResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{49} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{51} } func (x *WatchPromotionResponse) GetPromotion() *v1alpha1.Promotion { @@ -3008,7 +3175,7 @@ type AbortPromotionRequest struct { func (x *AbortPromotionRequest) Reset() { *x = AbortPromotionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[50] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3021,7 +3188,7 @@ func (x *AbortPromotionRequest) String() string { func (*AbortPromotionRequest) ProtoMessage() {} func (x *AbortPromotionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[50] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3034,7 +3201,7 @@ func (x *AbortPromotionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AbortPromotionRequest.ProtoReflect.Descriptor instead. func (*AbortPromotionRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{50} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{52} } func (x *AbortPromotionRequest) GetProject() string { @@ -3061,7 +3228,7 @@ type AbortPromotionResponse struct { func (x *AbortPromotionResponse) Reset() { *x = AbortPromotionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[51] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3074,7 +3241,7 @@ func (x *AbortPromotionResponse) String() string { func (*AbortPromotionResponse) ProtoMessage() {} func (x *AbortPromotionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[51] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3087,7 +3254,7 @@ func (x *AbortPromotionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AbortPromotionResponse.ProtoReflect.Descriptor instead. func (*AbortPromotionResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{51} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{53} } // DeleteProjectRequest is the request for deleting a project and all associated resources. @@ -3103,7 +3270,7 @@ type DeleteProjectRequest struct { func (x *DeleteProjectRequest) Reset() { *x = DeleteProjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[52] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3116,7 +3283,7 @@ func (x *DeleteProjectRequest) String() string { func (*DeleteProjectRequest) ProtoMessage() {} func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[52] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3129,7 +3296,7 @@ func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteProjectRequest.ProtoReflect.Descriptor instead. func (*DeleteProjectRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{52} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{54} } func (x *DeleteProjectRequest) GetName() string { @@ -3149,7 +3316,7 @@ type DeleteProjectResponse struct { func (x *DeleteProjectResponse) Reset() { *x = DeleteProjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[53] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3162,7 +3329,7 @@ func (x *DeleteProjectResponse) String() string { func (*DeleteProjectResponse) ProtoMessage() {} func (x *DeleteProjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[53] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3175,7 +3342,7 @@ func (x *DeleteProjectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteProjectResponse.ProtoReflect.Descriptor instead. func (*DeleteProjectResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{53} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{55} } // GetProjectRequest is the request for retrieving details of a specific project. @@ -3193,7 +3360,7 @@ type GetProjectRequest struct { func (x *GetProjectRequest) Reset() { *x = GetProjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[54] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3206,7 +3373,7 @@ func (x *GetProjectRequest) String() string { func (*GetProjectRequest) ProtoMessage() {} func (x *GetProjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[54] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3219,7 +3386,7 @@ func (x *GetProjectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectRequest.ProtoReflect.Descriptor instead. func (*GetProjectRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{54} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{56} } func (x *GetProjectRequest) GetName() string { @@ -3252,7 +3419,7 @@ type GetProjectResponse struct { func (x *GetProjectResponse) Reset() { *x = GetProjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[55] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3265,7 +3432,7 @@ func (x *GetProjectResponse) String() string { func (*GetProjectResponse) ProtoMessage() {} func (x *GetProjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[55] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3278,7 +3445,7 @@ func (x *GetProjectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectResponse.ProtoReflect.Descriptor instead. func (*GetProjectResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{55} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{57} } func (m *GetProjectResponse) GetResult() isGetProjectResponse_Result { @@ -3342,7 +3509,7 @@ type ListProjectsRequest struct { func (x *ListProjectsRequest) Reset() { *x = ListProjectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[56] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3355,7 +3522,7 @@ func (x *ListProjectsRequest) String() string { func (*ListProjectsRequest) ProtoMessage() {} func (x *ListProjectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[56] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3368,7 +3535,7 @@ func (x *ListProjectsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectsRequest.ProtoReflect.Descriptor instead. func (*ListProjectsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{56} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{58} } func (x *ListProjectsRequest) GetPageSize() int32 { @@ -3421,7 +3588,7 @@ type ListProjectsResponse struct { func (x *ListProjectsResponse) Reset() { *x = ListProjectsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[57] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3434,7 +3601,7 @@ func (x *ListProjectsResponse) String() string { func (*ListProjectsResponse) ProtoMessage() {} func (x *ListProjectsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[57] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3447,7 +3614,7 @@ func (x *ListProjectsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectsResponse.ProtoReflect.Descriptor instead. func (*ListProjectsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{57} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{59} } func (x *ListProjectsResponse) GetProjects() []*v1alpha1.Project { @@ -3479,7 +3646,7 @@ type GetProjectConfigRequest struct { func (x *GetProjectConfigRequest) Reset() { *x = GetProjectConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[58] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3492,7 +3659,7 @@ func (x *GetProjectConfigRequest) String() string { func (*GetProjectConfigRequest) ProtoMessage() {} func (x *GetProjectConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[58] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3505,7 +3672,7 @@ func (x *GetProjectConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectConfigRequest.ProtoReflect.Descriptor instead. func (*GetProjectConfigRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{58} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{60} } func (x *GetProjectConfigRequest) GetProject() string { @@ -3538,7 +3705,7 @@ type GetProjectConfigResponse struct { func (x *GetProjectConfigResponse) Reset() { *x = GetProjectConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[59] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3551,7 +3718,7 @@ func (x *GetProjectConfigResponse) String() string { func (*GetProjectConfigResponse) ProtoMessage() {} func (x *GetProjectConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[59] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3564,7 +3731,7 @@ func (x *GetProjectConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectConfigResponse.ProtoReflect.Descriptor instead. func (*GetProjectConfigResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{59} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{61} } func (m *GetProjectConfigResponse) GetResult() isGetProjectConfigResponse_Result { @@ -3619,7 +3786,7 @@ type DeleteProjectConfigRequest struct { func (x *DeleteProjectConfigRequest) Reset() { *x = DeleteProjectConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[60] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3632,7 +3799,7 @@ func (x *DeleteProjectConfigRequest) String() string { func (*DeleteProjectConfigRequest) ProtoMessage() {} func (x *DeleteProjectConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[60] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3645,7 +3812,7 @@ func (x *DeleteProjectConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteProjectConfigRequest.ProtoReflect.Descriptor instead. func (*DeleteProjectConfigRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{60} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{62} } func (x *DeleteProjectConfigRequest) GetProject() string { @@ -3665,7 +3832,7 @@ type DeleteProjectConfigResponse struct { func (x *DeleteProjectConfigResponse) Reset() { *x = DeleteProjectConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[61] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3678,7 +3845,7 @@ func (x *DeleteProjectConfigResponse) String() string { func (*DeleteProjectConfigResponse) ProtoMessage() {} func (x *DeleteProjectConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[61] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3691,7 +3858,7 @@ func (x *DeleteProjectConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteProjectConfigResponse.ProtoReflect.Descriptor instead. func (*DeleteProjectConfigResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{61} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{63} } // WatchProjectConfigRequest is the request for streaming project configuration changes. @@ -3707,7 +3874,7 @@ type WatchProjectConfigRequest struct { func (x *WatchProjectConfigRequest) Reset() { *x = WatchProjectConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[62] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3720,7 +3887,7 @@ func (x *WatchProjectConfigRequest) String() string { func (*WatchProjectConfigRequest) ProtoMessage() {} func (x *WatchProjectConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[62] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3733,7 +3900,7 @@ func (x *WatchProjectConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchProjectConfigRequest.ProtoReflect.Descriptor instead. func (*WatchProjectConfigRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{62} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{64} } func (x *WatchProjectConfigRequest) GetProject() string { @@ -3758,7 +3925,7 @@ type WatchProjectConfigResponse struct { func (x *WatchProjectConfigResponse) Reset() { *x = WatchProjectConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[63] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3771,7 +3938,7 @@ func (x *WatchProjectConfigResponse) String() string { func (*WatchProjectConfigResponse) ProtoMessage() {} func (x *WatchProjectConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[63] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3784,7 +3951,7 @@ func (x *WatchProjectConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchProjectConfigResponse.ProtoReflect.Descriptor instead. func (*WatchProjectConfigResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{63} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{65} } func (x *WatchProjectConfigResponse) GetProjectConfig() *v1alpha1.ProjectConfig { @@ -3820,7 +3987,7 @@ type ApproveFreightRequest struct { func (x *ApproveFreightRequest) Reset() { *x = ApproveFreightRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[64] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3833,7 +4000,7 @@ func (x *ApproveFreightRequest) String() string { func (*ApproveFreightRequest) ProtoMessage() {} func (x *ApproveFreightRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[64] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3846,7 +4013,7 @@ func (x *ApproveFreightRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApproveFreightRequest.ProtoReflect.Descriptor instead. func (*ApproveFreightRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{64} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{66} } func (x *ApproveFreightRequest) GetProject() string { @@ -3887,7 +4054,7 @@ type ApproveFreightResponse struct { func (x *ApproveFreightResponse) Reset() { *x = ApproveFreightResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[65] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3900,7 +4067,7 @@ func (x *ApproveFreightResponse) String() string { func (*ApproveFreightResponse) ProtoMessage() {} func (x *ApproveFreightResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[65] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3913,7 +4080,7 @@ func (x *ApproveFreightResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApproveFreightResponse.ProtoReflect.Descriptor instead. func (*ApproveFreightResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{65} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{67} } // DeleteFreightRequest is the request for deleting freight. @@ -3933,7 +4100,7 @@ type DeleteFreightRequest struct { func (x *DeleteFreightRequest) Reset() { *x = DeleteFreightRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[66] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3946,7 +4113,7 @@ func (x *DeleteFreightRequest) String() string { func (*DeleteFreightRequest) ProtoMessage() {} func (x *DeleteFreightRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[66] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3959,7 +4126,7 @@ func (x *DeleteFreightRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteFreightRequest.ProtoReflect.Descriptor instead. func (*DeleteFreightRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{66} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{68} } func (x *DeleteFreightRequest) GetProject() string { @@ -3993,7 +4160,7 @@ type DeleteFreightResponse struct { func (x *DeleteFreightResponse) Reset() { *x = DeleteFreightResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[67] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4006,7 +4173,7 @@ func (x *DeleteFreightResponse) String() string { func (*DeleteFreightResponse) ProtoMessage() {} func (x *DeleteFreightResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[67] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4019,7 +4186,7 @@ func (x *DeleteFreightResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteFreightResponse.ProtoReflect.Descriptor instead. func (*DeleteFreightResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{67} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{69} } // GetFreightRequest is the request for retrieving details of specific freight. @@ -4041,7 +4208,7 @@ type GetFreightRequest struct { func (x *GetFreightRequest) Reset() { *x = GetFreightRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[68] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4054,7 +4221,7 @@ func (x *GetFreightRequest) String() string { func (*GetFreightRequest) ProtoMessage() {} func (x *GetFreightRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[68] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4067,7 +4234,7 @@ func (x *GetFreightRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreightRequest.ProtoReflect.Descriptor instead. func (*GetFreightRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{68} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{70} } func (x *GetFreightRequest) GetProject() string { @@ -4114,7 +4281,7 @@ type GetFreightResponse struct { func (x *GetFreightResponse) Reset() { *x = GetFreightResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[69] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4127,7 +4294,7 @@ func (x *GetFreightResponse) String() string { func (*GetFreightResponse) ProtoMessage() {} func (x *GetFreightResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[69] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4140,7 +4307,7 @@ func (x *GetFreightResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreightResponse.ProtoReflect.Descriptor instead. func (*GetFreightResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{69} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{71} } func (m *GetFreightResponse) GetResult() isGetFreightResponse_Result { @@ -4199,7 +4366,7 @@ type WatchFreightRequest struct { func (x *WatchFreightRequest) Reset() { *x = WatchFreightRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[70] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4212,7 +4379,7 @@ func (x *WatchFreightRequest) String() string { func (*WatchFreightRequest) ProtoMessage() {} func (x *WatchFreightRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[70] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4225,7 +4392,7 @@ func (x *WatchFreightRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchFreightRequest.ProtoReflect.Descriptor instead. func (*WatchFreightRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{70} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{72} } func (x *WatchFreightRequest) GetProject() string { @@ -4257,7 +4424,7 @@ type WatchFreightResponse struct { func (x *WatchFreightResponse) Reset() { *x = WatchFreightResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[71] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4270,7 +4437,7 @@ func (x *WatchFreightResponse) String() string { func (*WatchFreightResponse) ProtoMessage() {} func (x *WatchFreightResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[71] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4283,7 +4450,7 @@ func (x *WatchFreightResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchFreightResponse.ProtoReflect.Descriptor instead. func (*WatchFreightResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{71} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{73} } func (x *WatchFreightResponse) GetFreight() *v1alpha1.Freight { @@ -4319,7 +4486,7 @@ type PromoteToStageRequest struct { func (x *PromoteToStageRequest) Reset() { *x = PromoteToStageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[72] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4332,7 +4499,7 @@ func (x *PromoteToStageRequest) String() string { func (*PromoteToStageRequest) ProtoMessage() {} func (x *PromoteToStageRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[72] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4345,7 +4512,7 @@ func (x *PromoteToStageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PromoteToStageRequest.ProtoReflect.Descriptor instead. func (*PromoteToStageRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{72} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{74} } func (x *PromoteToStageRequest) GetProject() string { @@ -4389,7 +4556,7 @@ type PromoteToStageResponse struct { func (x *PromoteToStageResponse) Reset() { *x = PromoteToStageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[73] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4402,7 +4569,7 @@ func (x *PromoteToStageResponse) String() string { func (*PromoteToStageResponse) ProtoMessage() {} func (x *PromoteToStageResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[73] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4415,7 +4582,7 @@ func (x *PromoteToStageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PromoteToStageResponse.ProtoReflect.Descriptor instead. func (*PromoteToStageResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{73} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{75} } func (x *PromoteToStageResponse) GetPromotion() *v1alpha1.Promotion { @@ -4444,7 +4611,7 @@ type PromoteDownstreamRequest struct { func (x *PromoteDownstreamRequest) Reset() { *x = PromoteDownstreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[74] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4457,7 +4624,7 @@ func (x *PromoteDownstreamRequest) String() string { func (*PromoteDownstreamRequest) ProtoMessage() {} func (x *PromoteDownstreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[74] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4470,7 +4637,7 @@ func (x *PromoteDownstreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PromoteDownstreamRequest.ProtoReflect.Descriptor instead. func (*PromoteDownstreamRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{74} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{76} } func (x *PromoteDownstreamRequest) GetProject() string { @@ -4514,7 +4681,7 @@ type PromoteDownstreamResponse struct { func (x *PromoteDownstreamResponse) Reset() { *x = PromoteDownstreamResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[75] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4527,7 +4694,7 @@ func (x *PromoteDownstreamResponse) String() string { func (*PromoteDownstreamResponse) ProtoMessage() {} func (x *PromoteDownstreamResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[75] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4540,7 +4707,7 @@ func (x *PromoteDownstreamResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PromoteDownstreamResponse.ProtoReflect.Descriptor instead. func (*PromoteDownstreamResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{75} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{77} } func (x *PromoteDownstreamResponse) GetPromotions() []*v1alpha1.Promotion { @@ -4575,7 +4742,7 @@ type QueryFreightRequest struct { func (x *QueryFreightRequest) Reset() { *x = QueryFreightRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[76] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4588,7 +4755,7 @@ func (x *QueryFreightRequest) String() string { func (*QueryFreightRequest) ProtoMessage() {} func (x *QueryFreightRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[76] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4601,7 +4768,7 @@ func (x *QueryFreightRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryFreightRequest.ProtoReflect.Descriptor instead. func (*QueryFreightRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{76} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{78} } func (x *QueryFreightRequest) GetProject() string { @@ -4666,7 +4833,7 @@ type QueryFreightResponse struct { func (x *QueryFreightResponse) Reset() { *x = QueryFreightResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[77] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4679,7 +4846,7 @@ func (x *QueryFreightResponse) String() string { func (*QueryFreightResponse) ProtoMessage() {} func (x *QueryFreightResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[77] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4692,7 +4859,7 @@ func (x *QueryFreightResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryFreightResponse.ProtoReflect.Descriptor instead. func (*QueryFreightResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{77} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{79} } func (x *QueryFreightResponse) GetGroups() map[string]*FreightList { @@ -4715,7 +4882,7 @@ type FreightList struct { func (x *FreightList) Reset() { *x = FreightList{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[78] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4728,7 +4895,7 @@ func (x *FreightList) String() string { func (*FreightList) ProtoMessage() {} func (x *FreightList) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[78] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4741,7 +4908,7 @@ func (x *FreightList) ProtoReflect() protoreflect.Message { // Deprecated: Use FreightList.ProtoReflect.Descriptor instead. func (*FreightList) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{78} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{80} } func (x *FreightList) GetFreight() []*v1alpha1.Freight { @@ -4770,7 +4937,7 @@ type UpdateFreightAliasRequest struct { func (x *UpdateFreightAliasRequest) Reset() { *x = UpdateFreightAliasRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[79] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4783,7 +4950,7 @@ func (x *UpdateFreightAliasRequest) String() string { func (*UpdateFreightAliasRequest) ProtoMessage() {} func (x *UpdateFreightAliasRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[79] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4796,7 +4963,7 @@ func (x *UpdateFreightAliasRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFreightAliasRequest.ProtoReflect.Descriptor instead. func (*UpdateFreightAliasRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{79} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{81} } func (x *UpdateFreightAliasRequest) GetProject() string { @@ -4837,7 +5004,7 @@ type UpdateFreightAliasResponse struct { func (x *UpdateFreightAliasResponse) Reset() { *x = UpdateFreightAliasResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[80] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4850,7 +5017,7 @@ func (x *UpdateFreightAliasResponse) String() string { func (*UpdateFreightAliasResponse) ProtoMessage() {} func (x *UpdateFreightAliasResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[80] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4863,7 +5030,7 @@ func (x *UpdateFreightAliasResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFreightAliasResponse.ProtoReflect.Descriptor instead. func (*UpdateFreightAliasResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{80} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{82} } // ReverifyRequest is the request for triggering re-execution of verification processes for a stage. @@ -4881,7 +5048,7 @@ type ReverifyRequest struct { func (x *ReverifyRequest) Reset() { *x = ReverifyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[81] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4894,7 +5061,7 @@ func (x *ReverifyRequest) String() string { func (*ReverifyRequest) ProtoMessage() {} func (x *ReverifyRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[81] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4907,7 +5074,7 @@ func (x *ReverifyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReverifyRequest.ProtoReflect.Descriptor instead. func (*ReverifyRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{81} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{83} } func (x *ReverifyRequest) GetProject() string { @@ -4934,7 +5101,7 @@ type ReverifyResponse struct { func (x *ReverifyResponse) Reset() { *x = ReverifyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[82] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4947,7 +5114,7 @@ func (x *ReverifyResponse) String() string { func (*ReverifyResponse) ProtoMessage() {} func (x *ReverifyResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[82] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4960,7 +5127,7 @@ func (x *ReverifyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReverifyResponse.ProtoReflect.Descriptor instead. func (*ReverifyResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{82} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{84} } // AbortVerificationRequest is the request for canceling running verification processes for a stage. @@ -4978,7 +5145,7 @@ type AbortVerificationRequest struct { func (x *AbortVerificationRequest) Reset() { *x = AbortVerificationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[83] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4991,7 +5158,7 @@ func (x *AbortVerificationRequest) String() string { func (*AbortVerificationRequest) ProtoMessage() {} func (x *AbortVerificationRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[83] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5004,7 +5171,7 @@ func (x *AbortVerificationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AbortVerificationRequest.ProtoReflect.Descriptor instead. func (*AbortVerificationRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{83} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{85} } func (x *AbortVerificationRequest) GetProject() string { @@ -5031,7 +5198,7 @@ type AbortVerificationResponse struct { func (x *AbortVerificationResponse) Reset() { *x = AbortVerificationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[84] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5044,7 +5211,7 @@ func (x *AbortVerificationResponse) String() string { func (*AbortVerificationResponse) ProtoMessage() {} func (x *AbortVerificationResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[84] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5057,7 +5224,7 @@ func (x *AbortVerificationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AbortVerificationResponse.ProtoReflect.Descriptor instead. func (*AbortVerificationResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{84} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{86} } // ListWarehousesRequest is the request for listing warehouses within a project. @@ -5073,7 +5240,7 @@ type ListWarehousesRequest struct { func (x *ListWarehousesRequest) Reset() { *x = ListWarehousesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[85] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5086,7 +5253,7 @@ func (x *ListWarehousesRequest) String() string { func (*ListWarehousesRequest) ProtoMessage() {} func (x *ListWarehousesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[85] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5099,7 +5266,7 @@ func (x *ListWarehousesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWarehousesRequest.ProtoReflect.Descriptor instead. func (*ListWarehousesRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{85} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{87} } func (x *ListWarehousesRequest) GetProject() string { @@ -5122,7 +5289,7 @@ type ListWarehousesResponse struct { func (x *ListWarehousesResponse) Reset() { *x = ListWarehousesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[86] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5135,7 +5302,7 @@ func (x *ListWarehousesResponse) String() string { func (*ListWarehousesResponse) ProtoMessage() {} func (x *ListWarehousesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[86] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5148,7 +5315,7 @@ func (x *ListWarehousesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWarehousesResponse.ProtoReflect.Descriptor instead. func (*ListWarehousesResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{86} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{88} } func (x *ListWarehousesResponse) GetWarehouses() []*v1alpha1.Warehouse { @@ -5175,7 +5342,7 @@ type GetWarehouseRequest struct { func (x *GetWarehouseRequest) Reset() { *x = GetWarehouseRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[87] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5188,7 +5355,7 @@ func (x *GetWarehouseRequest) String() string { func (*GetWarehouseRequest) ProtoMessage() {} func (x *GetWarehouseRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[87] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5201,7 +5368,7 @@ func (x *GetWarehouseRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWarehouseRequest.ProtoReflect.Descriptor instead. func (*GetWarehouseRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{87} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{89} } func (x *GetWarehouseRequest) GetProject() string { @@ -5241,7 +5408,7 @@ type GetWarehouseResponse struct { func (x *GetWarehouseResponse) Reset() { *x = GetWarehouseResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[88] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5254,7 +5421,7 @@ func (x *GetWarehouseResponse) String() string { func (*GetWarehouseResponse) ProtoMessage() {} func (x *GetWarehouseResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[88] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5267,7 +5434,7 @@ func (x *GetWarehouseResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWarehouseResponse.ProtoReflect.Descriptor instead. func (*GetWarehouseResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{88} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{90} } func (m *GetWarehouseResponse) GetResult() isGetWarehouseResponse_Result { @@ -5324,7 +5491,7 @@ type WatchWarehousesRequest struct { func (x *WatchWarehousesRequest) Reset() { *x = WatchWarehousesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[89] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5337,7 +5504,7 @@ func (x *WatchWarehousesRequest) String() string { func (*WatchWarehousesRequest) ProtoMessage() {} func (x *WatchWarehousesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[89] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5350,7 +5517,7 @@ func (x *WatchWarehousesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchWarehousesRequest.ProtoReflect.Descriptor instead. func (*WatchWarehousesRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{89} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{91} } func (x *WatchWarehousesRequest) GetProject() string { @@ -5382,7 +5549,7 @@ type WatchWarehousesResponse struct { func (x *WatchWarehousesResponse) Reset() { *x = WatchWarehousesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[90] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5395,7 +5562,7 @@ func (x *WatchWarehousesResponse) String() string { func (*WatchWarehousesResponse) ProtoMessage() {} func (x *WatchWarehousesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[90] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5408,7 +5575,7 @@ func (x *WatchWarehousesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WatchWarehousesResponse.ProtoReflect.Descriptor instead. func (*WatchWarehousesResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{90} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{92} } func (x *WatchWarehousesResponse) GetWarehouse() *v1alpha1.Warehouse { @@ -5440,7 +5607,7 @@ type DeleteWarehouseRequest struct { func (x *DeleteWarehouseRequest) Reset() { *x = DeleteWarehouseRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[91] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5453,7 +5620,7 @@ func (x *DeleteWarehouseRequest) String() string { func (*DeleteWarehouseRequest) ProtoMessage() {} func (x *DeleteWarehouseRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[91] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5466,7 +5633,7 @@ func (x *DeleteWarehouseRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWarehouseRequest.ProtoReflect.Descriptor instead. func (*DeleteWarehouseRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{91} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{93} } func (x *DeleteWarehouseRequest) GetProject() string { @@ -5493,7 +5660,7 @@ type DeleteWarehouseResponse struct { func (x *DeleteWarehouseResponse) Reset() { *x = DeleteWarehouseResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[92] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5506,7 +5673,7 @@ func (x *DeleteWarehouseResponse) String() string { func (*DeleteWarehouseResponse) ProtoMessage() {} func (x *DeleteWarehouseResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[92] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5519,7 +5686,7 @@ func (x *DeleteWarehouseResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWarehouseResponse.ProtoReflect.Descriptor instead. func (*DeleteWarehouseResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{92} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{94} } // CreateConfigMapRequest is the request for creating a project-level, @@ -5550,7 +5717,7 @@ type CreateConfigMapRequest struct { func (x *CreateConfigMapRequest) Reset() { *x = CreateConfigMapRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[93] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5563,7 +5730,7 @@ func (x *CreateConfigMapRequest) String() string { func (*CreateConfigMapRequest) ProtoMessage() {} func (x *CreateConfigMapRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[93] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5576,7 +5743,7 @@ func (x *CreateConfigMapRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateConfigMapRequest.ProtoReflect.Descriptor instead. func (*CreateConfigMapRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{93} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{95} } func (x *CreateConfigMapRequest) GetSystemLevel() bool { @@ -5635,7 +5802,7 @@ type CreateConfigMapResponse struct { func (x *CreateConfigMapResponse) Reset() { *x = CreateConfigMapResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[94] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5648,7 +5815,7 @@ func (x *CreateConfigMapResponse) String() string { func (*CreateConfigMapResponse) ProtoMessage() {} func (x *CreateConfigMapResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[94] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5661,7 +5828,7 @@ func (x *CreateConfigMapResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateConfigMapResponse.ProtoReflect.Descriptor instead. func (*CreateConfigMapResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{94} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{96} } func (x *CreateConfigMapResponse) GetConfigMap() *v1.ConfigMap { @@ -5692,7 +5859,7 @@ type DeleteConfigMapRequest struct { func (x *DeleteConfigMapRequest) Reset() { *x = DeleteConfigMapRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[95] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5705,7 +5872,7 @@ func (x *DeleteConfigMapRequest) String() string { func (*DeleteConfigMapRequest) ProtoMessage() {} func (x *DeleteConfigMapRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[95] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5718,7 +5885,7 @@ func (x *DeleteConfigMapRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteConfigMapRequest.ProtoReflect.Descriptor instead. func (*DeleteConfigMapRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{95} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{97} } func (x *DeleteConfigMapRequest) GetSystemLevel() bool { @@ -5752,7 +5919,7 @@ type DeleteConfigMapResponse struct { func (x *DeleteConfigMapResponse) Reset() { *x = DeleteConfigMapResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[96] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5765,7 +5932,7 @@ func (x *DeleteConfigMapResponse) String() string { func (*DeleteConfigMapResponse) ProtoMessage() {} func (x *DeleteConfigMapResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[96] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5778,7 +5945,7 @@ func (x *DeleteConfigMapResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteConfigMapResponse.ProtoReflect.Descriptor instead. func (*DeleteConfigMapResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{96} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{98} } // ListConfigMapsRequest is the request for listing all project-level, @@ -5800,7 +5967,7 @@ type ListConfigMapsRequest struct { func (x *ListConfigMapsRequest) Reset() { *x = ListConfigMapsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[97] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5813,7 +5980,7 @@ func (x *ListConfigMapsRequest) String() string { func (*ListConfigMapsRequest) ProtoMessage() {} func (x *ListConfigMapsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[97] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5826,7 +5993,7 @@ func (x *ListConfigMapsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListConfigMapsRequest.ProtoReflect.Descriptor instead. func (*ListConfigMapsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{97} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{99} } func (x *ListConfigMapsRequest) GetSystemLevel() bool { @@ -5856,7 +6023,7 @@ type ListConfigMapsResponse struct { func (x *ListConfigMapsResponse) Reset() { *x = ListConfigMapsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[98] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5869,7 +6036,7 @@ func (x *ListConfigMapsResponse) String() string { func (*ListConfigMapsResponse) ProtoMessage() {} func (x *ListConfigMapsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[98] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5882,7 +6049,7 @@ func (x *ListConfigMapsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListConfigMapsResponse.ProtoReflect.Descriptor instead. func (*ListConfigMapsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{98} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{100} } func (x *ListConfigMapsResponse) GetConfigMaps() []*v1.ConfigMap { @@ -5916,7 +6083,7 @@ type GetConfigMapRequest struct { func (x *GetConfigMapRequest) Reset() { *x = GetConfigMapRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[99] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5929,7 +6096,7 @@ func (x *GetConfigMapRequest) String() string { func (*GetConfigMapRequest) ProtoMessage() {} func (x *GetConfigMapRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[99] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5942,7 +6109,7 @@ func (x *GetConfigMapRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConfigMapRequest.ProtoReflect.Descriptor instead. func (*GetConfigMapRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{99} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{101} } func (x *GetConfigMapRequest) GetSystemLevel() bool { @@ -5989,7 +6156,7 @@ type GetConfigMapResponse struct { func (x *GetConfigMapResponse) Reset() { *x = GetConfigMapResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[100] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6002,7 +6169,7 @@ func (x *GetConfigMapResponse) String() string { func (*GetConfigMapResponse) ProtoMessage() {} func (x *GetConfigMapResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[100] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6015,7 +6182,7 @@ func (x *GetConfigMapResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConfigMapResponse.ProtoReflect.Descriptor instead. func (*GetConfigMapResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{100} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{102} } func (m *GetConfigMapResponse) GetResult() isGetConfigMapResponse_Result { @@ -6085,7 +6252,7 @@ type UpdateConfigMapRequest struct { func (x *UpdateConfigMapRequest) Reset() { *x = UpdateConfigMapRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[101] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6098,7 +6265,7 @@ func (x *UpdateConfigMapRequest) String() string { func (*UpdateConfigMapRequest) ProtoMessage() {} func (x *UpdateConfigMapRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[101] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6111,7 +6278,7 @@ func (x *UpdateConfigMapRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateConfigMapRequest.ProtoReflect.Descriptor instead. func (*UpdateConfigMapRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{101} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{103} } func (x *UpdateConfigMapRequest) GetSystemLevel() bool { @@ -6169,7 +6336,7 @@ type UpdateConfigMapResponse struct { func (x *UpdateConfigMapResponse) Reset() { *x = UpdateConfigMapResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[102] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6182,7 +6349,7 @@ func (x *UpdateConfigMapResponse) String() string { func (*UpdateConfigMapResponse) ProtoMessage() {} func (x *UpdateConfigMapResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[102] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6195,7 +6362,7 @@ func (x *UpdateConfigMapResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateConfigMapResponse.ProtoReflect.Descriptor instead. func (*UpdateConfigMapResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{102} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{104} } func (x *UpdateConfigMapResponse) GetConfigMap() *v1.ConfigMap { @@ -6232,7 +6399,7 @@ type CreateRepoCredentialsRequest struct { func (x *CreateRepoCredentialsRequest) Reset() { *x = CreateRepoCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[103] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6245,7 +6412,7 @@ func (x *CreateRepoCredentialsRequest) String() string { func (*CreateRepoCredentialsRequest) ProtoMessage() {} func (x *CreateRepoCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[103] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6258,7 +6425,7 @@ func (x *CreateRepoCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRepoCredentialsRequest.ProtoReflect.Descriptor instead. func (*CreateRepoCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{103} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{105} } func (x *CreateRepoCredentialsRequest) GetProject() string { @@ -6330,7 +6497,7 @@ type CreateRepoCredentialsResponse struct { func (x *CreateRepoCredentialsResponse) Reset() { *x = CreateRepoCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[104] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6343,7 +6510,7 @@ func (x *CreateRepoCredentialsResponse) String() string { func (*CreateRepoCredentialsResponse) ProtoMessage() {} func (x *CreateRepoCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[104] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6356,7 +6523,7 @@ func (x *CreateRepoCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRepoCredentialsResponse.ProtoReflect.Descriptor instead. func (*CreateRepoCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{104} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{106} } func (x *CreateRepoCredentialsResponse) GetCredentials() *v1.Secret { @@ -6382,7 +6549,7 @@ type DeleteRepoCredentialsRequest struct { func (x *DeleteRepoCredentialsRequest) Reset() { *x = DeleteRepoCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[105] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6395,7 +6562,7 @@ func (x *DeleteRepoCredentialsRequest) String() string { func (*DeleteRepoCredentialsRequest) ProtoMessage() {} func (x *DeleteRepoCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[105] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6408,7 +6575,7 @@ func (x *DeleteRepoCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRepoCredentialsRequest.ProtoReflect.Descriptor instead. func (*DeleteRepoCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{105} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{107} } func (x *DeleteRepoCredentialsRequest) GetProject() string { @@ -6435,7 +6602,7 @@ type DeleteRepoCredentialsResponse struct { func (x *DeleteRepoCredentialsResponse) Reset() { *x = DeleteRepoCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[106] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6448,7 +6615,7 @@ func (x *DeleteRepoCredentialsResponse) String() string { func (*DeleteRepoCredentialsResponse) ProtoMessage() {} func (x *DeleteRepoCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[106] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6461,7 +6628,7 @@ func (x *DeleteRepoCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRepoCredentialsResponse.ProtoReflect.Descriptor instead. func (*DeleteRepoCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{106} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{108} } // GetRepoCredentialsRequest is the request for retrieving existing repository credentials. @@ -6481,7 +6648,7 @@ type GetRepoCredentialsRequest struct { func (x *GetRepoCredentialsRequest) Reset() { *x = GetRepoCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[107] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6494,7 +6661,7 @@ func (x *GetRepoCredentialsRequest) String() string { func (*GetRepoCredentialsRequest) ProtoMessage() {} func (x *GetRepoCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[107] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6507,7 +6674,7 @@ func (x *GetRepoCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepoCredentialsRequest.ProtoReflect.Descriptor instead. func (*GetRepoCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{107} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{109} } func (x *GetRepoCredentialsRequest) GetProject() string { @@ -6547,7 +6714,7 @@ type GetRepoCredentialsResponse struct { func (x *GetRepoCredentialsResponse) Reset() { *x = GetRepoCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[108] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6560,7 +6727,7 @@ func (x *GetRepoCredentialsResponse) String() string { func (*GetRepoCredentialsResponse) ProtoMessage() {} func (x *GetRepoCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[108] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6573,7 +6740,7 @@ func (x *GetRepoCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepoCredentialsResponse.ProtoReflect.Descriptor instead. func (*GetRepoCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{108} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{110} } func (m *GetRepoCredentialsResponse) GetResult() isGetRepoCredentialsResponse_Result { @@ -6628,7 +6795,7 @@ type ListRepoCredentialsRequest struct { func (x *ListRepoCredentialsRequest) Reset() { *x = ListRepoCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[109] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6641,7 +6808,7 @@ func (x *ListRepoCredentialsRequest) String() string { func (*ListRepoCredentialsRequest) ProtoMessage() {} func (x *ListRepoCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[109] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6654,7 +6821,7 @@ func (x *ListRepoCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRepoCredentialsRequest.ProtoReflect.Descriptor instead. func (*ListRepoCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{109} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{111} } func (x *ListRepoCredentialsRequest) GetProject() string { @@ -6677,7 +6844,7 @@ type ListRepoCredentialsResponse struct { func (x *ListRepoCredentialsResponse) Reset() { *x = ListRepoCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[110] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6690,7 +6857,7 @@ func (x *ListRepoCredentialsResponse) String() string { func (*ListRepoCredentialsResponse) ProtoMessage() {} func (x *ListRepoCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[110] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6703,7 +6870,7 @@ func (x *ListRepoCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRepoCredentialsResponse.ProtoReflect.Descriptor instead. func (*ListRepoCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{110} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{112} } func (x *ListRepoCredentialsResponse) GetCredentials() []*v1.Secret { @@ -6740,7 +6907,7 @@ type UpdateRepoCredentialsRequest struct { func (x *UpdateRepoCredentialsRequest) Reset() { *x = UpdateRepoCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[111] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6753,7 +6920,7 @@ func (x *UpdateRepoCredentialsRequest) String() string { func (*UpdateRepoCredentialsRequest) ProtoMessage() {} func (x *UpdateRepoCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[111] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6766,7 +6933,7 @@ func (x *UpdateRepoCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRepoCredentialsRequest.ProtoReflect.Descriptor instead. func (*UpdateRepoCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{111} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{113} } func (x *UpdateRepoCredentialsRequest) GetProject() string { @@ -6838,7 +7005,7 @@ type UpdateRepoCredentialsResponse struct { func (x *UpdateRepoCredentialsResponse) Reset() { *x = UpdateRepoCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[112] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6851,7 +7018,7 @@ func (x *UpdateRepoCredentialsResponse) String() string { func (*UpdateRepoCredentialsResponse) ProtoMessage() {} func (x *UpdateRepoCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[112] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6864,7 +7031,7 @@ func (x *UpdateRepoCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRepoCredentialsResponse.ProtoReflect.Descriptor instead. func (*UpdateRepoCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{112} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{114} } func (x *UpdateRepoCredentialsResponse) GetCredentials() *v1.Secret { @@ -6893,7 +7060,7 @@ type ListGenericCredentialsRequest struct { func (x *ListGenericCredentialsRequest) Reset() { *x = ListGenericCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[113] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6906,7 +7073,7 @@ func (x *ListGenericCredentialsRequest) String() string { func (*ListGenericCredentialsRequest) ProtoMessage() {} func (x *ListGenericCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[113] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6919,7 +7086,7 @@ func (x *ListGenericCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGenericCredentialsRequest.ProtoReflect.Descriptor instead. func (*ListGenericCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{113} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{115} } func (x *ListGenericCredentialsRequest) GetSystemLevel() bool { @@ -6949,7 +7116,7 @@ type ListGenericCredentialsResponse struct { func (x *ListGenericCredentialsResponse) Reset() { *x = ListGenericCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[114] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6962,7 +7129,7 @@ func (x *ListGenericCredentialsResponse) String() string { func (*ListGenericCredentialsResponse) ProtoMessage() {} func (x *ListGenericCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[114] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6975,7 +7142,7 @@ func (x *ListGenericCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGenericCredentialsResponse.ProtoReflect.Descriptor instead. func (*ListGenericCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{114} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{116} } func (x *ListGenericCredentialsResponse) GetCredentials() []*v1.Secret { @@ -7013,7 +7180,7 @@ type CreateGenericCredentialsRequest struct { func (x *CreateGenericCredentialsRequest) Reset() { *x = CreateGenericCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[115] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7026,7 +7193,7 @@ func (x *CreateGenericCredentialsRequest) String() string { func (*CreateGenericCredentialsRequest) ProtoMessage() {} func (x *CreateGenericCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[115] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7039,7 +7206,7 @@ func (x *CreateGenericCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGenericCredentialsRequest.ProtoReflect.Descriptor instead. func (*CreateGenericCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{115} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{117} } func (x *CreateGenericCredentialsRequest) GetSystemLevel() bool { @@ -7097,7 +7264,7 @@ type CreateGenericCredentialsResponse struct { func (x *CreateGenericCredentialsResponse) Reset() { *x = CreateGenericCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[116] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7110,7 +7277,7 @@ func (x *CreateGenericCredentialsResponse) String() string { func (*CreateGenericCredentialsResponse) ProtoMessage() {} func (x *CreateGenericCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[116] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7123,7 +7290,7 @@ func (x *CreateGenericCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGenericCredentialsResponse.ProtoReflect.Descriptor instead. func (*CreateGenericCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{116} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{118} } func (x *CreateGenericCredentialsResponse) GetCredentials() *v1.Secret { @@ -7160,7 +7327,7 @@ type UpdateGenericCredentialsRequest struct { func (x *UpdateGenericCredentialsRequest) Reset() { *x = UpdateGenericCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[117] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7173,7 +7340,7 @@ func (x *UpdateGenericCredentialsRequest) String() string { func (*UpdateGenericCredentialsRequest) ProtoMessage() {} func (x *UpdateGenericCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[117] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7186,7 +7353,7 @@ func (x *UpdateGenericCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGenericCredentialsRequest.ProtoReflect.Descriptor instead. func (*UpdateGenericCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{117} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{119} } func (x *UpdateGenericCredentialsRequest) GetSystemLevel() bool { @@ -7244,7 +7411,7 @@ type UpdateGenericCredentialsResponse struct { func (x *UpdateGenericCredentialsResponse) Reset() { *x = UpdateGenericCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[118] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7257,7 +7424,7 @@ func (x *UpdateGenericCredentialsResponse) String() string { func (*UpdateGenericCredentialsResponse) ProtoMessage() {} func (x *UpdateGenericCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[118] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7270,7 +7437,7 @@ func (x *UpdateGenericCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGenericCredentialsResponse.ProtoReflect.Descriptor instead. func (*UpdateGenericCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{118} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{120} } func (x *UpdateGenericCredentialsResponse) GetCredentials() *v1.Secret { @@ -7301,7 +7468,7 @@ type DeleteGenericCredentialsRequest struct { func (x *DeleteGenericCredentialsRequest) Reset() { *x = DeleteGenericCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[119] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7314,7 +7481,7 @@ func (x *DeleteGenericCredentialsRequest) String() string { func (*DeleteGenericCredentialsRequest) ProtoMessage() {} func (x *DeleteGenericCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[119] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7327,7 +7494,7 @@ func (x *DeleteGenericCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGenericCredentialsRequest.ProtoReflect.Descriptor instead. func (*DeleteGenericCredentialsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{119} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{121} } func (x *DeleteGenericCredentialsRequest) GetSystemLevel() bool { @@ -7361,7 +7528,7 @@ type DeleteGenericCredentialsResponse struct { func (x *DeleteGenericCredentialsResponse) Reset() { *x = DeleteGenericCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[120] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7374,7 +7541,7 @@ func (x *DeleteGenericCredentialsResponse) String() string { func (*DeleteGenericCredentialsResponse) ProtoMessage() {} func (x *DeleteGenericCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[120] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7387,7 +7554,7 @@ func (x *DeleteGenericCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGenericCredentialsResponse.ProtoReflect.Descriptor instead. func (*DeleteGenericCredentialsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{120} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{122} } // ListAnalysisTemplatesRequest is the request for listing all analysis templates in a project. @@ -7403,7 +7570,7 @@ type ListAnalysisTemplatesRequest struct { func (x *ListAnalysisTemplatesRequest) Reset() { *x = ListAnalysisTemplatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[121] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7416,7 +7583,7 @@ func (x *ListAnalysisTemplatesRequest) String() string { func (*ListAnalysisTemplatesRequest) ProtoMessage() {} func (x *ListAnalysisTemplatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[121] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7429,7 +7596,7 @@ func (x *ListAnalysisTemplatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAnalysisTemplatesRequest.ProtoReflect.Descriptor instead. func (*ListAnalysisTemplatesRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{121} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{123} } func (x *ListAnalysisTemplatesRequest) GetProject() string { @@ -7452,7 +7619,7 @@ type ListAnalysisTemplatesResponse struct { func (x *ListAnalysisTemplatesResponse) Reset() { *x = ListAnalysisTemplatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[122] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7465,7 +7632,7 @@ func (x *ListAnalysisTemplatesResponse) String() string { func (*ListAnalysisTemplatesResponse) ProtoMessage() {} func (x *ListAnalysisTemplatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[122] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7478,7 +7645,7 @@ func (x *ListAnalysisTemplatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAnalysisTemplatesResponse.ProtoReflect.Descriptor instead. func (*ListAnalysisTemplatesResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{122} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{124} } func (x *ListAnalysisTemplatesResponse) GetAnalysisTemplates() []*v1alpha11.AnalysisTemplate { @@ -7505,7 +7672,7 @@ type GetAnalysisTemplateRequest struct { func (x *GetAnalysisTemplateRequest) Reset() { *x = GetAnalysisTemplateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[123] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7518,7 +7685,7 @@ func (x *GetAnalysisTemplateRequest) String() string { func (*GetAnalysisTemplateRequest) ProtoMessage() {} func (x *GetAnalysisTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[123] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7531,7 +7698,7 @@ func (x *GetAnalysisTemplateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAnalysisTemplateRequest.ProtoReflect.Descriptor instead. func (*GetAnalysisTemplateRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{123} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{125} } func (x *GetAnalysisTemplateRequest) GetProject() string { @@ -7571,7 +7738,7 @@ type GetAnalysisTemplateResponse struct { func (x *GetAnalysisTemplateResponse) Reset() { *x = GetAnalysisTemplateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[124] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7584,7 +7751,7 @@ func (x *GetAnalysisTemplateResponse) String() string { func (*GetAnalysisTemplateResponse) ProtoMessage() {} func (x *GetAnalysisTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[124] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7597,7 +7764,7 @@ func (x *GetAnalysisTemplateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAnalysisTemplateResponse.ProtoReflect.Descriptor instead. func (*GetAnalysisTemplateResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{124} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{126} } func (m *GetAnalysisTemplateResponse) GetResult() isGetAnalysisTemplateResponse_Result { @@ -7654,7 +7821,7 @@ type DeleteAnalysisTemplateRequest struct { func (x *DeleteAnalysisTemplateRequest) Reset() { *x = DeleteAnalysisTemplateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[125] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7667,7 +7834,7 @@ func (x *DeleteAnalysisTemplateRequest) String() string { func (*DeleteAnalysisTemplateRequest) ProtoMessage() {} func (x *DeleteAnalysisTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[125] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7680,7 +7847,7 @@ func (x *DeleteAnalysisTemplateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAnalysisTemplateRequest.ProtoReflect.Descriptor instead. func (*DeleteAnalysisTemplateRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{125} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{127} } func (x *DeleteAnalysisTemplateRequest) GetProject() string { @@ -7707,7 +7874,7 @@ type DeleteAnalysisTemplateResponse struct { func (x *DeleteAnalysisTemplateResponse) Reset() { *x = DeleteAnalysisTemplateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[126] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7720,7 +7887,7 @@ func (x *DeleteAnalysisTemplateResponse) String() string { func (*DeleteAnalysisTemplateResponse) ProtoMessage() {} func (x *DeleteAnalysisTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[126] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7733,7 +7900,7 @@ func (x *DeleteAnalysisTemplateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAnalysisTemplateResponse.ProtoReflect.Descriptor instead. func (*DeleteAnalysisTemplateResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{126} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{128} } // ListClusterAnalysisTemplatesRequest is the request for listing all cluster-level analysis templates. @@ -7746,7 +7913,7 @@ type ListClusterAnalysisTemplatesRequest struct { func (x *ListClusterAnalysisTemplatesRequest) Reset() { *x = ListClusterAnalysisTemplatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[127] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7759,7 +7926,7 @@ func (x *ListClusterAnalysisTemplatesRequest) String() string { func (*ListClusterAnalysisTemplatesRequest) ProtoMessage() {} func (x *ListClusterAnalysisTemplatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[127] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7772,7 +7939,7 @@ func (x *ListClusterAnalysisTemplatesRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use ListClusterAnalysisTemplatesRequest.ProtoReflect.Descriptor instead. func (*ListClusterAnalysisTemplatesRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{127} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{129} } // ListClusterAnalysisTemplatesResponse contains a list of cluster-level analysis templates. @@ -7788,7 +7955,7 @@ type ListClusterAnalysisTemplatesResponse struct { func (x *ListClusterAnalysisTemplatesResponse) Reset() { *x = ListClusterAnalysisTemplatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[128] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7801,7 +7968,7 @@ func (x *ListClusterAnalysisTemplatesResponse) String() string { func (*ListClusterAnalysisTemplatesResponse) ProtoMessage() {} func (x *ListClusterAnalysisTemplatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[128] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7814,7 +7981,7 @@ func (x *ListClusterAnalysisTemplatesResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use ListClusterAnalysisTemplatesResponse.ProtoReflect.Descriptor instead. func (*ListClusterAnalysisTemplatesResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{128} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{130} } func (x *ListClusterAnalysisTemplatesResponse) GetClusterAnalysisTemplates() []*v1alpha11.ClusterAnalysisTemplate { @@ -7839,7 +8006,7 @@ type GetClusterAnalysisTemplateRequest struct { func (x *GetClusterAnalysisTemplateRequest) Reset() { *x = GetClusterAnalysisTemplateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[129] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7852,7 +8019,7 @@ func (x *GetClusterAnalysisTemplateRequest) String() string { func (*GetClusterAnalysisTemplateRequest) ProtoMessage() {} func (x *GetClusterAnalysisTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[129] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7865,7 +8032,7 @@ func (x *GetClusterAnalysisTemplateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GetClusterAnalysisTemplateRequest.ProtoReflect.Descriptor instead. func (*GetClusterAnalysisTemplateRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{129} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{131} } func (x *GetClusterAnalysisTemplateRequest) GetName() string { @@ -7898,7 +8065,7 @@ type GetClusterAnalysisTemplateResponse struct { func (x *GetClusterAnalysisTemplateResponse) Reset() { *x = GetClusterAnalysisTemplateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[130] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7911,7 +8078,7 @@ func (x *GetClusterAnalysisTemplateResponse) String() string { func (*GetClusterAnalysisTemplateResponse) ProtoMessage() {} func (x *GetClusterAnalysisTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[130] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7924,7 +8091,7 @@ func (x *GetClusterAnalysisTemplateResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetClusterAnalysisTemplateResponse.ProtoReflect.Descriptor instead. func (*GetClusterAnalysisTemplateResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{130} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{132} } func (m *GetClusterAnalysisTemplateResponse) GetResult() isGetClusterAnalysisTemplateResponse_Result { @@ -7980,7 +8147,7 @@ type DeleteClusterAnalysisTemplateRequest struct { func (x *DeleteClusterAnalysisTemplateRequest) Reset() { *x = DeleteClusterAnalysisTemplateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[131] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7993,7 +8160,7 @@ func (x *DeleteClusterAnalysisTemplateRequest) String() string { func (*DeleteClusterAnalysisTemplateRequest) ProtoMessage() {} func (x *DeleteClusterAnalysisTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[131] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8006,7 +8173,7 @@ func (x *DeleteClusterAnalysisTemplateRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use DeleteClusterAnalysisTemplateRequest.ProtoReflect.Descriptor instead. func (*DeleteClusterAnalysisTemplateRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{131} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{133} } func (x *DeleteClusterAnalysisTemplateRequest) GetName() string { @@ -8026,7 +8193,7 @@ type DeleteClusterAnalysisTemplateResponse struct { func (x *DeleteClusterAnalysisTemplateResponse) Reset() { *x = DeleteClusterAnalysisTemplateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[132] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8039,7 +8206,7 @@ func (x *DeleteClusterAnalysisTemplateResponse) String() string { func (*DeleteClusterAnalysisTemplateResponse) ProtoMessage() {} func (x *DeleteClusterAnalysisTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[132] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8052,7 +8219,7 @@ func (x *DeleteClusterAnalysisTemplateResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use DeleteClusterAnalysisTemplateResponse.ProtoReflect.Descriptor instead. func (*DeleteClusterAnalysisTemplateResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{132} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{134} } // GetAnalysisRunRequest is the request for retrieving a specific analysis run. @@ -8072,7 +8239,7 @@ type GetAnalysisRunRequest struct { func (x *GetAnalysisRunRequest) Reset() { *x = GetAnalysisRunRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[133] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8085,7 +8252,7 @@ func (x *GetAnalysisRunRequest) String() string { func (*GetAnalysisRunRequest) ProtoMessage() {} func (x *GetAnalysisRunRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[133] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8098,7 +8265,7 @@ func (x *GetAnalysisRunRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAnalysisRunRequest.ProtoReflect.Descriptor instead. func (*GetAnalysisRunRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{133} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{135} } func (x *GetAnalysisRunRequest) GetNamespace() string { @@ -8138,7 +8305,7 @@ type GetAnalysisRunResponse struct { func (x *GetAnalysisRunResponse) Reset() { *x = GetAnalysisRunResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[134] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8151,7 +8318,7 @@ func (x *GetAnalysisRunResponse) String() string { func (*GetAnalysisRunResponse) ProtoMessage() {} func (x *GetAnalysisRunResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[134] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8164,7 +8331,7 @@ func (x *GetAnalysisRunResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAnalysisRunResponse.ProtoReflect.Descriptor instead. func (*GetAnalysisRunResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{134} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{136} } func (m *GetAnalysisRunResponse) GetResult() isGetAnalysisRunResponse_Result { @@ -8225,7 +8392,7 @@ type GetAnalysisRunLogsRequest struct { func (x *GetAnalysisRunLogsRequest) Reset() { *x = GetAnalysisRunLogsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[135] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8238,7 +8405,7 @@ func (x *GetAnalysisRunLogsRequest) String() string { func (*GetAnalysisRunLogsRequest) ProtoMessage() {} func (x *GetAnalysisRunLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[135] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8251,7 +8418,7 @@ func (x *GetAnalysisRunLogsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAnalysisRunLogsRequest.ProtoReflect.Descriptor instead. func (*GetAnalysisRunLogsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{135} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{137} } func (x *GetAnalysisRunLogsRequest) GetNamespace() string { @@ -8295,7 +8462,7 @@ type GetAnalysisRunLogsResponse struct { func (x *GetAnalysisRunLogsResponse) Reset() { *x = GetAnalysisRunLogsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[136] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8308,7 +8475,7 @@ func (x *GetAnalysisRunLogsResponse) String() string { func (*GetAnalysisRunLogsResponse) ProtoMessage() {} func (x *GetAnalysisRunLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[136] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8321,7 +8488,7 @@ func (x *GetAnalysisRunLogsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAnalysisRunLogsResponse.ProtoReflect.Descriptor instead. func (*GetAnalysisRunLogsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{136} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{138} } func (x *GetAnalysisRunLogsResponse) GetChunk() string { @@ -8344,7 +8511,7 @@ type ListProjectEventsRequest struct { func (x *ListProjectEventsRequest) Reset() { *x = ListProjectEventsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[137] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8357,7 +8524,7 @@ func (x *ListProjectEventsRequest) String() string { func (*ListProjectEventsRequest) ProtoMessage() {} func (x *ListProjectEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[137] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8370,7 +8537,7 @@ func (x *ListProjectEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectEventsRequest.ProtoReflect.Descriptor instead. func (*ListProjectEventsRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{137} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{139} } func (x *ListProjectEventsRequest) GetProject() string { @@ -8393,7 +8560,7 @@ type ListProjectEventsResponse struct { func (x *ListProjectEventsResponse) Reset() { *x = ListProjectEventsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[138] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8406,7 +8573,7 @@ func (x *ListProjectEventsResponse) String() string { func (*ListProjectEventsResponse) ProtoMessage() {} func (x *ListProjectEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[138] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8419,7 +8586,7 @@ func (x *ListProjectEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectEventsResponse.ProtoReflect.Descriptor instead. func (*ListProjectEventsResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{138} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{140} } func (x *ListProjectEventsResponse) GetEvents() []*v1.Event { @@ -8442,7 +8609,7 @@ type ListPromotionTasksRequest struct { func (x *ListPromotionTasksRequest) Reset() { *x = ListPromotionTasksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[139] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8455,7 +8622,7 @@ func (x *ListPromotionTasksRequest) String() string { func (*ListPromotionTasksRequest) ProtoMessage() {} func (x *ListPromotionTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[139] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8468,7 +8635,7 @@ func (x *ListPromotionTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromotionTasksRequest.ProtoReflect.Descriptor instead. func (*ListPromotionTasksRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{139} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{141} } func (x *ListPromotionTasksRequest) GetProject() string { @@ -8491,7 +8658,7 @@ type ListPromotionTasksResponse struct { func (x *ListPromotionTasksResponse) Reset() { *x = ListPromotionTasksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[140] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8504,7 +8671,7 @@ func (x *ListPromotionTasksResponse) String() string { func (*ListPromotionTasksResponse) ProtoMessage() {} func (x *ListPromotionTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[140] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8517,7 +8684,7 @@ func (x *ListPromotionTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromotionTasksResponse.ProtoReflect.Descriptor instead. func (*ListPromotionTasksResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{140} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{142} } func (x *ListPromotionTasksResponse) GetPromotionTasks() []*v1alpha1.PromotionTask { @@ -8544,7 +8711,7 @@ type GetPromotionTaskRequest struct { func (x *GetPromotionTaskRequest) Reset() { *x = GetPromotionTaskRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[141] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8557,7 +8724,7 @@ func (x *GetPromotionTaskRequest) String() string { func (*GetPromotionTaskRequest) ProtoMessage() {} func (x *GetPromotionTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[141] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8570,7 +8737,7 @@ func (x *GetPromotionTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromotionTaskRequest.ProtoReflect.Descriptor instead. func (*GetPromotionTaskRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{141} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{143} } func (x *GetPromotionTaskRequest) GetProject() string { @@ -8610,7 +8777,7 @@ type GetPromotionTaskResponse struct { func (x *GetPromotionTaskResponse) Reset() { *x = GetPromotionTaskResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[142] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8623,7 +8790,7 @@ func (x *GetPromotionTaskResponse) String() string { func (*GetPromotionTaskResponse) ProtoMessage() {} func (x *GetPromotionTaskResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[142] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8636,7 +8803,7 @@ func (x *GetPromotionTaskResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromotionTaskResponse.ProtoReflect.Descriptor instead. func (*GetPromotionTaskResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{142} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{144} } func (m *GetPromotionTaskResponse) GetResult() isGetPromotionTaskResponse_Result { @@ -8688,7 +8855,7 @@ type ListClusterPromotionTasksRequest struct { func (x *ListClusterPromotionTasksRequest) Reset() { *x = ListClusterPromotionTasksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[143] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8701,7 +8868,7 @@ func (x *ListClusterPromotionTasksRequest) String() string { func (*ListClusterPromotionTasksRequest) ProtoMessage() {} func (x *ListClusterPromotionTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[143] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8714,7 +8881,7 @@ func (x *ListClusterPromotionTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListClusterPromotionTasksRequest.ProtoReflect.Descriptor instead. func (*ListClusterPromotionTasksRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{143} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{145} } // ListClusterPromotionTasksResponse contains a list of cluster-level promotion tasks. @@ -8730,7 +8897,7 @@ type ListClusterPromotionTasksResponse struct { func (x *ListClusterPromotionTasksResponse) Reset() { *x = ListClusterPromotionTasksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[144] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8743,7 +8910,7 @@ func (x *ListClusterPromotionTasksResponse) String() string { func (*ListClusterPromotionTasksResponse) ProtoMessage() {} func (x *ListClusterPromotionTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[144] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8756,7 +8923,7 @@ func (x *ListClusterPromotionTasksResponse) ProtoReflect() protoreflect.Message // Deprecated: Use ListClusterPromotionTasksResponse.ProtoReflect.Descriptor instead. func (*ListClusterPromotionTasksResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{144} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{146} } func (x *ListClusterPromotionTasksResponse) GetClusterPromotionTasks() []*v1alpha1.ClusterPromotionTask { @@ -8781,7 +8948,7 @@ type GetClusterPromotionTaskRequest struct { func (x *GetClusterPromotionTaskRequest) Reset() { *x = GetClusterPromotionTaskRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[145] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8794,7 +8961,7 @@ func (x *GetClusterPromotionTaskRequest) String() string { func (*GetClusterPromotionTaskRequest) ProtoMessage() {} func (x *GetClusterPromotionTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[145] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8807,7 +8974,7 @@ func (x *GetClusterPromotionTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClusterPromotionTaskRequest.ProtoReflect.Descriptor instead. func (*GetClusterPromotionTaskRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{145} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{147} } func (x *GetClusterPromotionTaskRequest) GetName() string { @@ -8840,7 +9007,7 @@ type GetClusterPromotionTaskResponse struct { func (x *GetClusterPromotionTaskResponse) Reset() { *x = GetClusterPromotionTaskResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[146] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8853,7 +9020,7 @@ func (x *GetClusterPromotionTaskResponse) String() string { func (*GetClusterPromotionTaskResponse) ProtoMessage() {} func (x *GetClusterPromotionTaskResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[146] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8866,7 +9033,7 @@ func (x *GetClusterPromotionTaskResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClusterPromotionTaskResponse.ProtoReflect.Descriptor instead. func (*GetClusterPromotionTaskResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{146} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{148} } func (m *GetClusterPromotionTaskResponse) GetResult() isGetClusterPromotionTaskResponse_Result { @@ -8922,7 +9089,7 @@ type CreateRoleRequest struct { func (x *CreateRoleRequest) Reset() { *x = CreateRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[147] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8935,7 +9102,7 @@ func (x *CreateRoleRequest) String() string { func (*CreateRoleRequest) ProtoMessage() {} func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[147] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8948,7 +9115,7 @@ func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRoleRequest.ProtoReflect.Descriptor instead. func (*CreateRoleRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{147} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{149} } func (x *CreateRoleRequest) GetRole() *v1alpha12.Role { @@ -8972,7 +9139,7 @@ type CreateRoleResponse struct { func (x *CreateRoleResponse) Reset() { *x = CreateRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[148] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8985,7 +9152,7 @@ func (x *CreateRoleResponse) String() string { func (*CreateRoleResponse) ProtoMessage() {} func (x *CreateRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[148] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8998,7 +9165,7 @@ func (x *CreateRoleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRoleResponse.ProtoReflect.Descriptor instead. func (*CreateRoleResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{148} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{150} } func (x *CreateRoleResponse) GetRole() *v1alpha12.Role { @@ -9024,7 +9191,7 @@ type DeleteRoleRequest struct { func (x *DeleteRoleRequest) Reset() { *x = DeleteRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[149] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9037,7 +9204,7 @@ func (x *DeleteRoleRequest) String() string { func (*DeleteRoleRequest) ProtoMessage() {} func (x *DeleteRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[149] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9050,7 +9217,7 @@ func (x *DeleteRoleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRoleRequest.ProtoReflect.Descriptor instead. func (*DeleteRoleRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{149} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{151} } func (x *DeleteRoleRequest) GetProject() string { @@ -9078,7 +9245,7 @@ type DeleteRoleResponse struct { func (x *DeleteRoleResponse) Reset() { *x = DeleteRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[150] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9091,7 +9258,7 @@ func (x *DeleteRoleResponse) String() string { func (*DeleteRoleResponse) ProtoMessage() {} func (x *DeleteRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[150] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9104,7 +9271,7 @@ func (x *DeleteRoleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRoleResponse.ProtoReflect.Descriptor instead. func (*DeleteRoleResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{150} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{152} } // GetRoleRequest is a request to retrieve the details of a Kargo Role virtual @@ -9133,7 +9300,7 @@ type GetRoleRequest struct { func (x *GetRoleRequest) Reset() { *x = GetRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[151] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9146,7 +9313,7 @@ func (x *GetRoleRequest) String() string { func (*GetRoleRequest) ProtoMessage() {} func (x *GetRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[151] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9159,7 +9326,7 @@ func (x *GetRoleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRoleRequest.ProtoReflect.Descriptor instead. func (*GetRoleRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{151} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{153} } func (x *GetRoleRequest) GetSystemLevel() bool { @@ -9215,7 +9382,7 @@ type GetRoleResponse struct { func (x *GetRoleResponse) Reset() { *x = GetRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[152] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9228,7 +9395,7 @@ func (x *GetRoleResponse) String() string { func (*GetRoleResponse) ProtoMessage() {} func (x *GetRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[152] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9241,7 +9408,7 @@ func (x *GetRoleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRoleResponse.ProtoReflect.Descriptor instead. func (*GetRoleResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{152} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{154} } func (m *GetRoleResponse) GetResult() isGetRoleResponse_Result { @@ -9312,7 +9479,7 @@ type Claims struct { func (x *Claims) Reset() { *x = Claims{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[153] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9325,7 +9492,7 @@ func (x *Claims) String() string { func (*Claims) ProtoMessage() {} func (x *Claims) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[153] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9338,7 +9505,7 @@ func (x *Claims) ProtoReflect() protoreflect.Message { // Deprecated: Use Claims.ProtoReflect.Descriptor instead. func (*Claims) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{153} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{155} } func (x *Claims) GetClaims() []*v1alpha12.Claim { @@ -9371,7 +9538,7 @@ type GrantRequest struct { func (x *GrantRequest) Reset() { *x = GrantRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[154] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9384,7 +9551,7 @@ func (x *GrantRequest) String() string { func (*GrantRequest) ProtoMessage() {} func (x *GrantRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[154] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9397,7 +9564,7 @@ func (x *GrantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GrantRequest.ProtoReflect.Descriptor instead. func (*GrantRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{154} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{156} } func (x *GrantRequest) GetProject() string { @@ -9468,7 +9635,7 @@ type GrantResponse struct { func (x *GrantResponse) Reset() { *x = GrantResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[155] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9481,7 +9648,7 @@ func (x *GrantResponse) String() string { func (*GrantResponse) ProtoMessage() {} func (x *GrantResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[155] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9494,7 +9661,7 @@ func (x *GrantResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GrantResponse.ProtoReflect.Descriptor instead. func (*GrantResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{155} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{157} } func (x *GrantResponse) GetRole() *v1alpha12.Role { @@ -9524,7 +9691,7 @@ type ListRolesRequest struct { func (x *ListRolesRequest) Reset() { *x = ListRolesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[156] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9537,7 +9704,7 @@ func (x *ListRolesRequest) String() string { func (*ListRolesRequest) ProtoMessage() {} func (x *ListRolesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[156] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9550,7 +9717,7 @@ func (x *ListRolesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRolesRequest.ProtoReflect.Descriptor instead. func (*ListRolesRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{156} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{158} } func (x *ListRolesRequest) GetSystemLevel() bool { @@ -9592,7 +9759,7 @@ type ListRolesResponse struct { func (x *ListRolesResponse) Reset() { *x = ListRolesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[157] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9605,7 +9772,7 @@ func (x *ListRolesResponse) String() string { func (*ListRolesResponse) ProtoMessage() {} func (x *ListRolesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[157] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9618,7 +9785,7 @@ func (x *ListRolesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRolesResponse.ProtoReflect.Descriptor instead. func (*ListRolesResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{157} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{159} } func (x *ListRolesResponse) GetRoles() []*v1alpha12.Role { @@ -9658,7 +9825,7 @@ type RevokeRequest struct { func (x *RevokeRequest) Reset() { *x = RevokeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[158] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9671,7 +9838,7 @@ func (x *RevokeRequest) String() string { func (*RevokeRequest) ProtoMessage() {} func (x *RevokeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[158] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9684,7 +9851,7 @@ func (x *RevokeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeRequest.ProtoReflect.Descriptor instead. func (*RevokeRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{158} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{160} } func (x *RevokeRequest) GetProject() string { @@ -9757,7 +9924,7 @@ type RevokeResponse struct { func (x *RevokeResponse) Reset() { *x = RevokeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[159] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9770,7 +9937,7 @@ func (x *RevokeResponse) String() string { func (*RevokeResponse) ProtoMessage() {} func (x *RevokeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[159] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9783,7 +9950,7 @@ func (x *RevokeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeResponse.ProtoReflect.Descriptor instead. func (*RevokeResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{159} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{161} } func (x *RevokeResponse) GetRole() *v1alpha12.Role { @@ -9807,7 +9974,7 @@ type UpdateRoleRequest struct { func (x *UpdateRoleRequest) Reset() { *x = UpdateRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[160] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9820,7 +9987,7 @@ func (x *UpdateRoleRequest) String() string { func (*UpdateRoleRequest) ProtoMessage() {} func (x *UpdateRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[160] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9833,7 +10000,7 @@ func (x *UpdateRoleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRoleRequest.ProtoReflect.Descriptor instead. func (*UpdateRoleRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{160} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{162} } func (x *UpdateRoleRequest) GetRole() *v1alpha12.Role { @@ -9857,7 +10024,7 @@ type UpdateRoleResponse struct { func (x *UpdateRoleResponse) Reset() { *x = UpdateRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[161] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9870,7 +10037,7 @@ func (x *UpdateRoleResponse) String() string { func (*UpdateRoleResponse) ProtoMessage() {} func (x *UpdateRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[161] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9883,7 +10050,7 @@ func (x *UpdateRoleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRoleResponse.ProtoReflect.Descriptor instead. func (*UpdateRoleResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{161} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{163} } func (x *UpdateRoleResponse) GetRole() *v1alpha12.Role { @@ -9918,7 +10085,7 @@ type CreateAPITokenRequest struct { func (x *CreateAPITokenRequest) Reset() { *x = CreateAPITokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[162] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9931,7 +10098,7 @@ func (x *CreateAPITokenRequest) String() string { func (*CreateAPITokenRequest) ProtoMessage() {} func (x *CreateAPITokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[162] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9944,7 +10111,7 @@ func (x *CreateAPITokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAPITokenRequest.ProtoReflect.Descriptor instead. func (*CreateAPITokenRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{162} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{164} } func (x *CreateAPITokenRequest) GetSystemLevel() bool { @@ -9989,7 +10156,7 @@ type CreateAPITokenResponse struct { func (x *CreateAPITokenResponse) Reset() { *x = CreateAPITokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[163] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10002,7 +10169,7 @@ func (x *CreateAPITokenResponse) String() string { func (*CreateAPITokenResponse) ProtoMessage() {} func (x *CreateAPITokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[163] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10015,7 +10182,7 @@ func (x *CreateAPITokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAPITokenResponse.ProtoReflect.Descriptor instead. func (*CreateAPITokenResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{163} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{165} } func (x *CreateAPITokenResponse) GetTokenSecret() *v1.Secret { @@ -10046,7 +10213,7 @@ type DeleteAPITokenRequest struct { func (x *DeleteAPITokenRequest) Reset() { *x = DeleteAPITokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[164] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10059,7 +10226,7 @@ func (x *DeleteAPITokenRequest) String() string { func (*DeleteAPITokenRequest) ProtoMessage() {} func (x *DeleteAPITokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[164] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10072,7 +10239,7 @@ func (x *DeleteAPITokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAPITokenRequest.ProtoReflect.Descriptor instead. func (*DeleteAPITokenRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{164} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{166} } func (x *DeleteAPITokenRequest) GetSystemLevel() bool { @@ -10107,7 +10274,7 @@ type DeleteAPITokenResponse struct { func (x *DeleteAPITokenResponse) Reset() { *x = DeleteAPITokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[165] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10120,7 +10287,7 @@ func (x *DeleteAPITokenResponse) String() string { func (*DeleteAPITokenResponse) ProtoMessage() {} func (x *DeleteAPITokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[165] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10133,7 +10300,7 @@ func (x *DeleteAPITokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAPITokenResponse.ProtoReflect.Descriptor instead. func (*DeleteAPITokenResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{165} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{167} } // GetAPITokenRequest is a request to retrieve details of a bearer token @@ -10159,7 +10326,7 @@ type GetAPITokenRequest struct { func (x *GetAPITokenRequest) Reset() { *x = GetAPITokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[166] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10172,7 +10339,7 @@ func (x *GetAPITokenRequest) String() string { func (*GetAPITokenRequest) ProtoMessage() {} func (x *GetAPITokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[166] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10185,7 +10352,7 @@ func (x *GetAPITokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAPITokenRequest.ProtoReflect.Descriptor instead. func (*GetAPITokenRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{166} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{168} } func (x *GetAPITokenRequest) GetSystemLevel() bool { @@ -10233,7 +10400,7 @@ type GetAPITokenResponse struct { func (x *GetAPITokenResponse) Reset() { *x = GetAPITokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[167] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10246,7 +10413,7 @@ func (x *GetAPITokenResponse) String() string { func (*GetAPITokenResponse) ProtoMessage() {} func (x *GetAPITokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[167] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10259,7 +10426,7 @@ func (x *GetAPITokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAPITokenResponse.ProtoReflect.Descriptor instead. func (*GetAPITokenResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{167} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{169} } func (m *GetAPITokenResponse) GetResult() isGetAPITokenResponse_Result { @@ -10322,7 +10489,7 @@ type ListAPITokensRequest struct { func (x *ListAPITokensRequest) Reset() { *x = ListAPITokensRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[168] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10335,7 +10502,7 @@ func (x *ListAPITokensRequest) String() string { func (*ListAPITokensRequest) ProtoMessage() {} func (x *ListAPITokensRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[168] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10348,7 +10515,7 @@ func (x *ListAPITokensRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAPITokensRequest.ProtoReflect.Descriptor instead. func (*ListAPITokensRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{168} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{170} } func (x *ListAPITokensRequest) GetSystemLevel() bool { @@ -10387,7 +10554,7 @@ type ListAPITokensResponse struct { func (x *ListAPITokensResponse) Reset() { *x = ListAPITokensResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[169] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10400,7 +10567,7 @@ func (x *ListAPITokensResponse) String() string { func (*ListAPITokensResponse) ProtoMessage() {} func (x *ListAPITokensResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[169] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10413,7 +10580,7 @@ func (x *ListAPITokensResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAPITokensResponse.ProtoReflect.Descriptor instead. func (*ListAPITokensResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{169} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{171} } func (x *ListAPITokensResponse) GetTokenSecrets() []*v1.Secret { @@ -10442,7 +10609,7 @@ type RefreshResourceRequest struct { func (x *RefreshResourceRequest) Reset() { *x = RefreshResourceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[170] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10455,7 +10622,7 @@ func (x *RefreshResourceRequest) String() string { func (*RefreshResourceRequest) ProtoMessage() {} func (x *RefreshResourceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[170] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10468,7 +10635,7 @@ func (x *RefreshResourceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshResourceRequest.ProtoReflect.Descriptor instead. func (*RefreshResourceRequest) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{170} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{172} } func (x *RefreshResourceRequest) GetProject() string { @@ -10503,7 +10670,7 @@ type RefreshResourceResponse struct { func (x *RefreshResourceResponse) Reset() { *x = RefreshResourceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[171] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10516,7 +10683,7 @@ func (x *RefreshResourceResponse) String() string { func (*RefreshResourceResponse) ProtoMessage() {} func (x *RefreshResourceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_service_v1alpha1_service_proto_msgTypes[171] + mi := &file_api_service_v1alpha1_service_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10529,7 +10696,7 @@ func (x *RefreshResourceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshResourceResponse.ProtoReflect.Descriptor instead. func (*RefreshResourceResponse) Descriptor() ([]byte, []int) { - return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{171} + return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{173} } func (x *RefreshResourceResponse) GetResource() *anypb.Any { @@ -10732,398 +10899,176 @@ var file_api_service_v1alpha1_service_proto_rawDesc = []byte{ 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x22, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x73, 0x22, 0x70, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x72, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x59, 0x0a, 0x12, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x73, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x68, 0x74, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, + 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x73, 0x1a, 0x63, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xba, 0x01, 0x0a, 0x06, 0x54, 0x61, - 0x67, 0x4d, 0x61, 0x70, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x70, 0x2e, 0x54, 0x61, 0x67, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x68, 0x0a, 0x09, - 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x6b, 0x75, + 0x12, 0x58, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x63, 0x0a, 0x0b, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x53, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, + 0x67, 0x4d, 0x61, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xba, 0x01, 0x0a, 0x06, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x39, 0x0a, - 0x0b, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, - 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, - 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x6b, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x73, 0x22, 0x6c, 0x0a, 0x13, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x42, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x96, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x8c, 0x01, 0x0a, 0x1a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, - 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x56, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x69, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4f, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x57, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x7c, 0x0a, 0x17, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, - 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x4d, + 0x61, 0x70, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, + 0x67, 0x73, 0x1a, 0x68, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, + 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, + 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x53, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, - 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x2e, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x84, + 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x12, + 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, + 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x59, 0x0a, 0x1c, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x0e, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x52, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x66, + 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x29, + 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x13, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5c, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, - 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x45, 0x0a, 0x15, 0x57, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, - 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x45, 0x0a, 0x15, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, - 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x22, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, + 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x69, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x69, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x70, 0x61, 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x69, 0x6e, 0x65, 0x22, 0x77, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x49, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x36, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x1d, 0x0a, 0x1b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x0a, 0x19, 0x57, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x71, 0x0a, 0x15, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, - 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, - 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x43, 0x0a, - 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x22, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x00, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x49, 0x0a, 0x13, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x73, 0x0a, 0x14, - 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x72, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x86, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, - 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x67, 0x0a, 0x16, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, - 0x6c, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc5, 0x01, - 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, - 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, - 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, - 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x68, 0x0a, 0x0b, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x56, 0x0a, 0x0b, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x83, 0x01, 0x0a, - 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, - 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x41, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x0a, 0x18, 0x41, 0x62, 0x6f, 0x72, 0x74, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x31, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x69, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, - 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, - 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, - 0x73, 0x65, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x22, 0x88, - 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x22, 0x7c, 0x0a, 0x17, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, + 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, @@ -11132,1356 +11077,1616 @@ var file_api_service_v1alpha1_service_proto_rawDesc = []byte{ 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, + 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, - 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, - 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x46, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, - 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x74, 0x22, 0x45, 0x0a, 0x15, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x45, 0x0a, 0x15, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x18, 0x0a, 0x16, + 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x49, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, + 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, + 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x69, + 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x69, 0x6e, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x69, 0x6e, 0x65, 0x22, 0x77, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x43, 0x0a, 0x06, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x22, 0x96, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, + 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x03, + 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, + 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x36, 0x0a, 0x1a, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x35, 0x0a, 0x19, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x15, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, + 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x00, + 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x49, 0x0a, 0x13, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x73, 0x22, 0x73, 0x0a, 0x14, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, + 0x22, 0x67, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x18, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x6c, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7c, 0x0a, 0x17, 0x57, 0x61, 0x74, - 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x14, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x1a, 0x68, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x56, 0x0a, 0x0b, 0x46, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6e, 0x65, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x0a, + 0x18, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x41, 0x62, 0x6f, + 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, + 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x69, 0x0a, 0x16, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, - 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, - 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, + 0x75, 0x73, 0x65, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, + 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, + 0x85, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, + 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x46, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, - 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x16, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x7c, 0x0a, 0x17, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x77, 0x61, + 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, + 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, + 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xba, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, + 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, + 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x22, 0x69, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x37, - 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, - 0x22, 0x69, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x58, 0x0a, 0x16, + 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x5f, 0x6d, 0x61, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, - 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x22, 0x74, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x48, - 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x03, - 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, - 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xba, 0x02, 0x0a, 0x16, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x37, - 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, + 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x58, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x22, 0xab, 0x01, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x74, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, - 0x22, 0x80, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, - 0x12, 0x29, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x69, 0x73, 0x5f, - 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, - 0x6f, 0x55, 0x52, 0x4c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x22, 0x5d, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, - 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x73, 0x22, 0x4c, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x69, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, + 0x61, 0x70, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0xba, 0x02, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, + 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, + 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x22, 0x80, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, + 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, + 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, 0x12, 0x29, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, + 0x72, 0x6c, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x65, + 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5d, 0x0a, 0x1d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x4c, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x7a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, + 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x22, 0x36, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x1f, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, - 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x22, 0x7a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, - 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x36, - 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x5b, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, - 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, - 0x55, 0x52, 0x4c, 0x12, 0x29, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x5f, - 0x69, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5d, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, - 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x5e, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, - 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x5b, 0x0a, 0x1b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x1c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, 0x12, 0x29, 0x0a, 0x11, 0x72, 0x65, 0x70, + 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, 0x49, 0x73, 0x52, + 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5d, 0x0a, 0x1d, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x4c, + 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x5e, 0x0a, 0x1e, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x1f, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x5f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, + 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, - 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x60, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, - 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x1f, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x5f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, - 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x72, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x22, 0x0a, 0x20, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, - 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x12, 0x61, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x11, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, - 0x8f, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x74, 0x0a, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, - 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4d, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x01, - 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x1a, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x72, 0x0a, 0x1f, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x22, 0x0a, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x95, 0x01, + 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x74, 0x0a, 0x12, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x18, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x22, 0x7c, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x19, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, - 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x17, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x22, 0x3a, 0x0a, 0x24, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x27, 0x0a, 0x25, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, + 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4d, 0x0a, 0x1d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x0a, 0x23, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, + 0x1a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, + 0x18, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x7c, 0x0a, 0x21, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, + 0x01, 0x0a, 0x19, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x48, 0x00, 0x52, 0x0b, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x72, + 0x48, 0x00, 0x52, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, - 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x34, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x4c, + 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3a, 0x0a, 0x24, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x27, 0x0a, 0x25, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, + 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, + 0x9d, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x40, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, + 0x75, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, + 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, + 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x95, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, + 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x34, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, - 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x19, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x22, 0x7a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5c, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0e, - 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x8c, - 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x96, 0x01, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x22, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x21, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x72, 0x0a, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, + 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x22, 0x35, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x7a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x73, 0x6b, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, + 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, + 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, + 0x0d, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, + 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, + 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x22, 0x0a, 0x20, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x97, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x15, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x79, 0x0a, 0x1e, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x15, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x73, 0x6b, 0x73, 0x22, 0x79, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, - 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, - 0xab, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, - 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x58, 0x0a, - 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, - 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x59, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, - 0x6c, 0x65, 0x22, 0x41, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, + 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x58, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x59, 0x0a, + 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x41, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x73, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xd0, 0x01, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x45, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, + 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, + 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x58, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0x52, 0x0a, 0x06, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x06, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x22, 0xfd, 0x01, 0x0a, 0x0c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, + 0x12, 0x67, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x54, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x72, 0x0a, 0x10, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, - 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, - 0x6c, 0x65, 0x12, 0x58, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, - 0x00, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x03, - 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, - 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x52, 0x0a, 0x06, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x73, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x22, 0xfd, - 0x01, 0x0a, 0x0c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x4b, 0x0a, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x67, 0x0a, 0x10, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x54, - 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x72, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x73, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xb2, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, - 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xfe, 0x01, - 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x4b, 0x0a, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x67, 0x0a, 0x10, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xb2, + 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, + 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, + 0x12, 0x67, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x0e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, - 0x0a, 0x0e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, - 0x59, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0c, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x68, 0x0a, 0x15, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, - 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xaa, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x74, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, - 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x70, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x59, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, + 0x22, 0x85, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x50, 0x49, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, - 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x6b, - 0x0a, 0x16, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x17, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2a, 0x51, 0x0a, 0x09, 0x52, 0x61, 0x77, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, - 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, - 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, - 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x32, 0xaa, 0x56, 0x0a, 0x0c, - 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x2e, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, + 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x22, 0x68, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x22, 0x74, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, + 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x70, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, 0x73, + 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x22, 0x6b, 0x0a, 0x16, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x4b, 0x0a, 0x17, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2a, 0x51, + 0x0a, 0x09, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x52, + 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x41, 0x57, 0x5f, 0x46, + 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, + 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x59, 0x41, 0x4d, 0x4c, 0x10, + 0x02, 0x32, 0xc5, 0x57, 0x0a, 0x0c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, + 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, - 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, - 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x38, + 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, - 0x65, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, - 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, - 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x92, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x0e, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x83, 0x01, 0x0a, 0x0e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, + 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x0e, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, + 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, - 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x91, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, + 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x33, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x37, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8c, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, + 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, - 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x33, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, + 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x71, 0x0a, 0x08, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x31, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, - 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, + 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, - 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, - 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, + 0x75, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, - 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, - 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, - 0x0a, 0x08, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, + 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, + 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, + 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, + 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, - 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, - 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, - 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, - 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, - 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, - 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, - 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, - 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, - 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3e, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x8f, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3f, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0xa1, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x65, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, - 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, - 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, - 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, - 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x74, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, + 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, + 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4d, 0x61, 0x70, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, + 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, + 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, + 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 0x70, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, + 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3c, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, + 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, + 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x1c, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x46, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa7, 0x01, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x43, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0xb0, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x46, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x1c, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa7, 0x01, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x43, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x91, 0x01, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, - 0x6f, 0x67, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xb0, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x46, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x91, 0x01, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, + 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, + 0x12, 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, - 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x39, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x77, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, + 0x6f, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, - 0x42, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x12, 0x2e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, + 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x39, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x12, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, - 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x6f, - 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x12, 0x2e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x74, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x32, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x12, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, + 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, - 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, - 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, - 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x50, - 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x93, 0x02, 0x0a, 0x24, 0x63, 0x6f, + 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x50, 0x49, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x93, 0x02, 0x0a, 0x24, 0x63, 0x6f, 0x6d, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, - 0x73, 0x76, 0x63, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x41, 0x49, - 0x4b, 0x53, 0xaa, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x6f, 0x2e, 0x4b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x56, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, 0x49, - 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2c, 0x41, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x3a, 0x3a, 0x49, 0x6f, 0x3a, 0x3a, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x3a, 0x3a, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x3b, 0x73, 0x76, 0x63, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x41, + 0x49, 0x4b, 0x53, 0xaa, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x6f, 0x2e, + 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, + 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2c, 0x41, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x41, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x3a, 0x3a, 0x49, 0x6f, 0x3a, 0x3a, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x3a, 0x3a, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12497,7 +12702,7 @@ func file_api_service_v1alpha1_service_proto_rawDescGZIP() []byte { } var file_api_service_v1alpha1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_api_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 181) +var file_api_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 184) var file_api_service_v1alpha1_service_proto_goTypes = []interface{}{ (RawFormat)(0), // 0: akuity.io.kargo.service.v1alpha1.RawFormat (*ComponentVersions)(nil), // 1: akuity.io.kargo.service.v1alpha1.ComponentVersions @@ -12532,442 +12737,448 @@ var file_api_service_v1alpha1_service_proto_goTypes = []interface{}{ (*ImageStageMap)(nil), // 30: akuity.io.kargo.service.v1alpha1.ImageStageMap (*GetStageRequest)(nil), // 31: akuity.io.kargo.service.v1alpha1.GetStageRequest (*GetStageResponse)(nil), // 32: akuity.io.kargo.service.v1alpha1.GetStageResponse - (*WatchStagesRequest)(nil), // 33: akuity.io.kargo.service.v1alpha1.WatchStagesRequest - (*WatchStagesResponse)(nil), // 34: akuity.io.kargo.service.v1alpha1.WatchStagesResponse - (*DeleteStageRequest)(nil), // 35: akuity.io.kargo.service.v1alpha1.DeleteStageRequest - (*DeleteStageResponse)(nil), // 36: akuity.io.kargo.service.v1alpha1.DeleteStageResponse - (*GetClusterConfigRequest)(nil), // 37: akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest - (*GetClusterConfigResponse)(nil), // 38: akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse - (*DeleteClusterConfigRequest)(nil), // 39: akuity.io.kargo.service.v1alpha1.DeleteClusterConfigRequest - (*DeleteClusterConfigResponse)(nil), // 40: akuity.io.kargo.service.v1alpha1.DeleteClusterConfigResponse - (*WatchClusterConfigRequest)(nil), // 41: akuity.io.kargo.service.v1alpha1.WatchClusterConfigRequest - (*WatchClusterConfigResponse)(nil), // 42: akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse - (*ListPromotionsRequest)(nil), // 43: akuity.io.kargo.service.v1alpha1.ListPromotionsRequest - (*ListPromotionsResponse)(nil), // 44: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse - (*WatchPromotionsRequest)(nil), // 45: akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest - (*WatchPromotionsResponse)(nil), // 46: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse - (*GetPromotionRequest)(nil), // 47: akuity.io.kargo.service.v1alpha1.GetPromotionRequest - (*GetPromotionResponse)(nil), // 48: akuity.io.kargo.service.v1alpha1.GetPromotionResponse - (*WatchPromotionRequest)(nil), // 49: akuity.io.kargo.service.v1alpha1.WatchPromotionRequest - (*WatchPromotionResponse)(nil), // 50: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse - (*AbortPromotionRequest)(nil), // 51: akuity.io.kargo.service.v1alpha1.AbortPromotionRequest - (*AbortPromotionResponse)(nil), // 52: akuity.io.kargo.service.v1alpha1.AbortPromotionResponse - (*DeleteProjectRequest)(nil), // 53: akuity.io.kargo.service.v1alpha1.DeleteProjectRequest - (*DeleteProjectResponse)(nil), // 54: akuity.io.kargo.service.v1alpha1.DeleteProjectResponse - (*GetProjectRequest)(nil), // 55: akuity.io.kargo.service.v1alpha1.GetProjectRequest - (*GetProjectResponse)(nil), // 56: akuity.io.kargo.service.v1alpha1.GetProjectResponse - (*ListProjectsRequest)(nil), // 57: akuity.io.kargo.service.v1alpha1.ListProjectsRequest - (*ListProjectsResponse)(nil), // 58: akuity.io.kargo.service.v1alpha1.ListProjectsResponse - (*GetProjectConfigRequest)(nil), // 59: akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest - (*GetProjectConfigResponse)(nil), // 60: akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse - (*DeleteProjectConfigRequest)(nil), // 61: akuity.io.kargo.service.v1alpha1.DeleteProjectConfigRequest - (*DeleteProjectConfigResponse)(nil), // 62: akuity.io.kargo.service.v1alpha1.DeleteProjectConfigResponse - (*WatchProjectConfigRequest)(nil), // 63: akuity.io.kargo.service.v1alpha1.WatchProjectConfigRequest - (*WatchProjectConfigResponse)(nil), // 64: akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse - (*ApproveFreightRequest)(nil), // 65: akuity.io.kargo.service.v1alpha1.ApproveFreightRequest - (*ApproveFreightResponse)(nil), // 66: akuity.io.kargo.service.v1alpha1.ApproveFreightResponse - (*DeleteFreightRequest)(nil), // 67: akuity.io.kargo.service.v1alpha1.DeleteFreightRequest - (*DeleteFreightResponse)(nil), // 68: akuity.io.kargo.service.v1alpha1.DeleteFreightResponse - (*GetFreightRequest)(nil), // 69: akuity.io.kargo.service.v1alpha1.GetFreightRequest - (*GetFreightResponse)(nil), // 70: akuity.io.kargo.service.v1alpha1.GetFreightResponse - (*WatchFreightRequest)(nil), // 71: akuity.io.kargo.service.v1alpha1.WatchFreightRequest - (*WatchFreightResponse)(nil), // 72: akuity.io.kargo.service.v1alpha1.WatchFreightResponse - (*PromoteToStageRequest)(nil), // 73: akuity.io.kargo.service.v1alpha1.PromoteToStageRequest - (*PromoteToStageResponse)(nil), // 74: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse - (*PromoteDownstreamRequest)(nil), // 75: akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest - (*PromoteDownstreamResponse)(nil), // 76: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse - (*QueryFreightRequest)(nil), // 77: akuity.io.kargo.service.v1alpha1.QueryFreightRequest - (*QueryFreightResponse)(nil), // 78: akuity.io.kargo.service.v1alpha1.QueryFreightResponse - (*FreightList)(nil), // 79: akuity.io.kargo.service.v1alpha1.FreightList - (*UpdateFreightAliasRequest)(nil), // 80: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest - (*UpdateFreightAliasResponse)(nil), // 81: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse - (*ReverifyRequest)(nil), // 82: akuity.io.kargo.service.v1alpha1.ReverifyRequest - (*ReverifyResponse)(nil), // 83: akuity.io.kargo.service.v1alpha1.ReverifyResponse - (*AbortVerificationRequest)(nil), // 84: akuity.io.kargo.service.v1alpha1.AbortVerificationRequest - (*AbortVerificationResponse)(nil), // 85: akuity.io.kargo.service.v1alpha1.AbortVerificationResponse - (*ListWarehousesRequest)(nil), // 86: akuity.io.kargo.service.v1alpha1.ListWarehousesRequest - (*ListWarehousesResponse)(nil), // 87: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse - (*GetWarehouseRequest)(nil), // 88: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest - (*GetWarehouseResponse)(nil), // 89: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse - (*WatchWarehousesRequest)(nil), // 90: akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest - (*WatchWarehousesResponse)(nil), // 91: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse - (*DeleteWarehouseRequest)(nil), // 92: akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest - (*DeleteWarehouseResponse)(nil), // 93: akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse - (*CreateConfigMapRequest)(nil), // 94: akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest - (*CreateConfigMapResponse)(nil), // 95: akuity.io.kargo.service.v1alpha1.CreateConfigMapResponse - (*DeleteConfigMapRequest)(nil), // 96: akuity.io.kargo.service.v1alpha1.DeleteConfigMapRequest - (*DeleteConfigMapResponse)(nil), // 97: akuity.io.kargo.service.v1alpha1.DeleteConfigMapResponse - (*ListConfigMapsRequest)(nil), // 98: akuity.io.kargo.service.v1alpha1.ListConfigMapsRequest - (*ListConfigMapsResponse)(nil), // 99: akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse - (*GetConfigMapRequest)(nil), // 100: akuity.io.kargo.service.v1alpha1.GetConfigMapRequest - (*GetConfigMapResponse)(nil), // 101: akuity.io.kargo.service.v1alpha1.GetConfigMapResponse - (*UpdateConfigMapRequest)(nil), // 102: akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest - (*UpdateConfigMapResponse)(nil), // 103: akuity.io.kargo.service.v1alpha1.UpdateConfigMapResponse - (*CreateRepoCredentialsRequest)(nil), // 104: akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsRequest - (*CreateRepoCredentialsResponse)(nil), // 105: akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsResponse - (*DeleteRepoCredentialsRequest)(nil), // 106: akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsRequest - (*DeleteRepoCredentialsResponse)(nil), // 107: akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsResponse - (*GetRepoCredentialsRequest)(nil), // 108: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsRequest - (*GetRepoCredentialsResponse)(nil), // 109: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsResponse - (*ListRepoCredentialsRequest)(nil), // 110: akuity.io.kargo.service.v1alpha1.ListRepoCredentialsRequest - (*ListRepoCredentialsResponse)(nil), // 111: akuity.io.kargo.service.v1alpha1.ListRepoCredentialsResponse - (*UpdateRepoCredentialsRequest)(nil), // 112: akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsRequest - (*UpdateRepoCredentialsResponse)(nil), // 113: akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsResponse - (*ListGenericCredentialsRequest)(nil), // 114: akuity.io.kargo.service.v1alpha1.ListGenericCredentialsRequest - (*ListGenericCredentialsResponse)(nil), // 115: akuity.io.kargo.service.v1alpha1.ListGenericCredentialsResponse - (*CreateGenericCredentialsRequest)(nil), // 116: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest - (*CreateGenericCredentialsResponse)(nil), // 117: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsResponse - (*UpdateGenericCredentialsRequest)(nil), // 118: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest - (*UpdateGenericCredentialsResponse)(nil), // 119: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsResponse - (*DeleteGenericCredentialsRequest)(nil), // 120: akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsRequest - (*DeleteGenericCredentialsResponse)(nil), // 121: akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsResponse - (*ListAnalysisTemplatesRequest)(nil), // 122: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest - (*ListAnalysisTemplatesResponse)(nil), // 123: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse - (*GetAnalysisTemplateRequest)(nil), // 124: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest - (*GetAnalysisTemplateResponse)(nil), // 125: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse - (*DeleteAnalysisTemplateRequest)(nil), // 126: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest - (*DeleteAnalysisTemplateResponse)(nil), // 127: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse - (*ListClusterAnalysisTemplatesRequest)(nil), // 128: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesRequest - (*ListClusterAnalysisTemplatesResponse)(nil), // 129: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse - (*GetClusterAnalysisTemplateRequest)(nil), // 130: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest - (*GetClusterAnalysisTemplateResponse)(nil), // 131: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse - (*DeleteClusterAnalysisTemplateRequest)(nil), // 132: akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateRequest - (*DeleteClusterAnalysisTemplateResponse)(nil), // 133: akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateResponse - (*GetAnalysisRunRequest)(nil), // 134: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest - (*GetAnalysisRunResponse)(nil), // 135: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse - (*GetAnalysisRunLogsRequest)(nil), // 136: akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsRequest - (*GetAnalysisRunLogsResponse)(nil), // 137: akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsResponse - (*ListProjectEventsRequest)(nil), // 138: akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest - (*ListProjectEventsResponse)(nil), // 139: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse - (*ListPromotionTasksRequest)(nil), // 140: akuity.io.kargo.service.v1alpha1.ListPromotionTasksRequest - (*ListPromotionTasksResponse)(nil), // 141: akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse - (*GetPromotionTaskRequest)(nil), // 142: akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest - (*GetPromotionTaskResponse)(nil), // 143: akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse - (*ListClusterPromotionTasksRequest)(nil), // 144: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksRequest - (*ListClusterPromotionTasksResponse)(nil), // 145: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse - (*GetClusterPromotionTaskRequest)(nil), // 146: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest - (*GetClusterPromotionTaskResponse)(nil), // 147: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse - (*CreateRoleRequest)(nil), // 148: akuity.io.kargo.service.v1alpha1.CreateRoleRequest - (*CreateRoleResponse)(nil), // 149: akuity.io.kargo.service.v1alpha1.CreateRoleResponse - (*DeleteRoleRequest)(nil), // 150: akuity.io.kargo.service.v1alpha1.DeleteRoleRequest - (*DeleteRoleResponse)(nil), // 151: akuity.io.kargo.service.v1alpha1.DeleteRoleResponse - (*GetRoleRequest)(nil), // 152: akuity.io.kargo.service.v1alpha1.GetRoleRequest - (*GetRoleResponse)(nil), // 153: akuity.io.kargo.service.v1alpha1.GetRoleResponse - (*Claims)(nil), // 154: akuity.io.kargo.service.v1alpha1.Claims - (*GrantRequest)(nil), // 155: akuity.io.kargo.service.v1alpha1.GrantRequest - (*GrantResponse)(nil), // 156: akuity.io.kargo.service.v1alpha1.GrantResponse - (*ListRolesRequest)(nil), // 157: akuity.io.kargo.service.v1alpha1.ListRolesRequest - (*ListRolesResponse)(nil), // 158: akuity.io.kargo.service.v1alpha1.ListRolesResponse - (*RevokeRequest)(nil), // 159: akuity.io.kargo.service.v1alpha1.RevokeRequest - (*RevokeResponse)(nil), // 160: akuity.io.kargo.service.v1alpha1.RevokeResponse - (*UpdateRoleRequest)(nil), // 161: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest - (*UpdateRoleResponse)(nil), // 162: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse - (*CreateAPITokenRequest)(nil), // 163: akuity.io.kargo.service.v1alpha1.CreateAPITokenRequest - (*CreateAPITokenResponse)(nil), // 164: akuity.io.kargo.service.v1alpha1.CreateAPITokenResponse - (*DeleteAPITokenRequest)(nil), // 165: akuity.io.kargo.service.v1alpha1.DeleteAPITokenRequest - (*DeleteAPITokenResponse)(nil), // 166: akuity.io.kargo.service.v1alpha1.DeleteAPITokenResponse - (*GetAPITokenRequest)(nil), // 167: akuity.io.kargo.service.v1alpha1.GetAPITokenRequest - (*GetAPITokenResponse)(nil), // 168: akuity.io.kargo.service.v1alpha1.GetAPITokenResponse - (*ListAPITokensRequest)(nil), // 169: akuity.io.kargo.service.v1alpha1.ListAPITokensRequest - (*ListAPITokensResponse)(nil), // 170: akuity.io.kargo.service.v1alpha1.ListAPITokensResponse - (*RefreshResourceRequest)(nil), // 171: akuity.io.kargo.service.v1alpha1.RefreshResourceRequest - (*RefreshResourceResponse)(nil), // 172: akuity.io.kargo.service.v1alpha1.RefreshResourceResponse - nil, // 173: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry - nil, // 174: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry - nil, // 175: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry - nil, // 176: akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry - nil, // 177: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry - nil, // 178: akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest.DataEntry - nil, // 179: akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest.DataEntry - nil, // 180: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest.DataEntry - nil, // 181: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest.DataEntry - (*timestamppb.Timestamp)(nil), // 182: google.protobuf.Timestamp - (*v1alpha1.Stage)(nil), // 183: github.com.akuity.kargo.api.v1alpha1.Stage - (*v1alpha1.ClusterConfig)(nil), // 184: github.com.akuity.kargo.api.v1alpha1.ClusterConfig - (*v1alpha1.Promotion)(nil), // 185: github.com.akuity.kargo.api.v1alpha1.Promotion - (*v1alpha1.Project)(nil), // 186: github.com.akuity.kargo.api.v1alpha1.Project - (*v1alpha1.ProjectConfig)(nil), // 187: github.com.akuity.kargo.api.v1alpha1.ProjectConfig - (*v1alpha1.Freight)(nil), // 188: github.com.akuity.kargo.api.v1alpha1.Freight - (*v1alpha1.Warehouse)(nil), // 189: github.com.akuity.kargo.api.v1alpha1.Warehouse - (*v1.ConfigMap)(nil), // 190: k8s.io.api.core.v1.ConfigMap - (*v1.Secret)(nil), // 191: k8s.io.api.core.v1.Secret - (*v1alpha11.AnalysisTemplate)(nil), // 192: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate - (*v1alpha11.ClusterAnalysisTemplate)(nil), // 193: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate - (*v1alpha11.AnalysisRun)(nil), // 194: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisRun - (*v1.Event)(nil), // 195: k8s.io.api.core.v1.Event - (*v1alpha1.PromotionTask)(nil), // 196: github.com.akuity.kargo.api.v1alpha1.PromotionTask - (*v1alpha1.ClusterPromotionTask)(nil), // 197: github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask - (*v1alpha12.Role)(nil), // 198: github.com.akuity.kargo.api.rbac.v1alpha1.Role - (*v1alpha12.RoleResources)(nil), // 199: github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources - (*v1alpha12.Claim)(nil), // 200: github.com.akuity.kargo.api.rbac.v1alpha1.Claim - (*v1alpha12.ResourceDetails)(nil), // 201: github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails - (*anypb.Any)(nil), // 202: google.protobuf.Any + (*GetStageHealthOutputsRequest)(nil), // 33: akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsRequest + (*GetStageHealthOutputsResponse)(nil), // 34: akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse + (*WatchStagesRequest)(nil), // 35: akuity.io.kargo.service.v1alpha1.WatchStagesRequest + (*WatchStagesResponse)(nil), // 36: akuity.io.kargo.service.v1alpha1.WatchStagesResponse + (*DeleteStageRequest)(nil), // 37: akuity.io.kargo.service.v1alpha1.DeleteStageRequest + (*DeleteStageResponse)(nil), // 38: akuity.io.kargo.service.v1alpha1.DeleteStageResponse + (*GetClusterConfigRequest)(nil), // 39: akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest + (*GetClusterConfigResponse)(nil), // 40: akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse + (*DeleteClusterConfigRequest)(nil), // 41: akuity.io.kargo.service.v1alpha1.DeleteClusterConfigRequest + (*DeleteClusterConfigResponse)(nil), // 42: akuity.io.kargo.service.v1alpha1.DeleteClusterConfigResponse + (*WatchClusterConfigRequest)(nil), // 43: akuity.io.kargo.service.v1alpha1.WatchClusterConfigRequest + (*WatchClusterConfigResponse)(nil), // 44: akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse + (*ListPromotionsRequest)(nil), // 45: akuity.io.kargo.service.v1alpha1.ListPromotionsRequest + (*ListPromotionsResponse)(nil), // 46: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse + (*WatchPromotionsRequest)(nil), // 47: akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest + (*WatchPromotionsResponse)(nil), // 48: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse + (*GetPromotionRequest)(nil), // 49: akuity.io.kargo.service.v1alpha1.GetPromotionRequest + (*GetPromotionResponse)(nil), // 50: akuity.io.kargo.service.v1alpha1.GetPromotionResponse + (*WatchPromotionRequest)(nil), // 51: akuity.io.kargo.service.v1alpha1.WatchPromotionRequest + (*WatchPromotionResponse)(nil), // 52: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse + (*AbortPromotionRequest)(nil), // 53: akuity.io.kargo.service.v1alpha1.AbortPromotionRequest + (*AbortPromotionResponse)(nil), // 54: akuity.io.kargo.service.v1alpha1.AbortPromotionResponse + (*DeleteProjectRequest)(nil), // 55: akuity.io.kargo.service.v1alpha1.DeleteProjectRequest + (*DeleteProjectResponse)(nil), // 56: akuity.io.kargo.service.v1alpha1.DeleteProjectResponse + (*GetProjectRequest)(nil), // 57: akuity.io.kargo.service.v1alpha1.GetProjectRequest + (*GetProjectResponse)(nil), // 58: akuity.io.kargo.service.v1alpha1.GetProjectResponse + (*ListProjectsRequest)(nil), // 59: akuity.io.kargo.service.v1alpha1.ListProjectsRequest + (*ListProjectsResponse)(nil), // 60: akuity.io.kargo.service.v1alpha1.ListProjectsResponse + (*GetProjectConfigRequest)(nil), // 61: akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest + (*GetProjectConfigResponse)(nil), // 62: akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse + (*DeleteProjectConfigRequest)(nil), // 63: akuity.io.kargo.service.v1alpha1.DeleteProjectConfigRequest + (*DeleteProjectConfigResponse)(nil), // 64: akuity.io.kargo.service.v1alpha1.DeleteProjectConfigResponse + (*WatchProjectConfigRequest)(nil), // 65: akuity.io.kargo.service.v1alpha1.WatchProjectConfigRequest + (*WatchProjectConfigResponse)(nil), // 66: akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse + (*ApproveFreightRequest)(nil), // 67: akuity.io.kargo.service.v1alpha1.ApproveFreightRequest + (*ApproveFreightResponse)(nil), // 68: akuity.io.kargo.service.v1alpha1.ApproveFreightResponse + (*DeleteFreightRequest)(nil), // 69: akuity.io.kargo.service.v1alpha1.DeleteFreightRequest + (*DeleteFreightResponse)(nil), // 70: akuity.io.kargo.service.v1alpha1.DeleteFreightResponse + (*GetFreightRequest)(nil), // 71: akuity.io.kargo.service.v1alpha1.GetFreightRequest + (*GetFreightResponse)(nil), // 72: akuity.io.kargo.service.v1alpha1.GetFreightResponse + (*WatchFreightRequest)(nil), // 73: akuity.io.kargo.service.v1alpha1.WatchFreightRequest + (*WatchFreightResponse)(nil), // 74: akuity.io.kargo.service.v1alpha1.WatchFreightResponse + (*PromoteToStageRequest)(nil), // 75: akuity.io.kargo.service.v1alpha1.PromoteToStageRequest + (*PromoteToStageResponse)(nil), // 76: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse + (*PromoteDownstreamRequest)(nil), // 77: akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest + (*PromoteDownstreamResponse)(nil), // 78: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse + (*QueryFreightRequest)(nil), // 79: akuity.io.kargo.service.v1alpha1.QueryFreightRequest + (*QueryFreightResponse)(nil), // 80: akuity.io.kargo.service.v1alpha1.QueryFreightResponse + (*FreightList)(nil), // 81: akuity.io.kargo.service.v1alpha1.FreightList + (*UpdateFreightAliasRequest)(nil), // 82: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest + (*UpdateFreightAliasResponse)(nil), // 83: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse + (*ReverifyRequest)(nil), // 84: akuity.io.kargo.service.v1alpha1.ReverifyRequest + (*ReverifyResponse)(nil), // 85: akuity.io.kargo.service.v1alpha1.ReverifyResponse + (*AbortVerificationRequest)(nil), // 86: akuity.io.kargo.service.v1alpha1.AbortVerificationRequest + (*AbortVerificationResponse)(nil), // 87: akuity.io.kargo.service.v1alpha1.AbortVerificationResponse + (*ListWarehousesRequest)(nil), // 88: akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + (*ListWarehousesResponse)(nil), // 89: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + (*GetWarehouseRequest)(nil), // 90: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + (*GetWarehouseResponse)(nil), // 91: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + (*WatchWarehousesRequest)(nil), // 92: akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest + (*WatchWarehousesResponse)(nil), // 93: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse + (*DeleteWarehouseRequest)(nil), // 94: akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + (*DeleteWarehouseResponse)(nil), // 95: akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + (*CreateConfigMapRequest)(nil), // 96: akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest + (*CreateConfigMapResponse)(nil), // 97: akuity.io.kargo.service.v1alpha1.CreateConfigMapResponse + (*DeleteConfigMapRequest)(nil), // 98: akuity.io.kargo.service.v1alpha1.DeleteConfigMapRequest + (*DeleteConfigMapResponse)(nil), // 99: akuity.io.kargo.service.v1alpha1.DeleteConfigMapResponse + (*ListConfigMapsRequest)(nil), // 100: akuity.io.kargo.service.v1alpha1.ListConfigMapsRequest + (*ListConfigMapsResponse)(nil), // 101: akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse + (*GetConfigMapRequest)(nil), // 102: akuity.io.kargo.service.v1alpha1.GetConfigMapRequest + (*GetConfigMapResponse)(nil), // 103: akuity.io.kargo.service.v1alpha1.GetConfigMapResponse + (*UpdateConfigMapRequest)(nil), // 104: akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest + (*UpdateConfigMapResponse)(nil), // 105: akuity.io.kargo.service.v1alpha1.UpdateConfigMapResponse + (*CreateRepoCredentialsRequest)(nil), // 106: akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsRequest + (*CreateRepoCredentialsResponse)(nil), // 107: akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsResponse + (*DeleteRepoCredentialsRequest)(nil), // 108: akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsRequest + (*DeleteRepoCredentialsResponse)(nil), // 109: akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsResponse + (*GetRepoCredentialsRequest)(nil), // 110: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsRequest + (*GetRepoCredentialsResponse)(nil), // 111: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsResponse + (*ListRepoCredentialsRequest)(nil), // 112: akuity.io.kargo.service.v1alpha1.ListRepoCredentialsRequest + (*ListRepoCredentialsResponse)(nil), // 113: akuity.io.kargo.service.v1alpha1.ListRepoCredentialsResponse + (*UpdateRepoCredentialsRequest)(nil), // 114: akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsRequest + (*UpdateRepoCredentialsResponse)(nil), // 115: akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsResponse + (*ListGenericCredentialsRequest)(nil), // 116: akuity.io.kargo.service.v1alpha1.ListGenericCredentialsRequest + (*ListGenericCredentialsResponse)(nil), // 117: akuity.io.kargo.service.v1alpha1.ListGenericCredentialsResponse + (*CreateGenericCredentialsRequest)(nil), // 118: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest + (*CreateGenericCredentialsResponse)(nil), // 119: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsResponse + (*UpdateGenericCredentialsRequest)(nil), // 120: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest + (*UpdateGenericCredentialsResponse)(nil), // 121: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsResponse + (*DeleteGenericCredentialsRequest)(nil), // 122: akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsRequest + (*DeleteGenericCredentialsResponse)(nil), // 123: akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsResponse + (*ListAnalysisTemplatesRequest)(nil), // 124: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest + (*ListAnalysisTemplatesResponse)(nil), // 125: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse + (*GetAnalysisTemplateRequest)(nil), // 126: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest + (*GetAnalysisTemplateResponse)(nil), // 127: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse + (*DeleteAnalysisTemplateRequest)(nil), // 128: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest + (*DeleteAnalysisTemplateResponse)(nil), // 129: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse + (*ListClusterAnalysisTemplatesRequest)(nil), // 130: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesRequest + (*ListClusterAnalysisTemplatesResponse)(nil), // 131: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse + (*GetClusterAnalysisTemplateRequest)(nil), // 132: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest + (*GetClusterAnalysisTemplateResponse)(nil), // 133: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse + (*DeleteClusterAnalysisTemplateRequest)(nil), // 134: akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateRequest + (*DeleteClusterAnalysisTemplateResponse)(nil), // 135: akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateResponse + (*GetAnalysisRunRequest)(nil), // 136: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest + (*GetAnalysisRunResponse)(nil), // 137: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse + (*GetAnalysisRunLogsRequest)(nil), // 138: akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsRequest + (*GetAnalysisRunLogsResponse)(nil), // 139: akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsResponse + (*ListProjectEventsRequest)(nil), // 140: akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest + (*ListProjectEventsResponse)(nil), // 141: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse + (*ListPromotionTasksRequest)(nil), // 142: akuity.io.kargo.service.v1alpha1.ListPromotionTasksRequest + (*ListPromotionTasksResponse)(nil), // 143: akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse + (*GetPromotionTaskRequest)(nil), // 144: akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest + (*GetPromotionTaskResponse)(nil), // 145: akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse + (*ListClusterPromotionTasksRequest)(nil), // 146: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksRequest + (*ListClusterPromotionTasksResponse)(nil), // 147: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse + (*GetClusterPromotionTaskRequest)(nil), // 148: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest + (*GetClusterPromotionTaskResponse)(nil), // 149: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse + (*CreateRoleRequest)(nil), // 150: akuity.io.kargo.service.v1alpha1.CreateRoleRequest + (*CreateRoleResponse)(nil), // 151: akuity.io.kargo.service.v1alpha1.CreateRoleResponse + (*DeleteRoleRequest)(nil), // 152: akuity.io.kargo.service.v1alpha1.DeleteRoleRequest + (*DeleteRoleResponse)(nil), // 153: akuity.io.kargo.service.v1alpha1.DeleteRoleResponse + (*GetRoleRequest)(nil), // 154: akuity.io.kargo.service.v1alpha1.GetRoleRequest + (*GetRoleResponse)(nil), // 155: akuity.io.kargo.service.v1alpha1.GetRoleResponse + (*Claims)(nil), // 156: akuity.io.kargo.service.v1alpha1.Claims + (*GrantRequest)(nil), // 157: akuity.io.kargo.service.v1alpha1.GrantRequest + (*GrantResponse)(nil), // 158: akuity.io.kargo.service.v1alpha1.GrantResponse + (*ListRolesRequest)(nil), // 159: akuity.io.kargo.service.v1alpha1.ListRolesRequest + (*ListRolesResponse)(nil), // 160: akuity.io.kargo.service.v1alpha1.ListRolesResponse + (*RevokeRequest)(nil), // 161: akuity.io.kargo.service.v1alpha1.RevokeRequest + (*RevokeResponse)(nil), // 162: akuity.io.kargo.service.v1alpha1.RevokeResponse + (*UpdateRoleRequest)(nil), // 163: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest + (*UpdateRoleResponse)(nil), // 164: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse + (*CreateAPITokenRequest)(nil), // 165: akuity.io.kargo.service.v1alpha1.CreateAPITokenRequest + (*CreateAPITokenResponse)(nil), // 166: akuity.io.kargo.service.v1alpha1.CreateAPITokenResponse + (*DeleteAPITokenRequest)(nil), // 167: akuity.io.kargo.service.v1alpha1.DeleteAPITokenRequest + (*DeleteAPITokenResponse)(nil), // 168: akuity.io.kargo.service.v1alpha1.DeleteAPITokenResponse + (*GetAPITokenRequest)(nil), // 169: akuity.io.kargo.service.v1alpha1.GetAPITokenRequest + (*GetAPITokenResponse)(nil), // 170: akuity.io.kargo.service.v1alpha1.GetAPITokenResponse + (*ListAPITokensRequest)(nil), // 171: akuity.io.kargo.service.v1alpha1.ListAPITokensRequest + (*ListAPITokensResponse)(nil), // 172: akuity.io.kargo.service.v1alpha1.ListAPITokensResponse + (*RefreshResourceRequest)(nil), // 173: akuity.io.kargo.service.v1alpha1.RefreshResourceRequest + (*RefreshResourceResponse)(nil), // 174: akuity.io.kargo.service.v1alpha1.RefreshResourceResponse + nil, // 175: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry + nil, // 176: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry + nil, // 177: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry + nil, // 178: akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry + nil, // 179: akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse.HealthOutputsEntry + nil, // 180: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry + nil, // 181: akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest.DataEntry + nil, // 182: akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest.DataEntry + nil, // 183: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest.DataEntry + nil, // 184: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest.DataEntry + (*timestamppb.Timestamp)(nil), // 185: google.protobuf.Timestamp + (*v1alpha1.Stage)(nil), // 186: github.com.akuity.kargo.api.v1alpha1.Stage + (*v1alpha1.ClusterConfig)(nil), // 187: github.com.akuity.kargo.api.v1alpha1.ClusterConfig + (*v1alpha1.Promotion)(nil), // 188: github.com.akuity.kargo.api.v1alpha1.Promotion + (*v1alpha1.Project)(nil), // 189: github.com.akuity.kargo.api.v1alpha1.Project + (*v1alpha1.ProjectConfig)(nil), // 190: github.com.akuity.kargo.api.v1alpha1.ProjectConfig + (*v1alpha1.Freight)(nil), // 191: github.com.akuity.kargo.api.v1alpha1.Freight + (*v1alpha1.Warehouse)(nil), // 192: github.com.akuity.kargo.api.v1alpha1.Warehouse + (*v1.ConfigMap)(nil), // 193: k8s.io.api.core.v1.ConfigMap + (*v1.Secret)(nil), // 194: k8s.io.api.core.v1.Secret + (*v1alpha11.AnalysisTemplate)(nil), // 195: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate + (*v1alpha11.ClusterAnalysisTemplate)(nil), // 196: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate + (*v1alpha11.AnalysisRun)(nil), // 197: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisRun + (*v1.Event)(nil), // 198: k8s.io.api.core.v1.Event + (*v1alpha1.PromotionTask)(nil), // 199: github.com.akuity.kargo.api.v1alpha1.PromotionTask + (*v1alpha1.ClusterPromotionTask)(nil), // 200: github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask + (*v1alpha12.Role)(nil), // 201: github.com.akuity.kargo.api.rbac.v1alpha1.Role + (*v1alpha12.RoleResources)(nil), // 202: github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources + (*v1alpha12.Claim)(nil), // 203: github.com.akuity.kargo.api.rbac.v1alpha1.Claim + (*v1alpha12.ResourceDetails)(nil), // 204: github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails + (*anypb.Any)(nil), // 205: google.protobuf.Any } var file_api_service_v1alpha1_service_proto_depIdxs = []int32{ 2, // 0: akuity.io.kargo.service.v1alpha1.ComponentVersions.server:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo 2, // 1: akuity.io.kargo.service.v1alpha1.ComponentVersions.cli:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo - 182, // 2: akuity.io.kargo.service.v1alpha1.VersionInfo.build_time:type_name -> google.protobuf.Timestamp + 185, // 2: akuity.io.kargo.service.v1alpha1.VersionInfo.build_time:type_name -> google.protobuf.Timestamp 2, // 3: akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse.version_info:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo - 173, // 4: akuity.io.kargo.service.v1alpha1.GetConfigResponse.argocd_shards:type_name -> akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry + 175, // 4: akuity.io.kargo.service.v1alpha1.GetConfigResponse.argocd_shards:type_name -> akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry 10, // 5: akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse.oidc_config:type_name -> akuity.io.kargo.service.v1alpha1.OIDCConfig 14, // 6: akuity.io.kargo.service.v1alpha1.CreateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.CreateResourceResult 17, // 7: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResult 20, // 8: akuity.io.kargo.service.v1alpha1.UpdateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.UpdateResourceResult 23, // 9: akuity.io.kargo.service.v1alpha1.DeleteResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.DeleteResourceResult - 183, // 10: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 174, // 11: akuity.io.kargo.service.v1alpha1.ListImagesResponse.images:type_name -> akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry - 175, // 12: akuity.io.kargo.service.v1alpha1.TagMap.tags:type_name -> akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry - 176, // 13: akuity.io.kargo.service.v1alpha1.ImageStageMap.stages:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry + 186, // 10: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 176, // 11: akuity.io.kargo.service.v1alpha1.ListImagesResponse.images:type_name -> akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry + 177, // 12: akuity.io.kargo.service.v1alpha1.TagMap.tags:type_name -> akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry + 178, // 13: akuity.io.kargo.service.v1alpha1.ImageStageMap.stages:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry 0, // 14: akuity.io.kargo.service.v1alpha1.GetStageRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 183, // 15: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 183, // 16: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 0, // 17: akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 184, // 18: akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig - 184, // 19: akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig - 185, // 20: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 185, // 21: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 0, // 22: akuity.io.kargo.service.v1alpha1.GetPromotionRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 185, // 23: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 185, // 24: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 0, // 25: akuity.io.kargo.service.v1alpha1.GetProjectRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 186, // 26: akuity.io.kargo.service.v1alpha1.GetProjectResponse.project:type_name -> github.com.akuity.kargo.api.v1alpha1.Project - 186, // 27: akuity.io.kargo.service.v1alpha1.ListProjectsResponse.projects:type_name -> github.com.akuity.kargo.api.v1alpha1.Project - 0, // 28: akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 187, // 29: akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig - 187, // 30: akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig - 0, // 31: akuity.io.kargo.service.v1alpha1.GetFreightRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 188, // 32: akuity.io.kargo.service.v1alpha1.GetFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight - 188, // 33: akuity.io.kargo.service.v1alpha1.WatchFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight - 185, // 34: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 185, // 35: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 177, // 36: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry - 188, // 37: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight - 189, // 38: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse.warehouses:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse - 0, // 39: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 189, // 40: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse - 189, // 41: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse - 178, // 42: akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest.DataEntry - 190, // 43: akuity.io.kargo.service.v1alpha1.CreateConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap - 190, // 44: akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse.config_maps:type_name -> k8s.io.api.core.v1.ConfigMap - 0, // 45: akuity.io.kargo.service.v1alpha1.GetConfigMapRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 190, // 46: akuity.io.kargo.service.v1alpha1.GetConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap - 179, // 47: akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest.DataEntry - 190, // 48: akuity.io.kargo.service.v1alpha1.UpdateConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap - 191, // 49: akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 0, // 50: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 191, // 51: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 191, // 52: akuity.io.kargo.service.v1alpha1.ListRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 191, // 53: akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 191, // 54: akuity.io.kargo.service.v1alpha1.ListGenericCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 180, // 55: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest.DataEntry - 191, // 56: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 181, // 57: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest.DataEntry - 191, // 58: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 192, // 59: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse.analysis_templates:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate - 0, // 60: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 192, // 61: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse.analysis_template:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate - 193, // 62: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse.cluster_analysis_templates:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate - 0, // 63: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 193, // 64: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse.cluster_analysis_template:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate - 0, // 65: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 194, // 66: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse.analysis_run:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisRun - 195, // 67: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse.events:type_name -> k8s.io.api.core.v1.Event - 196, // 68: akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse.promotion_tasks:type_name -> github.com.akuity.kargo.api.v1alpha1.PromotionTask - 0, // 69: akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 196, // 70: akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse.promotion_task:type_name -> github.com.akuity.kargo.api.v1alpha1.PromotionTask - 197, // 71: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse.cluster_promotion_tasks:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask - 0, // 72: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 197, // 73: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse.promotion_task:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask - 198, // 74: akuity.io.kargo.service.v1alpha1.CreateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 198, // 75: akuity.io.kargo.service.v1alpha1.CreateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 0, // 76: akuity.io.kargo.service.v1alpha1.GetRoleRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 198, // 77: akuity.io.kargo.service.v1alpha1.GetRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 199, // 78: akuity.io.kargo.service.v1alpha1.GetRoleResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources - 200, // 79: akuity.io.kargo.service.v1alpha1.Claims.claims:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Claim - 154, // 80: akuity.io.kargo.service.v1alpha1.GrantRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims - 201, // 81: akuity.io.kargo.service.v1alpha1.GrantRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails - 198, // 82: akuity.io.kargo.service.v1alpha1.GrantResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 198, // 83: akuity.io.kargo.service.v1alpha1.ListRolesResponse.roles:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 199, // 84: akuity.io.kargo.service.v1alpha1.ListRolesResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources - 154, // 85: akuity.io.kargo.service.v1alpha1.RevokeRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims - 201, // 86: akuity.io.kargo.service.v1alpha1.RevokeRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails - 198, // 87: akuity.io.kargo.service.v1alpha1.RevokeResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 198, // 88: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 198, // 89: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 191, // 90: akuity.io.kargo.service.v1alpha1.CreateAPITokenResponse.token_secret:type_name -> k8s.io.api.core.v1.Secret - 0, // 91: akuity.io.kargo.service.v1alpha1.GetAPITokenRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 191, // 92: akuity.io.kargo.service.v1alpha1.GetAPITokenResponse.token_secret:type_name -> k8s.io.api.core.v1.Secret - 191, // 93: akuity.io.kargo.service.v1alpha1.ListAPITokensResponse.token_secrets:type_name -> k8s.io.api.core.v1.Secret - 202, // 94: akuity.io.kargo.service.v1alpha1.RefreshResourceResponse.resource:type_name -> google.protobuf.Any - 6, // 95: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard - 29, // 96: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.TagMap - 30, // 97: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap - 79, // 98: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList - 3, // 99: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest - 5, // 100: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest - 8, // 101: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest - 11, // 102: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest - 13, // 103: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest - 16, // 104: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest - 19, // 105: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest - 22, // 106: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest - 171, // 107: akuity.io.kargo.service.v1alpha1.KargoService.RefreshResource:input_type -> akuity.io.kargo.service.v1alpha1.RefreshResourceRequest - 25, // 108: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest - 27, // 109: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:input_type -> akuity.io.kargo.service.v1alpha1.ListImagesRequest - 31, // 110: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest - 33, // 111: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest - 35, // 112: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest - 37, // 113: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest - 39, // 114: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterConfigRequest - 41, // 115: akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.WatchClusterConfigRequest - 43, // 116: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest - 45, // 117: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest - 47, // 118: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest - 49, // 119: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest - 51, // 120: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:input_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionRequest - 53, // 121: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest - 55, // 122: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectRequest - 57, // 123: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest - 59, // 124: akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest - 61, // 125: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectConfigRequest - 63, // 126: akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.WatchProjectConfigRequest - 65, // 127: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:input_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightRequest - 67, // 128: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:input_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightRequest - 69, // 129: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:input_type -> akuity.io.kargo.service.v1alpha1.GetFreightRequest - 71, // 130: akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight:input_type -> akuity.io.kargo.service.v1alpha1.WatchFreightRequest - 73, // 131: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageRequest - 75, // 132: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:input_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest - 77, // 133: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest - 80, // 134: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:input_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest - 82, // 135: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:input_type -> akuity.io.kargo.service.v1alpha1.ReverifyRequest - 84, // 136: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:input_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationRequest - 86, // 137: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesRequest - 88, // 138: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseRequest - 90, // 139: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest - 92, // 140: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest - 104, // 141: akuity.io.kargo.service.v1alpha1.KargoService.CreateRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsRequest - 106, // 142: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsRequest - 108, // 143: akuity.io.kargo.service.v1alpha1.KargoService.GetRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.GetRepoCredentialsRequest - 110, // 144: akuity.io.kargo.service.v1alpha1.KargoService.ListRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListRepoCredentialsRequest - 112, // 145: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsRequest - 114, // 146: akuity.io.kargo.service.v1alpha1.KargoService.ListGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListGenericCredentialsRequest - 116, // 147: akuity.io.kargo.service.v1alpha1.KargoService.CreateGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest - 118, // 148: akuity.io.kargo.service.v1alpha1.KargoService.UpdateGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest - 120, // 149: akuity.io.kargo.service.v1alpha1.KargoService.DeleteGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsRequest - 94, // 150: akuity.io.kargo.service.v1alpha1.KargoService.CreateConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest - 96, // 151: akuity.io.kargo.service.v1alpha1.KargoService.DeleteConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.DeleteConfigMapRequest - 98, // 152: akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps:input_type -> akuity.io.kargo.service.v1alpha1.ListConfigMapsRequest - 100, // 153: akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigMapRequest - 102, // 154: akuity.io.kargo.service.v1alpha1.KargoService.UpdateConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest - 122, // 155: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest - 124, // 156: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest - 126, // 157: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest - 128, // 158: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesRequest - 130, // 159: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest - 132, // 160: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateRequest - 134, // 161: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest - 136, // 162: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsRequest - 138, // 163: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest - 140, // 164: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionTasksRequest - 144, // 165: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksRequest - 142, // 166: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest - 146, // 167: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest - 148, // 168: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:input_type -> akuity.io.kargo.service.v1alpha1.CreateRoleRequest - 150, // 169: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleRequest - 152, // 170: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:input_type -> akuity.io.kargo.service.v1alpha1.GetRoleRequest - 155, // 171: akuity.io.kargo.service.v1alpha1.KargoService.Grant:input_type -> akuity.io.kargo.service.v1alpha1.GrantRequest - 157, // 172: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:input_type -> akuity.io.kargo.service.v1alpha1.ListRolesRequest - 159, // 173: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:input_type -> akuity.io.kargo.service.v1alpha1.RevokeRequest - 161, // 174: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleRequest - 163, // 175: akuity.io.kargo.service.v1alpha1.KargoService.CreateAPIToken:input_type -> akuity.io.kargo.service.v1alpha1.CreateAPITokenRequest - 165, // 176: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAPIToken:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAPITokenRequest - 167, // 177: akuity.io.kargo.service.v1alpha1.KargoService.GetAPIToken:input_type -> akuity.io.kargo.service.v1alpha1.GetAPITokenRequest - 169, // 178: akuity.io.kargo.service.v1alpha1.KargoService.ListAPITokens:input_type -> akuity.io.kargo.service.v1alpha1.ListAPITokensRequest - 4, // 179: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse - 7, // 180: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse - 9, // 181: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse - 12, // 182: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse - 15, // 183: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse - 18, // 184: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse - 21, // 185: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse - 24, // 186: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse - 172, // 187: akuity.io.kargo.service.v1alpha1.KargoService.RefreshResource:output_type -> akuity.io.kargo.service.v1alpha1.RefreshResourceResponse - 26, // 188: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse - 28, // 189: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:output_type -> akuity.io.kargo.service.v1alpha1.ListImagesResponse - 32, // 190: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse - 34, // 191: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse - 36, // 192: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse - 38, // 193: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse - 40, // 194: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterConfigResponse - 42, // 195: akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse - 44, // 196: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse - 46, // 197: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse - 48, // 198: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse - 50, // 199: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse - 52, // 200: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:output_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionResponse - 54, // 201: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse - 56, // 202: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectResponse - 58, // 203: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse - 60, // 204: akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse - 62, // 205: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectConfigResponse - 64, // 206: akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse - 66, // 207: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:output_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightResponse - 68, // 208: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:output_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightResponse - 70, // 209: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:output_type -> akuity.io.kargo.service.v1alpha1.GetFreightResponse - 72, // 210: akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight:output_type -> akuity.io.kargo.service.v1alpha1.WatchFreightResponse - 74, // 211: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageResponse - 76, // 212: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:output_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse - 78, // 213: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse - 81, // 214: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:output_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse - 83, // 215: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:output_type -> akuity.io.kargo.service.v1alpha1.ReverifyResponse - 85, // 216: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:output_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationResponse - 87, // 217: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesResponse - 89, // 218: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseResponse - 91, // 219: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse - 93, // 220: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse - 105, // 221: akuity.io.kargo.service.v1alpha1.KargoService.CreateRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsResponse - 107, // 222: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsResponse - 109, // 223: akuity.io.kargo.service.v1alpha1.KargoService.GetRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.GetRepoCredentialsResponse - 111, // 224: akuity.io.kargo.service.v1alpha1.KargoService.ListRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListRepoCredentialsResponse - 113, // 225: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsResponse - 115, // 226: akuity.io.kargo.service.v1alpha1.KargoService.ListGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListGenericCredentialsResponse - 117, // 227: akuity.io.kargo.service.v1alpha1.KargoService.CreateGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsResponse - 119, // 228: akuity.io.kargo.service.v1alpha1.KargoService.UpdateGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsResponse - 121, // 229: akuity.io.kargo.service.v1alpha1.KargoService.DeleteGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsResponse - 95, // 230: akuity.io.kargo.service.v1alpha1.KargoService.CreateConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.CreateConfigMapResponse - 97, // 231: akuity.io.kargo.service.v1alpha1.KargoService.DeleteConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.DeleteConfigMapResponse - 99, // 232: akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps:output_type -> akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse - 101, // 233: akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigMapResponse - 103, // 234: akuity.io.kargo.service.v1alpha1.KargoService.UpdateConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.UpdateConfigMapResponse - 123, // 235: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse - 125, // 236: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse - 127, // 237: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse - 129, // 238: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse - 131, // 239: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse - 133, // 240: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateResponse - 135, // 241: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse - 137, // 242: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsResponse - 139, // 243: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse - 141, // 244: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse - 145, // 245: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse - 143, // 246: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse - 147, // 247: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse - 149, // 248: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:output_type -> akuity.io.kargo.service.v1alpha1.CreateRoleResponse - 151, // 249: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleResponse - 153, // 250: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:output_type -> akuity.io.kargo.service.v1alpha1.GetRoleResponse - 156, // 251: akuity.io.kargo.service.v1alpha1.KargoService.Grant:output_type -> akuity.io.kargo.service.v1alpha1.GrantResponse - 158, // 252: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:output_type -> akuity.io.kargo.service.v1alpha1.ListRolesResponse - 160, // 253: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:output_type -> akuity.io.kargo.service.v1alpha1.RevokeResponse - 162, // 254: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleResponse - 164, // 255: akuity.io.kargo.service.v1alpha1.KargoService.CreateAPIToken:output_type -> akuity.io.kargo.service.v1alpha1.CreateAPITokenResponse - 166, // 256: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAPIToken:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAPITokenResponse - 168, // 257: akuity.io.kargo.service.v1alpha1.KargoService.GetAPIToken:output_type -> akuity.io.kargo.service.v1alpha1.GetAPITokenResponse - 170, // 258: akuity.io.kargo.service.v1alpha1.KargoService.ListAPITokens:output_type -> akuity.io.kargo.service.v1alpha1.ListAPITokensResponse - 179, // [179:259] is the sub-list for method output_type - 99, // [99:179] is the sub-list for method input_type - 99, // [99:99] is the sub-list for extension type_name - 99, // [99:99] is the sub-list for extension extendee - 0, // [0:99] is the sub-list for field type_name + 186, // 15: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 179, // 16: akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse.health_outputs:type_name -> akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse.HealthOutputsEntry + 186, // 17: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 0, // 18: akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 187, // 19: akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig + 187, // 20: akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig + 188, // 21: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 188, // 22: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 0, // 23: akuity.io.kargo.service.v1alpha1.GetPromotionRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 188, // 24: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 188, // 25: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 0, // 26: akuity.io.kargo.service.v1alpha1.GetProjectRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 189, // 27: akuity.io.kargo.service.v1alpha1.GetProjectResponse.project:type_name -> github.com.akuity.kargo.api.v1alpha1.Project + 189, // 28: akuity.io.kargo.service.v1alpha1.ListProjectsResponse.projects:type_name -> github.com.akuity.kargo.api.v1alpha1.Project + 0, // 29: akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 190, // 30: akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig + 190, // 31: akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig + 0, // 32: akuity.io.kargo.service.v1alpha1.GetFreightRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 191, // 33: akuity.io.kargo.service.v1alpha1.GetFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight + 191, // 34: akuity.io.kargo.service.v1alpha1.WatchFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight + 188, // 35: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 188, // 36: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 180, // 37: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry + 191, // 38: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight + 192, // 39: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse.warehouses:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 0, // 40: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 192, // 41: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 192, // 42: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 181, // 43: akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest.DataEntry + 193, // 44: akuity.io.kargo.service.v1alpha1.CreateConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap + 193, // 45: akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse.config_maps:type_name -> k8s.io.api.core.v1.ConfigMap + 0, // 46: akuity.io.kargo.service.v1alpha1.GetConfigMapRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 193, // 47: akuity.io.kargo.service.v1alpha1.GetConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap + 182, // 48: akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest.DataEntry + 193, // 49: akuity.io.kargo.service.v1alpha1.UpdateConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap + 194, // 50: akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 0, // 51: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 194, // 52: akuity.io.kargo.service.v1alpha1.GetRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 194, // 53: akuity.io.kargo.service.v1alpha1.ListRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 194, // 54: akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 194, // 55: akuity.io.kargo.service.v1alpha1.ListGenericCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 183, // 56: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest.DataEntry + 194, // 57: akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 184, // 58: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest.DataEntry + 194, // 59: akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 195, // 60: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse.analysis_templates:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate + 0, // 61: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 195, // 62: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse.analysis_template:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate + 196, // 63: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse.cluster_analysis_templates:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate + 0, // 64: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 196, // 65: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse.cluster_analysis_template:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate + 0, // 66: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 197, // 67: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse.analysis_run:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisRun + 198, // 68: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse.events:type_name -> k8s.io.api.core.v1.Event + 199, // 69: akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse.promotion_tasks:type_name -> github.com.akuity.kargo.api.v1alpha1.PromotionTask + 0, // 70: akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 199, // 71: akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse.promotion_task:type_name -> github.com.akuity.kargo.api.v1alpha1.PromotionTask + 200, // 72: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse.cluster_promotion_tasks:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask + 0, // 73: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 200, // 74: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse.promotion_task:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask + 201, // 75: akuity.io.kargo.service.v1alpha1.CreateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 201, // 76: akuity.io.kargo.service.v1alpha1.CreateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 0, // 77: akuity.io.kargo.service.v1alpha1.GetRoleRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 201, // 78: akuity.io.kargo.service.v1alpha1.GetRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 202, // 79: akuity.io.kargo.service.v1alpha1.GetRoleResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources + 203, // 80: akuity.io.kargo.service.v1alpha1.Claims.claims:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Claim + 156, // 81: akuity.io.kargo.service.v1alpha1.GrantRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims + 204, // 82: akuity.io.kargo.service.v1alpha1.GrantRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails + 201, // 83: akuity.io.kargo.service.v1alpha1.GrantResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 201, // 84: akuity.io.kargo.service.v1alpha1.ListRolesResponse.roles:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 202, // 85: akuity.io.kargo.service.v1alpha1.ListRolesResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources + 156, // 86: akuity.io.kargo.service.v1alpha1.RevokeRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims + 204, // 87: akuity.io.kargo.service.v1alpha1.RevokeRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails + 201, // 88: akuity.io.kargo.service.v1alpha1.RevokeResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 201, // 89: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 201, // 90: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 194, // 91: akuity.io.kargo.service.v1alpha1.CreateAPITokenResponse.token_secret:type_name -> k8s.io.api.core.v1.Secret + 0, // 92: akuity.io.kargo.service.v1alpha1.GetAPITokenRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat + 194, // 93: akuity.io.kargo.service.v1alpha1.GetAPITokenResponse.token_secret:type_name -> k8s.io.api.core.v1.Secret + 194, // 94: akuity.io.kargo.service.v1alpha1.ListAPITokensResponse.token_secrets:type_name -> k8s.io.api.core.v1.Secret + 205, // 95: akuity.io.kargo.service.v1alpha1.RefreshResourceResponse.resource:type_name -> google.protobuf.Any + 6, // 96: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard + 29, // 97: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.TagMap + 30, // 98: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap + 81, // 99: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList + 3, // 100: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest + 5, // 101: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest + 8, // 102: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest + 11, // 103: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest + 13, // 104: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest + 16, // 105: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest + 19, // 106: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest + 22, // 107: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest + 173, // 108: akuity.io.kargo.service.v1alpha1.KargoService.RefreshResource:input_type -> akuity.io.kargo.service.v1alpha1.RefreshResourceRequest + 25, // 109: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest + 27, // 110: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:input_type -> akuity.io.kargo.service.v1alpha1.ListImagesRequest + 31, // 111: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest + 33, // 112: akuity.io.kargo.service.v1alpha1.KargoService.GetStageHealthOutputs:input_type -> akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsRequest + 35, // 113: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest + 37, // 114: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest + 39, // 115: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest + 41, // 116: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterConfigRequest + 43, // 117: akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.WatchClusterConfigRequest + 45, // 118: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest + 47, // 119: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest + 49, // 120: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest + 51, // 121: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest + 53, // 122: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:input_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionRequest + 55, // 123: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest + 57, // 124: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectRequest + 59, // 125: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest + 61, // 126: akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest + 63, // 127: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectConfigRequest + 65, // 128: akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.WatchProjectConfigRequest + 67, // 129: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:input_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightRequest + 69, // 130: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:input_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightRequest + 71, // 131: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:input_type -> akuity.io.kargo.service.v1alpha1.GetFreightRequest + 73, // 132: akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight:input_type -> akuity.io.kargo.service.v1alpha1.WatchFreightRequest + 75, // 133: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageRequest + 77, // 134: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:input_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest + 79, // 135: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest + 82, // 136: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:input_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest + 84, // 137: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:input_type -> akuity.io.kargo.service.v1alpha1.ReverifyRequest + 86, // 138: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:input_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationRequest + 88, // 139: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + 90, // 140: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + 92, // 141: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest + 94, // 142: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + 106, // 143: akuity.io.kargo.service.v1alpha1.KargoService.CreateRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsRequest + 108, // 144: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsRequest + 110, // 145: akuity.io.kargo.service.v1alpha1.KargoService.GetRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.GetRepoCredentialsRequest + 112, // 146: akuity.io.kargo.service.v1alpha1.KargoService.ListRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListRepoCredentialsRequest + 114, // 147: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRepoCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsRequest + 116, // 148: akuity.io.kargo.service.v1alpha1.KargoService.ListGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListGenericCredentialsRequest + 118, // 149: akuity.io.kargo.service.v1alpha1.KargoService.CreateGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsRequest + 120, // 150: akuity.io.kargo.service.v1alpha1.KargoService.UpdateGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsRequest + 122, // 151: akuity.io.kargo.service.v1alpha1.KargoService.DeleteGenericCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsRequest + 96, // 152: akuity.io.kargo.service.v1alpha1.KargoService.CreateConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.CreateConfigMapRequest + 98, // 153: akuity.io.kargo.service.v1alpha1.KargoService.DeleteConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.DeleteConfigMapRequest + 100, // 154: akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps:input_type -> akuity.io.kargo.service.v1alpha1.ListConfigMapsRequest + 102, // 155: akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigMapRequest + 104, // 156: akuity.io.kargo.service.v1alpha1.KargoService.UpdateConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.UpdateConfigMapRequest + 124, // 157: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest + 126, // 158: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest + 128, // 159: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest + 130, // 160: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesRequest + 132, // 161: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest + 134, // 162: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateRequest + 136, // 163: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest + 138, // 164: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsRequest + 140, // 165: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest + 142, // 166: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionTasksRequest + 146, // 167: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksRequest + 144, // 168: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest + 148, // 169: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest + 150, // 170: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:input_type -> akuity.io.kargo.service.v1alpha1.CreateRoleRequest + 152, // 171: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleRequest + 154, // 172: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:input_type -> akuity.io.kargo.service.v1alpha1.GetRoleRequest + 157, // 173: akuity.io.kargo.service.v1alpha1.KargoService.Grant:input_type -> akuity.io.kargo.service.v1alpha1.GrantRequest + 159, // 174: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:input_type -> akuity.io.kargo.service.v1alpha1.ListRolesRequest + 161, // 175: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:input_type -> akuity.io.kargo.service.v1alpha1.RevokeRequest + 163, // 176: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleRequest + 165, // 177: akuity.io.kargo.service.v1alpha1.KargoService.CreateAPIToken:input_type -> akuity.io.kargo.service.v1alpha1.CreateAPITokenRequest + 167, // 178: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAPIToken:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAPITokenRequest + 169, // 179: akuity.io.kargo.service.v1alpha1.KargoService.GetAPIToken:input_type -> akuity.io.kargo.service.v1alpha1.GetAPITokenRequest + 171, // 180: akuity.io.kargo.service.v1alpha1.KargoService.ListAPITokens:input_type -> akuity.io.kargo.service.v1alpha1.ListAPITokensRequest + 4, // 181: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse + 7, // 182: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse + 9, // 183: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse + 12, // 184: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse + 15, // 185: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse + 18, // 186: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse + 21, // 187: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse + 24, // 188: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse + 174, // 189: akuity.io.kargo.service.v1alpha1.KargoService.RefreshResource:output_type -> akuity.io.kargo.service.v1alpha1.RefreshResourceResponse + 26, // 190: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse + 28, // 191: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:output_type -> akuity.io.kargo.service.v1alpha1.ListImagesResponse + 32, // 192: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse + 34, // 193: akuity.io.kargo.service.v1alpha1.KargoService.GetStageHealthOutputs:output_type -> akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse + 36, // 194: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse + 38, // 195: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse + 40, // 196: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse + 42, // 197: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterConfigResponse + 44, // 198: akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse + 46, // 199: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse + 48, // 200: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse + 50, // 201: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse + 52, // 202: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse + 54, // 203: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:output_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionResponse + 56, // 204: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse + 58, // 205: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectResponse + 60, // 206: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse + 62, // 207: akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse + 64, // 208: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectConfigResponse + 66, // 209: akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse + 68, // 210: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:output_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightResponse + 70, // 211: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:output_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightResponse + 72, // 212: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:output_type -> akuity.io.kargo.service.v1alpha1.GetFreightResponse + 74, // 213: akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight:output_type -> akuity.io.kargo.service.v1alpha1.WatchFreightResponse + 76, // 214: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageResponse + 78, // 215: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:output_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse + 80, // 216: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse + 83, // 217: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:output_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse + 85, // 218: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:output_type -> akuity.io.kargo.service.v1alpha1.ReverifyResponse + 87, // 219: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:output_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationResponse + 89, // 220: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + 91, // 221: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + 93, // 222: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse + 95, // 223: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + 107, // 224: akuity.io.kargo.service.v1alpha1.KargoService.CreateRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateRepoCredentialsResponse + 109, // 225: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRepoCredentialsResponse + 111, // 226: akuity.io.kargo.service.v1alpha1.KargoService.GetRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.GetRepoCredentialsResponse + 113, // 227: akuity.io.kargo.service.v1alpha1.KargoService.ListRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListRepoCredentialsResponse + 115, // 228: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRepoCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRepoCredentialsResponse + 117, // 229: akuity.io.kargo.service.v1alpha1.KargoService.ListGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListGenericCredentialsResponse + 119, // 230: akuity.io.kargo.service.v1alpha1.KargoService.CreateGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateGenericCredentialsResponse + 121, // 231: akuity.io.kargo.service.v1alpha1.KargoService.UpdateGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateGenericCredentialsResponse + 123, // 232: akuity.io.kargo.service.v1alpha1.KargoService.DeleteGenericCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteGenericCredentialsResponse + 97, // 233: akuity.io.kargo.service.v1alpha1.KargoService.CreateConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.CreateConfigMapResponse + 99, // 234: akuity.io.kargo.service.v1alpha1.KargoService.DeleteConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.DeleteConfigMapResponse + 101, // 235: akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps:output_type -> akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse + 103, // 236: akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigMapResponse + 105, // 237: akuity.io.kargo.service.v1alpha1.KargoService.UpdateConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.UpdateConfigMapResponse + 125, // 238: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse + 127, // 239: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse + 129, // 240: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse + 131, // 241: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse + 133, // 242: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse + 135, // 243: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateResponse + 137, // 244: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse + 139, // 245: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsResponse + 141, // 246: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse + 143, // 247: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse + 147, // 248: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse + 145, // 249: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse + 149, // 250: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse + 151, // 251: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:output_type -> akuity.io.kargo.service.v1alpha1.CreateRoleResponse + 153, // 252: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleResponse + 155, // 253: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:output_type -> akuity.io.kargo.service.v1alpha1.GetRoleResponse + 158, // 254: akuity.io.kargo.service.v1alpha1.KargoService.Grant:output_type -> akuity.io.kargo.service.v1alpha1.GrantResponse + 160, // 255: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:output_type -> akuity.io.kargo.service.v1alpha1.ListRolesResponse + 162, // 256: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:output_type -> akuity.io.kargo.service.v1alpha1.RevokeResponse + 164, // 257: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleResponse + 166, // 258: akuity.io.kargo.service.v1alpha1.KargoService.CreateAPIToken:output_type -> akuity.io.kargo.service.v1alpha1.CreateAPITokenResponse + 168, // 259: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAPIToken:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAPITokenResponse + 170, // 260: akuity.io.kargo.service.v1alpha1.KargoService.GetAPIToken:output_type -> akuity.io.kargo.service.v1alpha1.GetAPITokenResponse + 172, // 261: akuity.io.kargo.service.v1alpha1.KargoService.ListAPITokens:output_type -> akuity.io.kargo.service.v1alpha1.ListAPITokensResponse + 181, // [181:262] is the sub-list for method output_type + 100, // [100:181] is the sub-list for method input_type + 100, // [100:100] is the sub-list for extension type_name + 100, // [100:100] is the sub-list for extension extendee + 0, // [0:100] is the sub-list for field type_name } func init() { file_api_service_v1alpha1_service_proto_init() } @@ -13361,7 +13572,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchStagesRequest); i { + switch v := v.(*GetStageHealthOutputsRequest); i { case 0: return &v.state case 1: @@ -13373,7 +13584,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchStagesResponse); i { + switch v := v.(*GetStageHealthOutputsResponse); i { case 0: return &v.state case 1: @@ -13385,7 +13596,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteStageRequest); i { + switch v := v.(*WatchStagesRequest); i { case 0: return &v.state case 1: @@ -13397,7 +13608,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteStageResponse); i { + switch v := v.(*WatchStagesResponse); i { case 0: return &v.state case 1: @@ -13409,7 +13620,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClusterConfigRequest); i { + switch v := v.(*DeleteStageRequest); i { case 0: return &v.state case 1: @@ -13421,7 +13632,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClusterConfigResponse); i { + switch v := v.(*DeleteStageResponse); i { case 0: return &v.state case 1: @@ -13433,7 +13644,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteClusterConfigRequest); i { + switch v := v.(*GetClusterConfigRequest); i { case 0: return &v.state case 1: @@ -13445,7 +13656,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteClusterConfigResponse); i { + switch v := v.(*GetClusterConfigResponse); i { case 0: return &v.state case 1: @@ -13457,7 +13668,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchClusterConfigRequest); i { + switch v := v.(*DeleteClusterConfigRequest); i { case 0: return &v.state case 1: @@ -13469,7 +13680,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchClusterConfigResponse); i { + switch v := v.(*DeleteClusterConfigResponse); i { case 0: return &v.state case 1: @@ -13481,7 +13692,7 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListPromotionsRequest); i { + switch v := v.(*WatchClusterConfigRequest); i { case 0: return &v.state case 1: @@ -13493,6 +13704,30 @@ func file_api_service_v1alpha1_service_proto_init() { } } file_api_service_v1alpha1_service_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WatchClusterConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_service_v1alpha1_service_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPromotionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_service_v1alpha1_service_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPromotionsResponse); i { case 0: return &v.state @@ -13504,7 +13739,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchPromotionsRequest); i { case 0: return &v.state @@ -13516,7 +13751,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchPromotionsResponse); i { case 0: return &v.state @@ -13528,7 +13763,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPromotionRequest); i { case 0: return &v.state @@ -13540,7 +13775,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPromotionResponse); i { case 0: return &v.state @@ -13552,7 +13787,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchPromotionRequest); i { case 0: return &v.state @@ -13564,7 +13799,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchPromotionResponse); i { case 0: return &v.state @@ -13576,7 +13811,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AbortPromotionRequest); i { case 0: return &v.state @@ -13588,7 +13823,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AbortPromotionResponse); i { case 0: return &v.state @@ -13600,7 +13835,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteProjectRequest); i { case 0: return &v.state @@ -13612,7 +13847,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteProjectResponse); i { case 0: return &v.state @@ -13624,7 +13859,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProjectRequest); i { case 0: return &v.state @@ -13636,7 +13871,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProjectResponse); i { case 0: return &v.state @@ -13648,7 +13883,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProjectsRequest); i { case 0: return &v.state @@ -13660,7 +13895,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProjectsResponse); i { case 0: return &v.state @@ -13672,7 +13907,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProjectConfigRequest); i { case 0: return &v.state @@ -13684,7 +13919,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProjectConfigResponse); i { case 0: return &v.state @@ -13696,7 +13931,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteProjectConfigRequest); i { case 0: return &v.state @@ -13708,7 +13943,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteProjectConfigResponse); i { case 0: return &v.state @@ -13720,7 +13955,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchProjectConfigRequest); i { case 0: return &v.state @@ -13732,7 +13967,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchProjectConfigResponse); i { case 0: return &v.state @@ -13744,7 +13979,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApproveFreightRequest); i { case 0: return &v.state @@ -13756,7 +13991,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApproveFreightResponse); i { case 0: return &v.state @@ -13768,7 +14003,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFreightRequest); i { case 0: return &v.state @@ -13780,7 +14015,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFreightResponse); i { case 0: return &v.state @@ -13792,7 +14027,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFreightRequest); i { case 0: return &v.state @@ -13804,7 +14039,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFreightResponse); i { case 0: return &v.state @@ -13816,7 +14051,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchFreightRequest); i { case 0: return &v.state @@ -13828,7 +14063,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchFreightResponse); i { case 0: return &v.state @@ -13840,7 +14075,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PromoteToStageRequest); i { case 0: return &v.state @@ -13852,7 +14087,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PromoteToStageResponse); i { case 0: return &v.state @@ -13864,7 +14099,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PromoteDownstreamRequest); i { case 0: return &v.state @@ -13876,7 +14111,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PromoteDownstreamResponse); i { case 0: return &v.state @@ -13888,7 +14123,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryFreightRequest); i { case 0: return &v.state @@ -13900,7 +14135,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryFreightResponse); i { case 0: return &v.state @@ -13912,7 +14147,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FreightList); i { case 0: return &v.state @@ -13924,7 +14159,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFreightAliasRequest); i { case 0: return &v.state @@ -13936,7 +14171,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFreightAliasResponse); i { case 0: return &v.state @@ -13948,7 +14183,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReverifyRequest); i { case 0: return &v.state @@ -13960,7 +14195,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReverifyResponse); i { case 0: return &v.state @@ -13972,7 +14207,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AbortVerificationRequest); i { case 0: return &v.state @@ -13984,7 +14219,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AbortVerificationResponse); i { case 0: return &v.state @@ -13996,7 +14231,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWarehousesRequest); i { case 0: return &v.state @@ -14008,7 +14243,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWarehousesResponse); i { case 0: return &v.state @@ -14020,7 +14255,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWarehouseRequest); i { case 0: return &v.state @@ -14032,7 +14267,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWarehouseResponse); i { case 0: return &v.state @@ -14044,7 +14279,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchWarehousesRequest); i { case 0: return &v.state @@ -14056,7 +14291,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchWarehousesResponse); i { case 0: return &v.state @@ -14068,7 +14303,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteWarehouseRequest); i { case 0: return &v.state @@ -14080,7 +14315,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteWarehouseResponse); i { case 0: return &v.state @@ -14092,7 +14327,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateConfigMapRequest); i { case 0: return &v.state @@ -14104,7 +14339,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateConfigMapResponse); i { case 0: return &v.state @@ -14116,7 +14351,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteConfigMapRequest); i { case 0: return &v.state @@ -14128,7 +14363,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteConfigMapResponse); i { case 0: return &v.state @@ -14140,7 +14375,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListConfigMapsRequest); i { case 0: return &v.state @@ -14152,7 +14387,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListConfigMapsResponse); i { case 0: return &v.state @@ -14164,7 +14399,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigMapRequest); i { case 0: return &v.state @@ -14176,7 +14411,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigMapResponse); i { case 0: return &v.state @@ -14188,7 +14423,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigMapRequest); i { case 0: return &v.state @@ -14200,7 +14435,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigMapResponse); i { case 0: return &v.state @@ -14212,7 +14447,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRepoCredentialsRequest); i { case 0: return &v.state @@ -14224,7 +14459,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRepoCredentialsResponse); i { case 0: return &v.state @@ -14236,7 +14471,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRepoCredentialsRequest); i { case 0: return &v.state @@ -14248,7 +14483,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRepoCredentialsResponse); i { case 0: return &v.state @@ -14260,7 +14495,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRepoCredentialsRequest); i { case 0: return &v.state @@ -14272,7 +14507,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRepoCredentialsResponse); i { case 0: return &v.state @@ -14284,7 +14519,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRepoCredentialsRequest); i { case 0: return &v.state @@ -14296,7 +14531,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRepoCredentialsResponse); i { case 0: return &v.state @@ -14308,7 +14543,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRepoCredentialsRequest); i { case 0: return &v.state @@ -14320,7 +14555,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRepoCredentialsResponse); i { case 0: return &v.state @@ -14332,7 +14567,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListGenericCredentialsRequest); i { case 0: return &v.state @@ -14344,7 +14579,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListGenericCredentialsResponse); i { case 0: return &v.state @@ -14356,7 +14591,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateGenericCredentialsRequest); i { case 0: return &v.state @@ -14368,7 +14603,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateGenericCredentialsResponse); i { case 0: return &v.state @@ -14380,7 +14615,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateGenericCredentialsRequest); i { case 0: return &v.state @@ -14392,7 +14627,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateGenericCredentialsResponse); i { case 0: return &v.state @@ -14404,7 +14639,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteGenericCredentialsRequest); i { case 0: return &v.state @@ -14416,7 +14651,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteGenericCredentialsResponse); i { case 0: return &v.state @@ -14428,7 +14663,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAnalysisTemplatesRequest); i { case 0: return &v.state @@ -14440,7 +14675,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAnalysisTemplatesResponse); i { case 0: return &v.state @@ -14452,7 +14687,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAnalysisTemplateRequest); i { case 0: return &v.state @@ -14464,7 +14699,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAnalysisTemplateResponse); i { case 0: return &v.state @@ -14476,7 +14711,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteAnalysisTemplateRequest); i { case 0: return &v.state @@ -14488,7 +14723,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteAnalysisTemplateResponse); i { case 0: return &v.state @@ -14500,7 +14735,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListClusterAnalysisTemplatesRequest); i { case 0: return &v.state @@ -14512,7 +14747,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListClusterAnalysisTemplatesResponse); i { case 0: return &v.state @@ -14524,7 +14759,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetClusterAnalysisTemplateRequest); i { case 0: return &v.state @@ -14536,7 +14771,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetClusterAnalysisTemplateResponse); i { case 0: return &v.state @@ -14548,7 +14783,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteClusterAnalysisTemplateRequest); i { case 0: return &v.state @@ -14560,7 +14795,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteClusterAnalysisTemplateResponse); i { case 0: return &v.state @@ -14572,7 +14807,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAnalysisRunRequest); i { case 0: return &v.state @@ -14584,7 +14819,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAnalysisRunResponse); i { case 0: return &v.state @@ -14596,7 +14831,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAnalysisRunLogsRequest); i { case 0: return &v.state @@ -14608,7 +14843,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAnalysisRunLogsResponse); i { case 0: return &v.state @@ -14620,7 +14855,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProjectEventsRequest); i { case 0: return &v.state @@ -14632,7 +14867,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProjectEventsResponse); i { case 0: return &v.state @@ -14644,7 +14879,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPromotionTasksRequest); i { case 0: return &v.state @@ -14656,7 +14891,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPromotionTasksResponse); i { case 0: return &v.state @@ -14668,7 +14903,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPromotionTaskRequest); i { case 0: return &v.state @@ -14680,7 +14915,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPromotionTaskResponse); i { case 0: return &v.state @@ -14692,7 +14927,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListClusterPromotionTasksRequest); i { case 0: return &v.state @@ -14704,7 +14939,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListClusterPromotionTasksResponse); i { case 0: return &v.state @@ -14716,7 +14951,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetClusterPromotionTaskRequest); i { case 0: return &v.state @@ -14728,7 +14963,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetClusterPromotionTaskResponse); i { case 0: return &v.state @@ -14740,7 +14975,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRoleRequest); i { case 0: return &v.state @@ -14752,7 +14987,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRoleResponse); i { case 0: return &v.state @@ -14764,7 +14999,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRoleRequest); i { case 0: return &v.state @@ -14776,7 +15011,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRoleResponse); i { case 0: return &v.state @@ -14788,7 +15023,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRoleRequest); i { case 0: return &v.state @@ -14800,7 +15035,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRoleResponse); i { case 0: return &v.state @@ -14812,7 +15047,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Claims); i { case 0: return &v.state @@ -14824,7 +15059,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrantRequest); i { case 0: return &v.state @@ -14836,7 +15071,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrantResponse); i { case 0: return &v.state @@ -14848,7 +15083,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRolesRequest); i { case 0: return &v.state @@ -14860,7 +15095,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRolesResponse); i { case 0: return &v.state @@ -14872,7 +15107,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RevokeRequest); i { case 0: return &v.state @@ -14884,7 +15119,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RevokeResponse); i { case 0: return &v.state @@ -14896,7 +15131,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRoleRequest); i { case 0: return &v.state @@ -14908,7 +15143,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRoleResponse); i { case 0: return &v.state @@ -14920,7 +15155,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateAPITokenRequest); i { case 0: return &v.state @@ -14932,7 +15167,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateAPITokenResponse); i { case 0: return &v.state @@ -14944,7 +15179,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteAPITokenRequest); i { case 0: return &v.state @@ -14956,7 +15191,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteAPITokenResponse); i { case 0: return &v.state @@ -14968,7 +15203,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAPITokenRequest); i { case 0: return &v.state @@ -14980,7 +15215,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAPITokenResponse); i { case 0: return &v.state @@ -14992,7 +15227,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAPITokensRequest); i { case 0: return &v.state @@ -15004,7 +15239,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAPITokensResponse); i { case 0: return &v.state @@ -15016,7 +15251,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefreshResourceRequest); i { case 0: return &v.state @@ -15028,7 +15263,7 @@ func file_api_service_v1alpha1_service_proto_init() { return nil } } - file_api_service_v1alpha1_service_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_api_service_v1alpha1_service_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefreshResourceResponse); i { case 0: return &v.state @@ -15063,75 +15298,75 @@ func file_api_service_v1alpha1_service_proto_init() { (*GetStageResponse_Stage)(nil), (*GetStageResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[37].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[39].OneofWrappers = []interface{}{ (*GetClusterConfigResponse_ClusterConfig)(nil), (*GetClusterConfigResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[42].OneofWrappers = []interface{}{} file_api_service_v1alpha1_service_proto_msgTypes[44].OneofWrappers = []interface{}{} - file_api_service_v1alpha1_service_proto_msgTypes[47].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[46].OneofWrappers = []interface{}{} + file_api_service_v1alpha1_service_proto_msgTypes[49].OneofWrappers = []interface{}{ (*GetPromotionResponse_Promotion)(nil), (*GetPromotionResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[55].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[57].OneofWrappers = []interface{}{ (*GetProjectResponse_Project)(nil), (*GetProjectResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[56].OneofWrappers = []interface{}{} - file_api_service_v1alpha1_service_proto_msgTypes[59].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[58].OneofWrappers = []interface{}{} + file_api_service_v1alpha1_service_proto_msgTypes[61].OneofWrappers = []interface{}{ (*GetProjectConfigResponse_ProjectConfig)(nil), (*GetProjectConfigResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[69].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[71].OneofWrappers = []interface{}{ (*GetFreightResponse_Freight)(nil), (*GetFreightResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[88].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[90].OneofWrappers = []interface{}{ (*GetWarehouseResponse_Warehouse)(nil), (*GetWarehouseResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[100].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[102].OneofWrappers = []interface{}{ (*GetConfigMapResponse_ConfigMap)(nil), (*GetConfigMapResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[108].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[110].OneofWrappers = []interface{}{ (*GetRepoCredentialsResponse_Credentials)(nil), (*GetRepoCredentialsResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[124].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[126].OneofWrappers = []interface{}{ (*GetAnalysisTemplateResponse_AnalysisTemplate)(nil), (*GetAnalysisTemplateResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[130].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[132].OneofWrappers = []interface{}{ (*GetClusterAnalysisTemplateResponse_ClusterAnalysisTemplate)(nil), (*GetClusterAnalysisTemplateResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[134].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[136].OneofWrappers = []interface{}{ (*GetAnalysisRunResponse_AnalysisRun)(nil), (*GetAnalysisRunResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[142].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[144].OneofWrappers = []interface{}{ (*GetPromotionTaskResponse_PromotionTask)(nil), (*GetPromotionTaskResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[146].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[148].OneofWrappers = []interface{}{ (*GetClusterPromotionTaskResponse_PromotionTask)(nil), (*GetClusterPromotionTaskResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[152].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[154].OneofWrappers = []interface{}{ (*GetRoleResponse_Role)(nil), (*GetRoleResponse_Resources)(nil), (*GetRoleResponse_Raw)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[154].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[156].OneofWrappers = []interface{}{ (*GrantRequest_UserClaims)(nil), (*GrantRequest_ResourceDetails)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[158].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[160].OneofWrappers = []interface{}{ (*RevokeRequest_UserClaims)(nil), (*RevokeRequest_ResourceDetails)(nil), } - file_api_service_v1alpha1_service_proto_msgTypes[167].OneofWrappers = []interface{}{ + file_api_service_v1alpha1_service_proto_msgTypes[169].OneofWrappers = []interface{}{ (*GetAPITokenResponse_TokenSecret)(nil), (*GetAPITokenResponse_Raw)(nil), } @@ -15141,7 +15376,7 @@ func file_api_service_v1alpha1_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_service_v1alpha1_service_proto_rawDesc, NumEnums: 1, - NumMessages: 181, + NumMessages: 184, NumExtensions: 0, NumServices: 1, }, diff --git a/api/service/v1alpha1/service.proto b/api/service/v1alpha1/service.proto index 6b7c249085..eea72fbca6 100644 --- a/api/service/v1alpha1/service.proto +++ b/api/service/v1alpha1/service.proto @@ -50,13 +50,23 @@ service KargoService { rpc RefreshResource(RefreshResourceRequest) returns (RefreshResourceResponse); /* Stage APIs */ - // ListStages retrieves all stages within a project. + // ListStages retrieves all stages within a project. Pass summary=true to + // receive a lightweight projection intended for list and graph views + // (heavy fields are stripped from each returned Stage; see the summary + // field on ListStagesRequest for details). rpc ListStages(ListStagesRequest) returns (ListStagesResponse); // ListImages returns available images and their usage across stages. rpc ListImages(ListImagesRequest) returns (ListImagesResponse); // GetStage retrieves details of a specific stage. rpc GetStage(GetStageRequest) returns (GetStageResponse); + // GetStageHealthOutputs returns the raw health output blob for the + // specified Stages in a project. Intended for clients that use + // ListStages with summary=true and need to resolve per-argocd-app + // health only for the Stages currently in viewport. Stages that do not + // exist or have no health output recorded are omitted from the response. + rpc GetStageHealthOutputs(GetStageHealthOutputsRequest) returns (GetStageHealthOutputsResponse); // WatchStages provides a streaming interface to monitor stage changes. + // Pass summary=true to apply the same projection as ListStages. rpc WatchStages(WatchStagesRequest) returns (stream WatchStagesResponse); // DeleteStage removes a stage from the system. rpc DeleteStage(DeleteStageRequest) returns (DeleteStageResponse); @@ -457,12 +467,31 @@ message ListStagesRequest { // When specified, only Stages that subscribe to at least one of the named // Warehouses are returned. repeated string freight_origins = 2 [json_name = "freightOrigins"]; + // summary, when true, strips heavy fields from each Stage in the response. + // Intended for list and graph views that render many Stages but do not + // need full FreightHistory, PromotionTemplate step configuration, or the + // raw health output blob. Stripped Stages still carry: metadata, shard, + // requestedFreight, promotionTemplate step skeletons (kind/as/name but + // not config), verification, conditions, currentFreight (history[0]), + // currentPromotion, lastPromotion, health metadata (without output.raw), + // observedGeneration, autoPromotionEnabled. Use summary=false (default) + // to retrieve the full Stage, or GetStage for a single Stage in detail. + bool summary = 3; } // ListStagesResponse contains a list of stages within a project. message ListStagesResponse { - // stages is the list of Stage resources found in the project. + // stages is the list of Stage resources found in the project. When the + // corresponding request set summary=true, each Stage has heavy fields + // stripped: status.freightHistory is truncated to index 0, + // spec.promotionTemplate.spec.steps[*].config is cleared, and + // status.health.output is nil. repeated github.com.akuity.kargo.api.v1alpha1.Stage stages = 1; + // resource_version is the Kubernetes ResourceVersion of the underlying + // StageList. Clients may pass this value to WatchStages to begin watching + // from the exact point this list was taken, receiving only subsequent + // changes without redundant initial events. + string resource_version = 2; } // ListImagesRequest is the request for listing images and their usage across stages. @@ -509,6 +538,24 @@ message GetStageResponse { } } +// GetStageHealthOutputsRequest is the request for fetching the raw health +// output blob of one or more Stages within a project. +message GetStageHealthOutputsRequest { + // project is the name of the project containing the Stages. + string project = 1; + // stage_names is the list of Stage names whose health outputs to return. + // Order is irrelevant; duplicates are deduplicated by the server. + repeated string stage_names = 2 [json_name = "stageNames"]; +} + +// GetStageHealthOutputsResponse contains per-Stage raw health output blobs. +message GetStageHealthOutputsResponse { + // health_outputs maps Stage name to the raw bytes of its + // Stage.status.health.output.raw field. Stages that do not exist in the + // project or have no health output recorded are omitted from the map. + map health_outputs = 1 [json_name = "healthOutputs"]; +} + // WatchStagesRequest is the request for watching stage changes via streaming. message WatchStagesRequest { // project is the name of the project whose stages should be watched. @@ -519,6 +566,15 @@ message WatchStagesRequest { // When specified, only events for Stages that subscribe to at least one of // the named Warehouses are streamed. repeated string freight_origins = 3 [json_name = "freightOrigins"]; + // summary, when true, applies the same projection as + // ListStagesRequest.summary to each streamed Stage. See the summary + // field on ListStagesRequest for the list of fields stripped. + bool summary = 4; + // resource_version is an optional Kubernetes ResourceVersion. When set, + // the watch begins at the specified version, allowing clients to resume + // from a prior list (see ListStagesResponse.resource_version) or watch + // without missing or duplicating events. + string resource_version = 5; } // WatchStagesResponse contains stage change notifications. @@ -541,6 +597,7 @@ message DeleteStageRequest { message DeleteStageResponse { /* explicitly empty */ } + /* ClusterConfig Messages */ message GetClusterConfigRequest { diff --git a/api/service/v1alpha1/svcv1alpha1connect/service.connect.go b/api/service/v1alpha1/svcv1alpha1connect/service.connect.go index 1d70586252..c18e34314d 100644 --- a/api/service/v1alpha1/svcv1alpha1connect/service.connect.go +++ b/api/service/v1alpha1/svcv1alpha1connect/service.connect.go @@ -64,6 +64,9 @@ const ( KargoServiceListImagesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListImages" // KargoServiceGetStageProcedure is the fully-qualified name of the KargoService's GetStage RPC. KargoServiceGetStageProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetStage" + // KargoServiceGetStageHealthOutputsProcedure is the fully-qualified name of the KargoService's + // GetStageHealthOutputs RPC. + KargoServiceGetStageHealthOutputsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetStageHealthOutputs" // KargoServiceWatchStagesProcedure is the fully-qualified name of the KargoService's WatchStages // RPC. KargoServiceWatchStagesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchStages" @@ -275,6 +278,7 @@ var ( kargoServiceListStagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListStages") kargoServiceListImagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListImages") kargoServiceGetStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetStage") + kargoServiceGetStageHealthOutputsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetStageHealthOutputs") kargoServiceWatchStagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchStages") kargoServiceDeleteStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteStage") kargoServiceGetClusterConfigMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetClusterConfig") @@ -367,13 +371,23 @@ type KargoServiceClient interface { DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error) // RefreshResource triggers a refresh of the specified Kargo resource. RefreshResource(context.Context, *connect.Request[v1alpha1.RefreshResourceRequest]) (*connect.Response[v1alpha1.RefreshResourceResponse], error) - // ListStages retrieves all stages within a project. + // ListStages retrieves all stages within a project. Pass summary=true to + // receive a lightweight projection intended for list and graph views + // (heavy fields are stripped from each returned Stage; see the summary + // field on ListStagesRequest for details). ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error) // ListImages returns available images and their usage across stages. ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error) // GetStage retrieves details of a specific stage. GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error) + // GetStageHealthOutputs returns the raw health output blob for the + // specified Stages in a project. Intended for clients that use + // ListStages with summary=true and need to resolve per-argocd-app + // health only for the Stages currently in viewport. Stages that do not + // exist or have no health output recorded are omitted from the response. + GetStageHealthOutputs(context.Context, *connect.Request[v1alpha1.GetStageHealthOutputsRequest]) (*connect.Response[v1alpha1.GetStageHealthOutputsResponse], error) // WatchStages provides a streaming interface to monitor stage changes. + // Pass summary=true to apply the same projection as ListStages. WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchStagesResponse], error) // DeleteStage removes a stage from the system. DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error) @@ -608,6 +622,12 @@ func NewKargoServiceClient(httpClient connect.HTTPClient, baseURL string, opts . connect.WithSchema(kargoServiceGetStageMethodDescriptor), connect.WithClientOptions(opts...), ), + getStageHealthOutputs: connect.NewClient[v1alpha1.GetStageHealthOutputsRequest, v1alpha1.GetStageHealthOutputsResponse]( + httpClient, + baseURL+KargoServiceGetStageHealthOutputsProcedure, + connect.WithSchema(kargoServiceGetStageHealthOutputsMethodDescriptor), + connect.WithClientOptions(opts...), + ), watchStages: connect.NewClient[v1alpha1.WatchStagesRequest, v1alpha1.WatchStagesResponse]( httpClient, baseURL+KargoServiceWatchStagesProcedure, @@ -1033,6 +1053,7 @@ type kargoServiceClient struct { listStages *connect.Client[v1alpha1.ListStagesRequest, v1alpha1.ListStagesResponse] listImages *connect.Client[v1alpha1.ListImagesRequest, v1alpha1.ListImagesResponse] getStage *connect.Client[v1alpha1.GetStageRequest, v1alpha1.GetStageResponse] + getStageHealthOutputs *connect.Client[v1alpha1.GetStageHealthOutputsRequest, v1alpha1.GetStageHealthOutputsResponse] watchStages *connect.Client[v1alpha1.WatchStagesRequest, v1alpha1.WatchStagesResponse] deleteStage *connect.Client[v1alpha1.DeleteStageRequest, v1alpha1.DeleteStageResponse] getClusterConfig *connect.Client[v1alpha1.GetClusterConfigRequest, v1alpha1.GetClusterConfigResponse] @@ -1164,6 +1185,11 @@ func (c *kargoServiceClient) GetStage(ctx context.Context, req *connect.Request[ return c.getStage.CallUnary(ctx, req) } +// GetStageHealthOutputs calls akuity.io.kargo.service.v1alpha1.KargoService.GetStageHealthOutputs. +func (c *kargoServiceClient) GetStageHealthOutputs(ctx context.Context, req *connect.Request[v1alpha1.GetStageHealthOutputsRequest]) (*connect.Response[v1alpha1.GetStageHealthOutputsResponse], error) { + return c.getStageHealthOutputs.CallUnary(ctx, req) +} + // WatchStages calls akuity.io.kargo.service.v1alpha1.KargoService.WatchStages. func (c *kargoServiceClient) WatchStages(ctx context.Context, req *connect.Request[v1alpha1.WatchStagesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchStagesResponse], error) { return c.watchStages.CallServerStream(ctx, req) @@ -1537,13 +1563,23 @@ type KargoServiceHandler interface { DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error) // RefreshResource triggers a refresh of the specified Kargo resource. RefreshResource(context.Context, *connect.Request[v1alpha1.RefreshResourceRequest]) (*connect.Response[v1alpha1.RefreshResourceResponse], error) - // ListStages retrieves all stages within a project. + // ListStages retrieves all stages within a project. Pass summary=true to + // receive a lightweight projection intended for list and graph views + // (heavy fields are stripped from each returned Stage; see the summary + // field on ListStagesRequest for details). ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error) // ListImages returns available images and their usage across stages. ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error) // GetStage retrieves details of a specific stage. GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error) + // GetStageHealthOutputs returns the raw health output blob for the + // specified Stages in a project. Intended for clients that use + // ListStages with summary=true and need to resolve per-argocd-app + // health only for the Stages currently in viewport. Stages that do not + // exist or have no health output recorded are omitted from the response. + GetStageHealthOutputs(context.Context, *connect.Request[v1alpha1.GetStageHealthOutputsRequest]) (*connect.Response[v1alpha1.GetStageHealthOutputsResponse], error) // WatchStages provides a streaming interface to monitor stage changes. + // Pass summary=true to apply the same projection as ListStages. WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest], *connect.ServerStream[v1alpha1.WatchStagesResponse]) error // DeleteStage removes a stage from the system. DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error) @@ -1774,6 +1810,12 @@ func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOpti connect.WithSchema(kargoServiceGetStageMethodDescriptor), connect.WithHandlerOptions(opts...), ) + kargoServiceGetStageHealthOutputsHandler := connect.NewUnaryHandler( + KargoServiceGetStageHealthOutputsProcedure, + svc.GetStageHealthOutputs, + connect.WithSchema(kargoServiceGetStageHealthOutputsMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) kargoServiceWatchStagesHandler := connect.NewServerStreamHandler( KargoServiceWatchStagesProcedure, svc.WatchStages, @@ -2208,6 +2250,8 @@ func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOpti kargoServiceListImagesHandler.ServeHTTP(w, r) case KargoServiceGetStageProcedure: kargoServiceGetStageHandler.ServeHTTP(w, r) + case KargoServiceGetStageHealthOutputsProcedure: + kargoServiceGetStageHealthOutputsHandler.ServeHTTP(w, r) case KargoServiceWatchStagesProcedure: kargoServiceWatchStagesHandler.ServeHTTP(w, r) case KargoServiceDeleteStageProcedure: @@ -2401,6 +2445,10 @@ func (UnimplementedKargoServiceHandler) GetStage(context.Context, *connect.Reque return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetStage is not implemented")) } +func (UnimplementedKargoServiceHandler) GetStageHealthOutputs(context.Context, *connect.Request[v1alpha1.GetStageHealthOutputsRequest]) (*connect.Response[v1alpha1.GetStageHealthOutputsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetStageHealthOutputs is not implemented")) +} + func (UnimplementedKargoServiceHandler) WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest], *connect.ServerStream[v1alpha1.WatchStagesResponse]) error { return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchStages is not implemented")) } diff --git a/docs/docs/90-api-documentation.md b/docs/docs/90-api-documentation.md index f18a42a2c3..31399b0a44 100644 --- a/docs/docs/90-api-documentation.md +++ b/docs/docs/90-api-documentation.md @@ -27,6 +27,7 @@ Stability is not guaranteed. | ListStages | [ListStagesRequest](#akuity-io-kargo-service-v1alpha1-ListStagesRequest) | [ListStagesResponse](#akuity-io-kargo-service-v1alpha1-ListStagesResponse) | | ListImages | [ListImagesRequest](#akuity-io-kargo-service-v1alpha1-ListImagesRequest) | [ListImagesResponse](#akuity-io-kargo-service-v1alpha1-ListImagesResponse) | | GetStage | [GetStageRequest](#akuity-io-kargo-service-v1alpha1-GetStageRequest) | [GetStageResponse](#akuity-io-kargo-service-v1alpha1-GetStageResponse) | +| GetStageHealthOutputs | [GetStageHealthOutputsRequest](#akuity-io-kargo-service-v1alpha1-GetStageHealthOutputsRequest) | [GetStageHealthOutputsResponse](#akuity-io-kargo-service-v1alpha1-GetStageHealthOutputsResponse) | | WatchStages | [WatchStagesRequest](#akuity-io-kargo-service-v1alpha1-WatchStagesRequest) | [WatchStagesResponse](#akuity-io-kargo-service-v1alpha1-WatchStagesResponse)(stream) | | DeleteStage | [DeleteStageRequest](#akuity-io-kargo-service-v1alpha1-DeleteStageRequest) | [DeleteStageResponse](#akuity-io-kargo-service-v1alpha1-DeleteStageResponse) | | GetClusterConfig | [GetClusterConfigRequest](#akuity-io-kargo-service-v1alpha1-GetClusterConfigRequest) | [GetClusterConfigResponse](#akuity-io-kargo-service-v1alpha1-GetClusterConfigResponse) | @@ -869,6 +870,32 @@ Stability is not guaranteed. | resources | [github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources](#github-com-akuity-kargo-api-rbac-v1alpha1-RoleResources) | resources is a structured RoleResources object encapsulating the Kargo Role's underlying Kubernetes resources. | | raw | [bytes](#bytes) | raw is a raw YAML or JSON representation of the requested resource(s). | + + +### GetStageHealthOutputsRequest + GetStageHealthOutputsRequest is the request for fetching the raw health output blob of one or more Stages within a project. +| Field | Type | Description | +| ----- | ---- | ----------- | +| project | [string](#string) | project is the name of the project containing the Stages. | +| stage_names | [string](#string) | stage_names is the list of Stage names whose health outputs to return. Order is irrelevant; duplicates are deduplicated by the server. | + + + +### GetStageHealthOutputsResponse + GetStageHealthOutputsResponse contains per-Stage raw health output blobs. +| Field | Type | Description | +| ----- | ---- | ----------- | +| health_outputs | [GetStageHealthOutputsResponse.HealthOutputsEntry](#akuity-io-kargo-service-v1alpha1-GetStageHealthOutputsResponse-HealthOutputsEntry) | health_outputs maps Stage name to the raw bytes of its Stage.status.health.output.raw field. Stages that do not exist in the project or have no health output recorded are omitted from the map. | + + + +### GetStageHealthOutputsResponse.HealthOutputsEntry + +| Field | Type | Description | +| ----- | ---- | ----------- | +| key | [string](#string) | | +| value | [bytes](#bytes) | | + ### GetStageRequest @@ -1185,6 +1212,7 @@ Stability is not guaranteed. | ----- | ---- | ----------- | | project | [string](#string) | project is the name of the project whose stages should be listed. | | freight_origins | [string](#string) | freight_origins is an optional list of Warehouse names to filter Stages by. When specified, only Stages that subscribe to at least one of the named Warehouses are returned. | +| summary | [bool](#bool) | summary, when true, strips heavy fields from each Stage in the response. Intended for list and graph views that render many Stages but do not need full FreightHistory, PromotionTemplate step configuration, or the raw health output blob. Stripped Stages still carry: metadata, shard, requestedFreight, promotionTemplate step skeletons (kind/as/name but not config), verification, conditions, currentFreight (history[0]), currentPromotion, lastPromotion, health metadata (without output.raw), observedGeneration, autoPromotionEnabled. Use summary=false (default) to retrieve the full Stage, or GetStage for a single Stage in detail. | @@ -1192,7 +1220,8 @@ Stability is not guaranteed. ListStagesResponse contains a list of stages within a project. | Field | Type | Description | | ----- | ---- | ----------- | -| stages | [github.com.akuity.kargo.api.v1alpha1.Stage](#github-com-akuity-kargo-api-v1alpha1-Stage) | stages is the list of Stage resources found in the project. | +| stages | [github.com.akuity.kargo.api.v1alpha1.Stage](#github-com-akuity-kargo-api-v1alpha1-Stage) | stages is the list of Stage resources found in the project. When the corresponding request set summary=true, each Stage has heavy fields stripped: status.freightHistory is truncated to index 0, spec.promotionTemplate.spec.steps[*].config is cleared, and status.health.output is nil. | +| resource_version | [string](#string) | resource_version is the Kubernetes ResourceVersion of the underlying StageList. Clients may pass this value to WatchStages to begin watching from the exact point this list was taken, receiving only subsequent changes without redundant initial events. | @@ -1603,6 +1632,8 @@ Stability is not guaranteed. | project | [string](#string) | project is the name of the project whose stages should be watched. | | name | [string](#string) | name is the name of a specific stage to watch, if empty all stages in the project are watched. | | freight_origins | [string](#string) | freight_origins is an optional list of Warehouse names to filter Stages by. When specified, only events for Stages that subscribe to at least one of the named Warehouses are streamed. | +| summary | [bool](#bool) | summary, when true, applies the same projection as ListStagesRequest.summary to each streamed Stage. See the summary field on ListStagesRequest for the list of fields stripped. | +| resource_version | [string](#string) | resource_version is an optional Kubernetes ResourceVersion. When set, the watch begins at the specified version, allowing clients to resume from a prior list (see ListStagesResponse.resource_version) or watch without missing or duplicating events. | diff --git a/pkg/api/stage.go b/pkg/api/stage.go index 969c05714d..3eb03392a1 100644 --- a/pkg/api/stage.go +++ b/pkg/api/stage.go @@ -40,6 +40,52 @@ func GetStage( return &stage, nil } +// ListStagesOptions defines the options for listing Stages. +type ListStagesOptions struct { + // Warehouses is an optional list of Warehouse names to filter the Stages by. + Warehouses []string +} + +// ListStagesByWarehouses lists Stages in the given Project, optionally +// filtered by the provided options. +func ListStagesByWarehouses( + ctx context.Context, + c client.Client, + project string, + opts *ListStagesOptions, +) ([]kargoapi.Stage, error) { + if opts == nil { + opts = &ListStagesOptions{} + } + var list kargoapi.StageList + if err := c.List(ctx, &list, client.InNamespace(project)); err != nil { + return nil, err + } + if len(opts.Warehouses) == 0 { + return list.Items, nil + } + var stages []kargoapi.Stage + for _, stage := range list.Items { + if StageMatchesAnyWarehouse(&stage, opts.Warehouses) { + stages = append(stages, stage) + } + } + return stages, nil +} + +// StageMatchesAnyWarehouse returns true if the Stage requests Freight that +// originated from at least one of the specified warehouses, either directly +// or through upstream stages. +func StageMatchesAnyWarehouse(stage *kargoapi.Stage, warehouses []string) bool { + for _, req := range stage.Spec.RequestedFreight { + if req.Origin.Kind == kargoapi.FreightOriginKindWarehouse && + slices.Contains(warehouses, req.Origin.Name) { + return true + } + } + return false +} + // ListFreightAvailableToStage lists all Freight available to the Stage for any // reason. This includes: // @@ -270,3 +316,73 @@ func AbortStageFreightVerification( } return patchAnnotation(ctx, c, stage, kargoapi.AnnotationKeyAbort, ar.String()) } + +// StripStageForSummary mutates the Stage in place, clearing the heavy +// payload fields that list and graph views do not need. The surviving +// shape still preserves has-verification and promotion-step-count +// information (via stage.Spec.Verification != nil and +// len(stage.Spec.PromotionTemplate.Spec.Steps)), so callers do not have +// to refetch via GetStage for those bits. +// +// Stripped fields: +// - status.freightHistory truncated to the current element (index 0) +// - spec.promotionTemplate.spec.steps[*].config cleared (kind/as/name kept) +// - status.health.output cleared (use ListStageHealthOutputs for lazy fetch) +func StripStageForSummary(stage *kargoapi.Stage) { + if stage == nil { + return + } + if len(stage.Status.FreightHistory) > 1 { + stage.Status.FreightHistory = stage.Status.FreightHistory[:1] + } + if stage.Spec.PromotionTemplate != nil { + for i := range stage.Spec.PromotionTemplate.Spec.Steps { + stage.Spec.PromotionTemplate.Spec.Steps[i].Config = nil + } + } + if stage.Status.Health != nil { + stage.Status.Health.Output = nil + } +} + +// ListStageHealthOutputs returns the raw health output blob for each Stage +// in the given project whose name appears in stageNames. Empty and duplicate +// entries in stageNames are ignored. Stages that do not exist in the project +// or have no recorded health output are omitted from the returned map. +// +// Intended for clients that list Stages with the summary projection (see +// StripStageForSummary) and need to lazily resolve per-Stage health only for +// the subset currently in viewport. +func ListStageHealthOutputs( + ctx context.Context, + c client.Client, + project string, + stageNames []string, +) (map[string][]byte, error) { + wanted := make(map[string]struct{}, len(stageNames)) + for _, n := range stageNames { + if n == "" { + continue + } + wanted[n] = struct{}{} + } + if len(wanted) == 0 { + return map[string][]byte{}, nil + } + var list kargoapi.StageList + if err := c.List(ctx, &list, client.InNamespace(project)); err != nil { + return nil, fmt.Errorf("list stages: %w", err) + } + outputs := make(map[string][]byte, len(wanted)) + for i := range list.Items { + st := &list.Items[i] + if _, want := wanted[st.Name]; !want { + continue + } + if st.Status.Health == nil || st.Status.Health.Output == nil { + continue + } + outputs[st.Name] = st.Status.Health.Output.Raw + } + return outputs, nil +} diff --git a/pkg/api/stage_test.go b/pkg/api/stage_test.go index ece6b86743..5f9e9da15a 100644 --- a/pkg/api/stage_test.go +++ b/pkg/api/stage_test.go @@ -69,6 +69,280 @@ func TestGetStage(t *testing.T) { } } +func TestListStagesByWarehouses(t *testing.T) { + const testProject = "fake-namespace" + const otherProject = "other-namespace" + const testWarehouse1 = "fake-warehouse1" + const testWarehouse2 = "fake-warehouse2" + + scheme := k8sruntime.NewScheme() + require.NoError(t, kargoapi.SchemeBuilder.AddToScheme(scheme)) + + stageInProjectFromWarehouse1 := &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: testProject, + Name: "stage-1", + }, + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse1, + }, + }}, + }, + } + stageInProjectFromWarehouse2 := &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: testProject, + Name: "stage-2", + }, + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse2, + }, + }}, + }, + } + stageInOtherProject := &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: otherProject, + Name: "stage-3", + }, + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse1, + }, + }}, + }, + } + + testCases := []struct { + name string + opts *ListStagesOptions + objects []client.Object + interceptor interceptor.Funcs + assertions func(*testing.T, []kargoapi.Stage, error) + }{ + { + name: "error listing Stages", + interceptor: interceptor.Funcs{ + List: func( + context.Context, + client.WithWatch, + client.ObjectList, + ...client.ListOption, + ) error { + return errors.New("something went wrong") + }, + }, + assertions: func(t *testing.T, stages []kargoapi.Stage, err error) { + require.ErrorContains(t, err, "something went wrong") + require.Nil(t, stages) + }, + }, + { + name: "nil opts returns all Stages in Project", + objects: []client.Object{ + stageInProjectFromWarehouse1, + stageInProjectFromWarehouse2, + stageInOtherProject, + }, + assertions: func(t *testing.T, stages []kargoapi.Stage, err error) { + require.NoError(t, err) + require.Len(t, stages, 2) + }, + }, + { + name: "empty Warehouses filter returns all Stages in Project", + opts: &ListStagesOptions{}, + objects: []client.Object{ + stageInProjectFromWarehouse1, + stageInProjectFromWarehouse2, + stageInOtherProject, + }, + assertions: func(t *testing.T, stages []kargoapi.Stage, err error) { + require.NoError(t, err) + require.Len(t, stages, 2) + }, + }, + { + name: "Warehouses filter returns only matching Stages", + opts: &ListStagesOptions{ + Warehouses: []string{testWarehouse1}, + }, + objects: []client.Object{ + stageInProjectFromWarehouse1, + stageInProjectFromWarehouse2, + stageInOtherProject, + }, + assertions: func(t *testing.T, stages []kargoapi.Stage, err error) { + require.NoError(t, err) + require.Len(t, stages, 1) + require.Equal(t, "stage-1", stages[0].Name) + }, + }, + { + name: "Warehouses filter with no matches returns empty", + opts: &ListStagesOptions{ + Warehouses: []string{"unknown-warehouse"}, + }, + objects: []client.Object{ + stageInProjectFromWarehouse1, + stageInProjectFromWarehouse2, + }, + assertions: func(t *testing.T, stages []kargoapi.Stage, err error) { + require.NoError(t, err) + require.Empty(t, stages) + }, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme). + WithObjects(testCase.objects...). + WithInterceptorFuncs(testCase.interceptor). + Build() + stages, err := ListStagesByWarehouses( + t.Context(), c, testProject, testCase.opts, + ) + testCase.assertions(t, stages, err) + }) + } +} + +func TestStageMatchesAnyWarehouse(t *testing.T) { + const testWarehouse1 = "fake-warehouse1" + const testWarehouse2 = "fake-warehouse2" + + testCases := []struct { + name string + stage *kargoapi.Stage + warehouses []string + expected bool + }{ + { + name: "no requested freight", + stage: &kargoapi.Stage{}, + warehouses: []string{testWarehouse1}, + expected: false, + }, + { + name: "empty warehouses list", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse1, + }, + }}, + }, + }, + warehouses: nil, + expected: false, + }, + { + name: "no matching warehouse", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse1, + }, + }}, + }, + }, + warehouses: []string{testWarehouse2}, + expected: false, + }, + { + name: "name matches but origin kind is not Warehouse", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKind("OtherKind"), + Name: testWarehouse1, + }, + }}, + }, + }, + warehouses: []string{testWarehouse1}, + expected: false, + }, + { + name: "single requested freight matches", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse1, + }, + }}, + }, + }, + warehouses: []string{testWarehouse1}, + expected: true, + }, + { + name: "matches one of multiple warehouses", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{{ + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse2, + }, + }}, + }, + }, + warehouses: []string{testWarehouse1, testWarehouse2}, + expected: true, + }, + { + name: "matches one of multiple requested freight", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + RequestedFreight: []kargoapi.FreightRequest{ + { + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: "unrelated-warehouse", + }, + }, + { + Origin: kargoapi.FreightOrigin{ + Kind: kargoapi.FreightOriginKindWarehouse, + Name: testWarehouse1, + }, + }, + }, + }, + }, + warehouses: []string{testWarehouse1}, + expected: true, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + require.Equal( + t, + testCase.expected, + StageMatchesAnyWarehouse(testCase.stage, testCase.warehouses), + ) + }) + } +} + func TestListFreightAvailableToStage(t *testing.T) { const testProject = "fake-namespace" const testWarehouse1 = "fake-warehouse1" @@ -633,3 +907,278 @@ func TestAnnotateStageWithArgoCDContext(t *testing.T) { require.NotContains(t, stage.Annotations, kargoapi.AnnotationKeyArgoCDContext) }) } + +func TestStripStageForSummary(t *testing.T) { + rawConfig := &apiextensionsv1.JSON{Raw: []byte(`{"to":"out"}`)} + rawOutput := &apiextensionsv1.JSON{Raw: []byte(`{"status":"Healthy"}`)} + + testCases := []struct { + name string + stage *kargoapi.Stage + assert func(*testing.T, *kargoapi.Stage) + }{ + { + name: "nil Stage is a no-op", + stage: nil, + assert: func(*testing.T, *kargoapi.Stage) {}, + }, + { + name: "empty Stage is left untouched", + stage: &kargoapi.Stage{}, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.Empty(t, s.Status.FreightHistory) + require.Nil(t, s.Spec.PromotionTemplate) + require.Nil(t, s.Status.Health) + }, + }, + { + name: "FreightHistory with one entry is preserved", + stage: &kargoapi.Stage{ + Status: kargoapi.StageStatus{ + FreightHistory: kargoapi.FreightHistory{ + {Freight: map[string]kargoapi.FreightReference{"w": {Name: "f0"}}}, + }, + }, + }, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.Len(t, s.Status.FreightHistory, 1) + require.Equal(t, "f0", s.Status.FreightHistory[0].Freight["w"].Name) + }, + }, + { + name: "FreightHistory is truncated to the current entry", + stage: &kargoapi.Stage{ + Status: kargoapi.StageStatus{ + FreightHistory: kargoapi.FreightHistory{ + {Freight: map[string]kargoapi.FreightReference{"w": {Name: "f0"}}}, + {Freight: map[string]kargoapi.FreightReference{"w": {Name: "f1"}}}, + {Freight: map[string]kargoapi.FreightReference{"w": {Name: "f2"}}}, + }, + }, + }, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.Len(t, s.Status.FreightHistory, 1) + require.Equal(t, "f0", s.Status.FreightHistory[0].Freight["w"].Name) + }, + }, + { + name: "PromotionTemplate step configs are cleared but skeletons kept", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{ + PromotionTemplate: &kargoapi.PromotionTemplate{ + Spec: kargoapi.PromotionTemplateSpec{ + Steps: []kargoapi.PromotionStep{ + {Uses: "copy", As: "step-0", Config: rawConfig}, + {Uses: "helm-update-image", As: "step-1", Config: rawConfig}, + }, + }, + }, + }, + }, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.Len(t, s.Spec.PromotionTemplate.Spec.Steps, 2) + require.Equal(t, "copy", s.Spec.PromotionTemplate.Spec.Steps[0].Uses) + require.Equal(t, "step-0", s.Spec.PromotionTemplate.Spec.Steps[0].As) + require.Nil(t, s.Spec.PromotionTemplate.Spec.Steps[0].Config) + require.Equal(t, "helm-update-image", s.Spec.PromotionTemplate.Spec.Steps[1].Uses) + require.Nil(t, s.Spec.PromotionTemplate.Spec.Steps[1].Config) + }, + }, + { + name: "nil PromotionTemplate is left untouched", + stage: &kargoapi.Stage{ + Spec: kargoapi.StageSpec{PromotionTemplate: nil}, + }, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.Nil(t, s.Spec.PromotionTemplate) + }, + }, + { + name: "Health.Output is cleared, other Health fields preserved", + stage: &kargoapi.Stage{ + Status: kargoapi.StageStatus{ + Health: &kargoapi.Health{ + Status: kargoapi.HealthStateHealthy, + Output: rawOutput, + }, + }, + }, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.NotNil(t, s.Status.Health) + require.Equal(t, kargoapi.HealthStateHealthy, s.Status.Health.Status) + require.Nil(t, s.Status.Health.Output) + }, + }, + { + name: "nil Health is left untouched", + stage: &kargoapi.Stage{ + Status: kargoapi.StageStatus{Health: nil}, + }, + assert: func(t *testing.T, s *kargoapi.Stage) { + require.Nil(t, s.Status.Health) + }, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + StripStageForSummary(testCase.stage) + testCase.assert(t, testCase.stage) + }) + } +} + +func TestListStageHealthOutputs(t *testing.T) { + const testProject = "fake-namespace" + const otherProject = "other-namespace" + + scheme := k8sruntime.NewScheme() + require.NoError(t, kargoapi.SchemeBuilder.AddToScheme(scheme)) + + withHealth := func(namespace, name, rawJSON string) *kargoapi.Stage { + return &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: name}, + Status: kargoapi.StageStatus{ + Health: &kargoapi.Health{ + Output: &apiextensionsv1.JSON{Raw: []byte(rawJSON)}, + }, + }, + } + } + withoutHealth := func(namespace, name string) *kargoapi.Stage { + return &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: name}, + } + } + + testCases := []struct { + name string + stageNames []string + objects []client.Object + interceptor interceptor.Funcs + assert func(*testing.T, map[string][]byte, error) + }{ + { + name: "nil stageNames returns empty map", + stageNames: nil, + objects: []client.Object{withHealth(testProject, "stage-1", `{"s":1}`)}, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Empty(t, out) + require.NotNil(t, out) + }, + }, + { + name: "only empty strings returns empty map without listing", + stageNames: []string{"", "", ""}, + interceptor: interceptor.Funcs{ + List: func( + context.Context, + client.WithWatch, + client.ObjectList, + ...client.ListOption, + ) error { + t.Fatal("List should not be called when there are no real names") + return nil + }, + }, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Empty(t, out) + }, + }, + { + name: "matching Stage returns its health output", + stageNames: []string{"stage-1"}, + objects: []client.Object{ + withHealth(testProject, "stage-1", `{"s":1}`), + withHealth(testProject, "stage-2", `{"s":2}`), + }, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Len(t, out, 1) + require.JSONEq(t, `{"s":1}`, string(out["stage-1"])) + }, + }, + { + name: "duplicate entries are deduplicated", + stageNames: []string{"stage-1", "stage-1", ""}, + objects: []client.Object{ + withHealth(testProject, "stage-1", `{"s":1}`), + }, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Len(t, out, 1) + require.JSONEq(t, `{"s":1}`, string(out["stage-1"])) + }, + }, + { + name: "Stage without health output is omitted", + stageNames: []string{"stage-1", "stage-no-health"}, + objects: []client.Object{ + withHealth(testProject, "stage-1", `{"s":1}`), + withoutHealth(testProject, "stage-no-health"), + }, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Len(t, out, 1) + require.Contains(t, out, "stage-1") + require.NotContains(t, out, "stage-no-health") + }, + }, + { + name: "unknown name is silently omitted", + stageNames: []string{"stage-1", "does-not-exist"}, + objects: []client.Object{withHealth(testProject, "stage-1", `{"s":1}`)}, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Len(t, out, 1) + require.Contains(t, out, "stage-1") + }, + }, + { + name: "Stages in other namespaces are not returned", + stageNames: []string{"stage-1"}, + objects: []client.Object{ + withHealth(testProject, "stage-1", `{"s":"ours"}`), + withHealth(otherProject, "stage-1", `{"s":"theirs"}`), + }, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.NoError(t, err) + require.Len(t, out, 1) + require.JSONEq(t, `{"s":"ours"}`, string(out["stage-1"])) + }, + }, + { + name: "List error propagates", + stageNames: []string{"stage-1"}, + interceptor: interceptor.Funcs{ + List: func( + context.Context, + client.WithWatch, + client.ObjectList, + ...client.ListOption, + ) error { + return errors.New("boom") + }, + }, + assert: func(t *testing.T, out map[string][]byte, err error) { + require.ErrorContains(t, err, "boom") + require.Nil(t, out) + }, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme). + WithObjects(testCase.objects...). + WithInterceptorFuncs(testCase.interceptor). + Build() + out, err := ListStageHealthOutputs( + t.Context(), c, testProject, testCase.stageNames, + ) + testCase.assert(t, out, err) + }) + } +} diff --git a/pkg/client/generated/core/core_client.go b/pkg/client/generated/core/core_client.go index d71e50fe9c..868ae31c89 100644 --- a/pkg/client/generated/core/core_client.go +++ b/pkg/client/generated/core/core_client.go @@ -97,6 +97,8 @@ type ClientService interface { GetStage(params *GetStageParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetStageOK, error) + GetStageHealthOutputs(params *GetStageHealthOutputsParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetStageHealthOutputsOK, error) + GetSystemConfigMap(params *GetSystemConfigMapParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetSystemConfigMapOK, error) GetWarehouse(params *GetWarehouseParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetWarehouseOK, error) @@ -1178,6 +1180,58 @@ func (a *Client) GetStage(params *GetStageParams, authInfo runtime.ClientAuthInf panic(msg) } +/* + GetStageHealthOutputs gets stage health outputs + + Return the raw health output blob for the specified Stages + +in a project. Stages that do not exist or have no recorded +health output are omitted from the response. Intended for +clients that use ListStages with summary=true (which omits the output +blob) and need to lazily resolve health for Stages currently +in viewport. +*/ +func (a *Client) GetStageHealthOutputs(params *GetStageHealthOutputsParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetStageHealthOutputsOK, error) { + // NOTE: parameters are not validated before sending + if params == nil { + params = NewGetStageHealthOutputsParams() + } + op := &runtime.ClientOperation{ + ID: "GetStageHealthOutputs", + Method: "GET", + PathPattern: "/v1beta1/projects/{project}/stage-health-outputs", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"http"}, + Params: params, + Reader: &GetStageHealthOutputsReader{formats: a.formats}, + AuthInfo: authInfo, + Context: params.Context, + Client: params.HTTPClient, + } + for _, opt := range opts { + opt(op) + } + result, err := a.transport.Submit(op) + if err != nil { + return nil, err + } + + // only one success response has to be checked + success, ok := result.(*GetStageHealthOutputsOK) + if ok { + return success, nil + } + + // unexpected success response. + + // no default response is defined. + // + // safeguard: normally, in the absence of a default response, unknown success responses return an error above: so this is a codegen issue + msg := fmt.Sprintf("unexpected success response for GetStageHealthOutputs: API contract not enforced by server. Client expected to get an error, but got: %T", result) + panic(msg) +} + /* GetSystemConfigMap retrieves a system level config map @@ -1609,7 +1663,8 @@ func (a *Client) ListSharedConfigMaps(params *ListSharedConfigMapsParams, authIn List Stage resources from a project's namespace. Returns a -StageList resource. +StageList resource. Pass summary=true to receive a lightweight +projection for list and graph views. */ func (a *Client) ListStages(params *ListStagesParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*ListStagesOK, error) { // NOTE: parameters are not validated before sending diff --git a/pkg/client/generated/core/get_stage_health_outputs_parameters.go b/pkg/client/generated/core/get_stage_health_outputs_parameters.go new file mode 100644 index 0000000000..0f8f56d485 --- /dev/null +++ b/pkg/client/generated/core/get_stage_health_outputs_parameters.go @@ -0,0 +1,194 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package core + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// NewGetStageHealthOutputsParams creates a new GetStageHealthOutputsParams object, +// with the default timeout for this client. +// +// Default values are not hydrated, since defaults are normally applied by the API server side. +// +// To enforce default values in parameter, use SetDefaults or WithDefaults. +func NewGetStageHealthOutputsParams() *GetStageHealthOutputsParams { + return &GetStageHealthOutputsParams{ + timeout: cr.DefaultTimeout, + } +} + +// NewGetStageHealthOutputsParamsWithTimeout creates a new GetStageHealthOutputsParams object +// with the ability to set a timeout on a request. +func NewGetStageHealthOutputsParamsWithTimeout(timeout time.Duration) *GetStageHealthOutputsParams { + return &GetStageHealthOutputsParams{ + timeout: timeout, + } +} + +// NewGetStageHealthOutputsParamsWithContext creates a new GetStageHealthOutputsParams object +// with the ability to set a context for a request. +func NewGetStageHealthOutputsParamsWithContext(ctx context.Context) *GetStageHealthOutputsParams { + return &GetStageHealthOutputsParams{ + Context: ctx, + } +} + +// NewGetStageHealthOutputsParamsWithHTTPClient creates a new GetStageHealthOutputsParams object +// with the ability to set a custom HTTPClient for a request. +func NewGetStageHealthOutputsParamsWithHTTPClient(client *http.Client) *GetStageHealthOutputsParams { + return &GetStageHealthOutputsParams{ + HTTPClient: client, + } +} + +/* +GetStageHealthOutputsParams contains all the parameters to send to the API endpoint + + for the get stage health outputs operation. + + Typically these are written to a http.Request. +*/ +type GetStageHealthOutputsParams struct { + + /* Project. + + Project name + */ + Project string + + /* StageNames. + + Stage names to fetch health outputs for + */ + StageNames []string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithDefaults hydrates default values in the get stage health outputs params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *GetStageHealthOutputsParams) WithDefaults() *GetStageHealthOutputsParams { + o.SetDefaults() + return o +} + +// SetDefaults hydrates default values in the get stage health outputs params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *GetStageHealthOutputsParams) SetDefaults() { + // no default values defined for this parameter +} + +// WithTimeout adds the timeout to the get stage health outputs params +func (o *GetStageHealthOutputsParams) WithTimeout(timeout time.Duration) *GetStageHealthOutputsParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the get stage health outputs params +func (o *GetStageHealthOutputsParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the get stage health outputs params +func (o *GetStageHealthOutputsParams) WithContext(ctx context.Context) *GetStageHealthOutputsParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the get stage health outputs params +func (o *GetStageHealthOutputsParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the get stage health outputs params +func (o *GetStageHealthOutputsParams) WithHTTPClient(client *http.Client) *GetStageHealthOutputsParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the get stage health outputs params +func (o *GetStageHealthOutputsParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithProject adds the project to the get stage health outputs params +func (o *GetStageHealthOutputsParams) WithProject(project string) *GetStageHealthOutputsParams { + o.SetProject(project) + return o +} + +// SetProject adds the project to the get stage health outputs params +func (o *GetStageHealthOutputsParams) SetProject(project string) { + o.Project = project +} + +// WithStageNames adds the stageNames to the get stage health outputs params +func (o *GetStageHealthOutputsParams) WithStageNames(stageNames []string) *GetStageHealthOutputsParams { + o.SetStageNames(stageNames) + return o +} + +// SetStageNames adds the stageNames to the get stage health outputs params +func (o *GetStageHealthOutputsParams) SetStageNames(stageNames []string) { + o.StageNames = stageNames +} + +// WriteToRequest writes these params to a swagger request +func (o *GetStageHealthOutputsParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + // path param project + if err := r.SetPathParam("project", o.Project); err != nil { + return err + } + + if o.StageNames != nil { + + // binding items for stageNames + joinedStageNames := o.bindParamStageNames(reg) + + // query array param stageNames + if err := r.SetQueryParam("stageNames", joinedStageNames...); err != nil { + return err + } + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +// bindParamGetStageHealthOutputs binds the parameter stageNames +func (o *GetStageHealthOutputsParams) bindParamStageNames(formats strfmt.Registry) []string { + stageNamesIR := o.StageNames + + var stageNamesIC []string + for _, stageNamesIIR := range stageNamesIR { // explode []string + + stageNamesIIV := stageNamesIIR // string as string + stageNamesIC = append(stageNamesIC, stageNamesIIV) + } + + // items.CollectionFormat: "multi" + stageNamesIS := swag.JoinByFormat(stageNamesIC, "multi") + + return stageNamesIS +} diff --git a/pkg/client/generated/core/get_stage_health_outputs_responses.go b/pkg/client/generated/core/get_stage_health_outputs_responses.go new file mode 100644 index 0000000000..954dee2e12 --- /dev/null +++ b/pkg/client/generated/core/get_stage_health_outputs_responses.go @@ -0,0 +1,104 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package core + +import ( + "encoding/json" + stderrors "errors" + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/akuity/kargo/pkg/client/generated/models" +) + +// GetStageHealthOutputsReader is a Reader for the GetStageHealthOutputs structure. +type GetStageHealthOutputsReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *GetStageHealthOutputsReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (any, error) { + switch response.Code() { + case 200: + result := NewGetStageHealthOutputsOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + default: + return nil, runtime.NewAPIError("[GET /v1beta1/projects/{project}/stage-health-outputs] GetStageHealthOutputs", response, response.Code()) + } +} + +// NewGetStageHealthOutputsOK creates a GetStageHealthOutputsOK with default headers values +func NewGetStageHealthOutputsOK() *GetStageHealthOutputsOK { + return &GetStageHealthOutputsOK{} +} + +/* +GetStageHealthOutputsOK describes a response with status code 200, with default header values. + +OK +*/ +type GetStageHealthOutputsOK struct { + Payload *models.GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse +} + +// IsSuccess returns true when this get stage health outputs o k response has a 2xx status code +func (o *GetStageHealthOutputsOK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this get stage health outputs o k response has a 3xx status code +func (o *GetStageHealthOutputsOK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this get stage health outputs o k response has a 4xx status code +func (o *GetStageHealthOutputsOK) IsClientError() bool { + return false +} + +// IsServerError returns true when this get stage health outputs o k response has a 5xx status code +func (o *GetStageHealthOutputsOK) IsServerError() bool { + return false +} + +// IsCode returns true when this get stage health outputs o k response a status code equal to that given +func (o *GetStageHealthOutputsOK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the get stage health outputs o k response +func (o *GetStageHealthOutputsOK) Code() int { + return 200 +} + +func (o *GetStageHealthOutputsOK) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /v1beta1/projects/{project}/stage-health-outputs][%d] getStageHealthOutputsOK %s", 200, payload) +} + +func (o *GetStageHealthOutputsOK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /v1beta1/projects/{project}/stage-health-outputs][%d] getStageHealthOutputsOK %s", 200, payload) +} + +func (o *GetStageHealthOutputsOK) GetPayload() *models.GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse { + return o.Payload +} + +func (o *GetStageHealthOutputsOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && !stderrors.Is(err, io.EOF) { + return err + } + + return nil +} diff --git a/pkg/client/generated/core/list_stages_parameters.go b/pkg/client/generated/core/list_stages_parameters.go index 8c83f517f9..b57780503b 100644 --- a/pkg/client/generated/core/list_stages_parameters.go +++ b/pkg/client/generated/core/list_stages_parameters.go @@ -71,6 +71,12 @@ type ListStagesParams struct { */ Project string + /* Summary. + + Strip heavy fields from each Stage + */ + Summary *bool + timeout time.Duration Context context.Context HTTPClient *http.Client @@ -146,6 +152,17 @@ func (o *ListStagesParams) SetProject(project string) { o.Project = project } +// WithSummary adds the summary to the list stages params +func (o *ListStagesParams) WithSummary(summary *bool) *ListStagesParams { + o.SetSummary(summary) + return o +} + +// SetSummary adds the summary to the list stages params +func (o *ListStagesParams) SetSummary(summary *bool) { + o.Summary = summary +} + // WriteToRequest writes these params to a swagger request func (o *ListStagesParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { @@ -170,6 +187,23 @@ func (o *ListStagesParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Re return err } + if o.Summary != nil { + + // query param summary + var qrSummary bool + + if o.Summary != nil { + qrSummary = *o.Summary + } + qSummary := swag.FormatBool(qrSummary) + if qSummary != "" { + + if err := r.SetQueryParam("summary", qSummary); err != nil { + return err + } + } + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } diff --git a/pkg/client/generated/models/github_com_akuity_kargo_api_service_v1alpha1_get_stage_health_outputs_response.go b/pkg/client/generated/models/github_com_akuity_kargo_api_service_v1alpha1_get_stage_health_outputs_response.go new file mode 100644 index 0000000000..0ffb541c21 --- /dev/null +++ b/pkg/client/generated/models/github_com_akuity_kargo_api_service_v1alpha1_get_stage_health_outputs_response.go @@ -0,0 +1,49 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +import ( + "context" + + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse github com akuity kargo api service v1alpha1 get stage health outputs response +// +// swagger:model github_com_akuity_kargo_api_service_v1alpha1.GetStageHealthOutputsResponse +type GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse struct { + + // health_outputs maps Stage name to the raw bytes of its + // Stage.status.health.output.raw field. Stages that do not exist in the + // project or have no health output recorded are omitted from the map. + HealthOutputs map[string][]int32 `json:"health_outputs,omitempty"` +} + +// Validate validates this github com akuity kargo api service v1alpha1 get stage health outputs response +func (m *GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this github com akuity kargo api service v1alpha1 get stage health outputs response based on context it is used +func (m *GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse) UnmarshalBinary(b []byte) error { + var res GithubComAkuityKargoAPIServiceV1alpha1GetStageHealthOutputsResponse + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/server/get_stage_health_outputs_v1alpha1.go b/pkg/server/get_stage_health_outputs_v1alpha1.go new file mode 100644 index 0000000000..b8b9921e9c --- /dev/null +++ b/pkg/server/get_stage_health_outputs_v1alpha1.go @@ -0,0 +1,97 @@ +package server + +import ( + "context" + "fmt" + "net/http" + + "connectrpc.com/connect" + "github.com/gin-gonic/gin" + + svcv1alpha1 "github.com/akuity/kargo/api/service/v1alpha1" + "github.com/akuity/kargo/pkg/api" +) + +// maxStageHealthOutputsBatch is a soft limit on the number of Stage names a +// single GetStageHealthOutputs call may request. Chosen to comfortably +// exceed the largest known project scale while still bounding worst-case +// response size. +const maxStageHealthOutputsBatch = 1000 + +// GetStageHealthOutputs returns the raw health output blob for the specified +// Stages in a project. Stages that do not exist or have no health output +// recorded are omitted from the response map. Intended for clients that use +// ListStages with summary=true for the list and lazily resolve per-argocd-app +// health for Stages currently in viewport. +func (s *server) GetStageHealthOutputs( + ctx context.Context, + req *connect.Request[svcv1alpha1.GetStageHealthOutputsRequest], +) (*connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], error) { + project := req.Msg.GetProject() + if err := validateFieldNotEmpty("project", project); err != nil { + return nil, err + } + + if err := s.validateProjectExists(ctx, project); err != nil { + return nil, err + } + + stageNames := req.Msg.GetStageNames() + if len(stageNames) > maxStageHealthOutputsBatch { + return nil, connect.NewError( + connect.CodeInvalidArgument, + fmt.Errorf( + "stage_names exceeds maximum batch size of %d (got %d)", + maxStageHealthOutputsBatch, len(stageNames), + ), + ) + } + + outputs, err := api.ListStageHealthOutputs(ctx, s.client, project, stageNames) + if err != nil { + return nil, err + } + + return connect.NewResponse(&svcv1alpha1.GetStageHealthOutputsResponse{ + HealthOutputs: outputs, + }), nil +} + +// @id GetStageHealthOutputs +// @Summary Get Stage Health Outputs +// @Description Return the raw health output blob for the specified Stages +// @Description in a project. Stages that do not exist or have no recorded +// @Description health output are omitted from the response. Intended for +// @Description clients that use ListStages with summary=true (which omits the output +// @Description blob) and need to lazily resolve health for Stages currently +// @Description in viewport. +// @Tags Core, Project-Level +// @Security BearerAuth +// @Produce json +// @Param project path string true "Project name" +// @Param stageNames query []string true "Stage names to fetch health outputs for" collectionFormat(multi) +// @Success 200 {object} svcv1alpha1.GetStageHealthOutputsResponse +// @Router /v1beta1/projects/{project}/stage-health-outputs [get] +func (s *server) getStageHealthOutputs(c *gin.Context) { + ctx := c.Request.Context() + project := c.Param("project") + + stageNames := c.QueryArray("stageNames") + if len(stageNames) > maxStageHealthOutputsBatch { + _ = c.Error(fmt.Errorf( + "stageNames exceeds maximum batch size of %d (got %d)", + maxStageHealthOutputsBatch, len(stageNames), + )) + return + } + + outputs, err := api.ListStageHealthOutputs(ctx, s.client, project, stageNames) + if err != nil { + _ = c.Error(err) + return + } + + c.JSON(http.StatusOK, &svcv1alpha1.GetStageHealthOutputsResponse{ + HealthOutputs: outputs, + }) +} diff --git a/pkg/server/get_stage_health_outputs_v1alpha1_test.go b/pkg/server/get_stage_health_outputs_v1alpha1_test.go new file mode 100644 index 0000000000..bfca49c8b6 --- /dev/null +++ b/pkg/server/get_stage_health_outputs_v1alpha1_test.go @@ -0,0 +1,263 @@ +package server + +import ( + "context" + "encoding/json" + "fmt" + "net/http" + "net/http/httptest" + "testing" + + "connectrpc.com/connect" + "github.com/stretchr/testify/require" + corev1 "k8s.io/api/core/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/rest" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" + + svcv1alpha1 "github.com/akuity/kargo/api/service/v1alpha1" + kargoapi "github.com/akuity/kargo/api/v1alpha1" + "github.com/akuity/kargo/pkg/server/config" + "github.com/akuity/kargo/pkg/server/kubernetes" + "github.com/akuity/kargo/pkg/server/validation" +) + +func TestGetStageHealthOutputs(t *testing.T) { + const projectName = "kargo-demo" + + stageWithOutput := func(name, raw string) *kargoapi.Stage { + return &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{Namespace: projectName, Name: name}, + Status: kargoapi.StageStatus{ + Health: &kargoapi.Health{ + Status: kargoapi.HealthStateHealthy, + Output: &apiextensionsv1.JSON{Raw: []byte(raw)}, + }, + }, + } + } + stageHealthNoOutput := &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{Namespace: projectName, Name: "no-output"}, + Status: kargoapi.StageStatus{ + Health: &kargoapi.Health{Status: kargoapi.HealthStateHealthy}, + }, + } + stageNoHealth := &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{Namespace: projectName, Name: "no-health"}, + } + + testCases := map[string]struct { + req *svcv1alpha1.GetStageHealthOutputsRequest + assert func(*testing.T, *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], error) + }{ + "empty project": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{Project: ""}, + assert: func(t *testing.T, _ *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.Error(t, err) + require.Equal(t, connect.CodeInvalidArgument, connect.CodeOf(err)) + }, + }, + "non-existing project": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{Project: "does-not-exist"}, + assert: func(t *testing.T, _ *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.Error(t, err) + require.Equal(t, connect.CodeNotFound, connect.CodeOf(err)) + }, + }, + "empty stage_names returns empty map, not error": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{Project: projectName}, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + require.Empty(t, res.Msg.GetHealthOutputs()) + }, + }, + "all empty strings treated as empty": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: []string{"", ""}, + }, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + require.Empty(t, res.Msg.GetHealthOutputs()) + }, + }, + "returns outputs for existing stages with health output": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: []string{"a", "b"}, + }, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + got := res.Msg.GetHealthOutputs() + require.Len(t, got, 2) + require.Equal(t, []byte(`{"app":"a"}`), got["a"]) + require.Equal(t, []byte(`{"app":"b"}`), got["b"]) + }, + }, + "unknown stage names are silently omitted": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: []string{"a", "unknown"}, + }, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + got := res.Msg.GetHealthOutputs() + require.Len(t, got, 1) + require.Contains(t, got, "a") + require.NotContains(t, got, "unknown") + }, + }, + "stage with health but no output is omitted": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: []string{"no-output"}, + }, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + require.Empty(t, res.Msg.GetHealthOutputs()) + }, + }, + "stage with no health is omitted": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: []string{"no-health"}, + }, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + require.Empty(t, res.Msg.GetHealthOutputs()) + }, + }, + "duplicate stage names are deduplicated": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: []string{"a", "a", "a"}, + }, + assert: func(t *testing.T, res *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.NoError(t, err) + got := res.Msg.GetHealthOutputs() + require.Len(t, got, 1) + require.Equal(t, []byte(`{"app":"a"}`), got["a"]) + }, + }, + "batch size cap exceeded": { + req: &svcv1alpha1.GetStageHealthOutputsRequest{ + Project: projectName, + StageNames: manyNames(maxStageHealthOutputsBatch + 1), + }, + assert: func(t *testing.T, _ *connect.Response[svcv1alpha1.GetStageHealthOutputsResponse], err error) { + require.Error(t, err) + require.Equal(t, connect.CodeInvalidArgument, connect.CodeOf(err)) + }, + }, + } + + for name, tc := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() + ctx := t.Context() + kubeClient, err := kubernetes.NewClient( + ctx, + &rest.Config{}, + kubernetes.ClientOptions{ + SkipAuthorization: true, + NewInternalClient: func( + context.Context, *rest.Config, *runtime.Scheme, + ) (client.WithWatch, error) { + return fake.NewClientBuilder(). + WithScheme(mustNewScheme()). + WithObjects( + &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{ + Name: projectName, + Labels: map[string]string{kargoapi.LabelKeyProject: kargoapi.LabelValueTrue}, + }}, + &kargoapi.Project{ObjectMeta: metav1.ObjectMeta{Name: projectName}}, + ). + WithLists(&kargoapi.StageList{Items: []kargoapi.Stage{ + *stageWithOutput("a", `{"app":"a"}`), + *stageWithOutput("b", `{"app":"b"}`), + *stageHealthNoOutput, + *stageNoHealth, + }}). + Build(), nil + }, + }, + ) + require.NoError(t, err) + + svr := &server{client: kubeClient} + svr.externalValidateProjectFn = validation.ValidateProject + + res, err := svr.GetStageHealthOutputs(ctx, connect.NewRequest(tc.req)) + tc.assert(t, res, err) + }) + } +} + +func manyNames(n int) []string { + out := make([]string, n) + for i := range n { + out[i] = fmt.Sprintf("stage-%d", i) + } + return out +} + +func Test_server_getStageHealthOutputs(t *testing.T) { + testProject := &kargoapi.Project{ObjectMeta: metav1.ObjectMeta{Name: "fake-project"}} + + stageWithOutput := func(name, raw string) *kargoapi.Stage { + return &kargoapi.Stage{ + ObjectMeta: metav1.ObjectMeta{Namespace: testProject.Name, Name: name}, + Status: kargoapi.StageStatus{ + Health: &kargoapi.Health{ + Status: kargoapi.HealthStateHealthy, + Output: &apiextensionsv1.JSON{Raw: []byte(raw)}, + }, + }, + } + } + + testRESTEndpoint( + t, &config.ServerConfig{}, + http.MethodGet, "/v1beta1/projects/"+testProject.Name+"/stage-health-outputs", + []restTestCase{ + { + name: "project does not exist", + assertions: func(t *testing.T, w *httptest.ResponseRecorder, _ client.Client) { + require.Equal(t, http.StatusNotFound, w.Code) + }, + }, + { + name: "empty stageNames returns empty map", + clientBuilder: fake.NewClientBuilder().WithObjects(testProject), + assertions: func(t *testing.T, w *httptest.ResponseRecorder, _ client.Client) { + require.Equal(t, http.StatusOK, w.Code) + resp := &svcv1alpha1.GetStageHealthOutputsResponse{} + require.NoError(t, json.Unmarshal(w.Body.Bytes(), resp)) + require.Empty(t, resp.GetHealthOutputs()) + }, + }, + { + name: "returns only requested stages that have output", + url: "/v1beta1/projects/" + testProject.Name + "/stage-health-outputs?stageNames=a&stageNames=c", + clientBuilder: fake.NewClientBuilder().WithObjects( + testProject, + stageWithOutput("a", `{"app":"a"}`), + stageWithOutput("b", `{"app":"b"}`), + ), + assertions: func(t *testing.T, w *httptest.ResponseRecorder, _ client.Client) { + require.Equal(t, http.StatusOK, w.Code) + resp := &svcv1alpha1.GetStageHealthOutputsResponse{} + require.NoError(t, json.Unmarshal(w.Body.Bytes(), resp)) + got := resp.GetHealthOutputs() + require.Len(t, got, 1) + require.Equal(t, []byte(`{"app":"a"}`), got["a"]) + require.NotContains(t, got, "b") + require.NotContains(t, got, "c") + }, + }, + }, + ) +} diff --git a/pkg/server/list_stages_v1alpha1.go b/pkg/server/list_stages_v1alpha1.go index 6bac4a094f..23cd5a82e3 100644 --- a/pkg/server/list_stages_v1alpha1.go +++ b/pkg/server/list_stages_v1alpha1.go @@ -14,6 +14,7 @@ import ( svcv1alpha1 "github.com/akuity/kargo/api/service/v1alpha1" kargoapi "github.com/akuity/kargo/api/v1alpha1" + "github.com/akuity/kargo/pkg/api" "github.com/akuity/kargo/pkg/logging" ) @@ -32,55 +33,93 @@ func (s *server) ListStages( warehouses := req.Msg.GetFreightOrigins() - items, err := s.listStagesByWarehouses(ctx, project, warehouses) - if err != nil { + // The ConnectRPC response carries resource_version for list-then-watch, + // so the list call is done inline here rather than via + // api.ListStagesByWarehouses (which does not surface the list's + // ResourceVersion). Filtering is delegated to api.StageMatchesAnyWarehouse + // so the matching logic stays in one place. + var list kargoapi.StageList + if err := s.client.List(ctx, &list, client.InNamespace(project)); err != nil { return nil, fmt.Errorf("list stages: %w", err) } + items := list.Items + if len(warehouses) > 0 { + items = items[:0:0] + for _, stage := range list.Items { + if api.StageMatchesAnyWarehouse(&stage, warehouses) { + items = append(items, stage) + } + } + } slices.SortFunc(items, func(a, b kargoapi.Stage) int { return strings.Compare(a.Name, b.Name) }) + summary := req.Msg.GetSummary() stages := make([]*kargoapi.Stage, len(items)) for idx := range items { + if summary { + api.StripStageForSummary(&items[idx]) + } stages[idx] = &items[idx] } return connect.NewResponse(&svcv1alpha1.ListStagesResponse{ - Stages: stages, + Stages: stages, + ResourceVersion: list.ResourceVersion, }), nil } // @id ListStages // @Summary List Stages // @Description List Stage resources from a project's namespace. Returns a -// @Description StageList resource. +// @Description StageList resource. Pass summary=true to receive a lightweight +// @Description projection for list and graph views. // @Tags Core, Project-Level // @Security BearerAuth // @Produce json // @Param project path string true "Project name" // @Param freightOrigins query []string false "Warehouse names to filter Stages by" +// @Param summary query bool false "Strip heavy fields from each Stage" // @Success 200 {object} kargoapi.StageList "StageList custom resource (github.com/akuity/kargo/api/v1alpha1.StageList)" // @Router /v1beta1/projects/{project}/stages [get] func (s *server) listStages(c *gin.Context) { ctx := c.Request.Context() project := c.Param("project") warehouses := c.QueryArray("freightOrigins") + summary := c.Query("summary") == trueStr if watchMode := c.Query("watch") == trueStr; watchMode { - s.watchStages(c, project, warehouses) + s.watchStages(c, project, warehouses, summary) return } - items, err := s.listStagesByWarehouses(ctx, project, warehouses) + items, err := api.ListStagesByWarehouses( + ctx, + s.client, + project, + &api.ListStagesOptions{Warehouses: warehouses}, + ) if err != nil { _ = c.Error(err) return } + if summary { + for i := range items { + api.StripStageForSummary(&items[i]) + } + } + c.JSON(http.StatusOK, &kargoapi.StageList{Items: items}) } -func (s *server) watchStages(c *gin.Context, project string, warehouses []string) { +func (s *server) watchStages( + c *gin.Context, + project string, + warehouses []string, + summary bool, +) { ctx := c.Request.Context() logger := logging.LoggerFromContext(ctx) @@ -119,51 +158,17 @@ func (s *server) watchStages(c *gin.Context, project string, warehouses []string continue } - if len(warehouses) > 0 && !stageMatchesAnyWarehouse(stage, warehouses) { + if len(warehouses) > 0 && !api.StageMatchesAnyWarehouse(stage, warehouses) { continue } + if summary { + api.StripStageForSummary(stage) + } + if !sendSSEWatchEvent(c, e.Type, stage) { return } } } } - -// listStagesByWarehouses lists Stages in the given project, optionally -// filtered to those that request Freight from at least one of the specified -// warehouses (directly or through upstream stages). When warehouses is empty, -// all Stages are returned. -func (s *server) listStagesByWarehouses( - ctx context.Context, - project string, - warehouses []string, -) ([]kargoapi.Stage, error) { - var list kargoapi.StageList - if err := s.client.List(ctx, &list, client.InNamespace(project)); err != nil { - return nil, err - } - if len(warehouses) == 0 { - return list.Items, nil - } - var stages []kargoapi.Stage - for _, stage := range list.Items { - if stageMatchesAnyWarehouse(&stage, warehouses) { - stages = append(stages, stage) - } - } - return stages, nil -} - -// stageMatchesAnyWarehouse returns true if the Stage requests Freight that -// originated from at least one of the specified warehouses, either directly -// or through upstream stages. -func stageMatchesAnyWarehouse(stage *kargoapi.Stage, warehouses []string) bool { - for _, req := range stage.Spec.RequestedFreight { - if req.Origin.Kind == kargoapi.FreightOriginKindWarehouse && - slices.Contains(warehouses, req.Origin.Name) { - return true - } - } - return false -} diff --git a/pkg/server/rest_router.go b/pkg/server/rest_router.go index fca39b259a..54ea0fac25 100644 --- a/pkg/server/rest_router.go +++ b/pkg/server/rest_router.go @@ -190,6 +190,7 @@ func (s *server) setupRESTRouter(ctx context.Context) *gin.Engine { // Stages project.GET("/stages", s.listStages) + project.GET("/stage-health-outputs", s.getStageHealthOutputs) project.GET("/stages/:stage", s.getStage) project.POST("/stages/:stage/refresh", s.refreshStage) project.DELETE("/stages/:stage", s.deleteStage) diff --git a/pkg/server/watch_stages_v1alpha1.go b/pkg/server/watch_stages_v1alpha1.go index 9c58102d38..687305590f 100644 --- a/pkg/server/watch_stages_v1alpha1.go +++ b/pkg/server/watch_stages_v1alpha1.go @@ -5,10 +5,12 @@ import ( "fmt" "connectrpc.com/connect" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" libClient "sigs.k8s.io/controller-runtime/pkg/client" svcv1alpha1 "github.com/akuity/kargo/api/service/v1alpha1" kargoapi "github.com/akuity/kargo/api/v1alpha1" + "github.com/akuity/kargo/pkg/api" "github.com/akuity/kargo/pkg/logging" ) @@ -28,6 +30,7 @@ func (s *server) WatchStages( name := req.Msg.GetName() warehouses := req.Msg.GetFreightOrigins() + summary := req.Msg.GetSummary() if name != "" { if err := s.client.Get(ctx, libClient.ObjectKey{ @@ -42,6 +45,11 @@ func (s *server) WatchStages( if name != "" { watchOpts = append(watchOpts, libClient.MatchingFields{"metadata.name": name}) } + if rv := req.Msg.GetResourceVersion(); rv != "" { + watchOpts = append(watchOpts, &libClient.ListOptions{ + Raw: &metav1.ListOptions{ResourceVersion: rv}, + }) + } w, err := s.client.Watch(ctx, &kargoapi.StageList{}, watchOpts...) if err != nil { return fmt.Errorf("watch stage: %w", err) @@ -61,9 +69,12 @@ func (s *server) WatchStages( if !ok { return fmt.Errorf("unexpected object type %T", e.Object) } - if len(warehouses) > 0 && !stageMatchesAnyWarehouse(stage, warehouses) { + if len(warehouses) > 0 && !api.StageMatchesAnyWarehouse(stage, warehouses) { continue } + if summary { + api.StripStageForSummary(stage) + } if err := stream.Send(&svcv1alpha1.WatchStagesResponse{ Stage: stage, Type: string(e.Type), diff --git a/swagger.json b/swagger.json index dd5246df41..9bab57aaf5 100644 --- a/swagger.json +++ b/swagger.json @@ -2314,6 +2314,53 @@ } } }, + "/v1beta1/projects/{project}/stage-health-outputs": { + "get": { + "security": [ + { + "BearerAuth": [] + } + ], + "description": "Return the raw health output blob for the specified Stages\nin a project. Stages that do not exist or have no recorded\nhealth output are omitted from the response. Intended for\nclients that use ListStages with summary=true (which omits the output\nblob) and need to lazily resolve health for Stages currently\nin viewport.", + "produces": [ + "application/json" + ], + "tags": [ + "Core", + "Project-Level" + ], + "summary": "Get Stage Health Outputs", + "operationId": "GetStageHealthOutputs", + "parameters": [ + { + "type": "string", + "description": "Project name", + "name": "project", + "in": "path", + "required": true + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "Stage names to fetch health outputs for", + "name": "stageNames", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/github_com_akuity_kargo_api_service_v1alpha1.GetStageHealthOutputsResponse" + } + } + } + } + }, "/v1beta1/projects/{project}/stages": { "get": { "security": [ @@ -2321,7 +2368,7 @@ "BearerAuth": [] } ], - "description": "List Stage resources from a project's namespace. Returns a\nStageList resource.", + "description": "List Stage resources from a project's namespace. Returns a\nStageList resource. Pass summary=true to receive a lightweight\nprojection for list and graph views.", "produces": [ "application/json" ], @@ -2348,6 +2395,12 @@ "description": "Warehouse names to filter Stages by", "name": "freightOrigins", "in": "query" + }, + { + "type": "boolean", + "description": "Strip heavy fields from each Stage", + "name": "summary", + "in": "query" } ], "responses": { @@ -5138,6 +5191,22 @@ } } }, + "github_com_akuity_kargo_api_service_v1alpha1.GetStageHealthOutputsResponse": { + "type": "object", + "properties": { + "health_outputs": { + "description": "health_outputs maps Stage name to the raw bytes of its\nStage.status.health.output.raw field. Stages that do not exist in the\nproject or have no health output recorded are omitted from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, "RolloutsAnalysisRun": { "type": "object", "properties": { diff --git a/ui/src/features/project/pipelines/watcher.ts b/ui/src/features/project/pipelines/watcher.ts index 083a088a3c..0da81e8359 100644 --- a/ui/src/features/project/pipelines/watcher.ts +++ b/ui/src/features/project/pipelines/watcher.ts @@ -103,6 +103,7 @@ export class Watcher { }); this.client.setQueryData(listStagesQueryKey, { stages: data, + resourceVersion: '', $typeName: 'akuity.io.kargo.service.v1alpha1.ListStagesResponse' }); diff --git a/ui/src/gen/api/service/v1alpha1/service-KargoService_connectquery.ts b/ui/src/gen/api/service/v1alpha1/service-KargoService_connectquery.ts index 3f74d3023b..70506bc8a2 100644 --- a/ui/src/gen/api/service/v1alpha1/service-KargoService_connectquery.ts +++ b/ui/src/gen/api/service/v1alpha1/service-KargoService_connectquery.ts @@ -72,7 +72,10 @@ export const deleteResource = KargoService.method.deleteResource; export const refreshResource = KargoService.method.refreshResource; /** - * ListStages retrieves all stages within a project. + * ListStages retrieves all stages within a project. Pass summary=true to + * receive a lightweight projection intended for list and graph views + * (heavy fields are stripped from each returned Stage; see the summary + * field on ListStagesRequest for details). * * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListStages */ @@ -92,6 +95,17 @@ export const listImages = KargoService.method.listImages; */ export const getStage = KargoService.method.getStage; +/** + * GetStageHealthOutputs returns the raw health output blob for the + * specified Stages in a project. Intended for clients that use + * ListStages with summary=true and need to resolve per-argocd-app + * health only for the Stages currently in viewport. Stages that do not + * exist or have no health output recorded are omitted from the response. + * + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetStageHealthOutputs + */ +export const getStageHealthOutputs = KargoService.method.getStageHealthOutputs; + /** * DeleteStage removes a stage from the system. * diff --git a/ui/src/gen/api/service/v1alpha1/service_pb.ts b/ui/src/gen/api/service/v1alpha1/service_pb.ts index 3fe914d841..2672454309 100644 --- a/ui/src/gen/api/service/v1alpha1/service_pb.ts +++ b/ui/src/gen/api/service/v1alpha1/service_pb.ts @@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file api/service/v1alpha1/service.proto. */ export const file_api_service_v1alpha1_service: GenFile = /*@__PURE__*/ - fileDesc("CiJhcGkvc2VydmljZS92MWFscGhhMS9zZXJ2aWNlLnByb3RvEiBha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMSKrAQoRQ29tcG9uZW50VmVyc2lvbnMSQgoGc2VydmVyGAEgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVmVyc2lvbkluZm9IAIgBARI/CgNjbGkYAiABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5WZXJzaW9uSW5mb0gBiAEBQgkKB19zZXJ2ZXJCBgoEX2NsaSKyAQoLVmVyc2lvbkluZm8SDwoHdmVyc2lvbhgBIAEoCRISCgpnaXRfY29tbWl0GAIgASgJEhYKDmdpdF90cmVlX2RpcnR5GAMgASgIEi4KCmJ1aWxkX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmdvX3ZlcnNpb24YBSABKAkSEAoIY29tcGlsZXIYBiABKAkSEAoIcGxhdGZvcm0YByABKAkiFwoVR2V0VmVyc2lvbkluZm9SZXF1ZXN0Il0KFkdldFZlcnNpb25JbmZvUmVzcG9uc2USQwoMdmVyc2lvbl9pbmZvGAEgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVmVyc2lvbkluZm8iEgoQR2V0Q29uZmlnUmVxdWVzdCItCgtBcmdvQ0RTaGFyZBILCgN1cmwYASABKAkSEQoJbmFtZXNwYWNlGAIgASgJIsgCChFHZXRDb25maWdSZXNwb25zZRJcCg1hcmdvY2Rfc2hhcmRzGAEgAygLMkUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q29uZmlnUmVzcG9uc2UuQXJnb2NkU2hhcmRzRW50cnkSIQoZc2VjcmV0X21hbmFnZW1lbnRfZW5hYmxlZBgCIAEoCBIiChpzeXN0ZW1fcmVzb3VyY2VzX25hbWVzcGFjZRgDIAEoCRIqCiJoYXNfYW5hbHlzaXNfcnVuX2xvZ3NfdXJsX3RlbXBsYXRlGAQgASgIGmIKEUFyZ29jZFNoYXJkc0VudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFyZ29DRFNoYXJkOgI4ASIYChZHZXRQdWJsaWNDb25maWdSZXF1ZXN0Io4BChdHZXRQdWJsaWNDb25maWdSZXNwb25zZRJBCgtvaWRjX2NvbmZpZxgBIAEoCzIsLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLk9JRENDb25maWcSHQoVYWRtaW5fYWNjb3VudF9lbmFibGVkGAIgASgIEhEKCXNraXBfYXV0aBgDIAEoCCJaCgpPSURDQ29uZmlnEhIKCmlzc3Vlcl91cmwYASABKAkSEQoJY2xpZW50X2lkGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIVCg1jbGlfY2xpZW50X2lkGAQgASgJIiUKEUFkbWluTG9naW5SZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJIiYKEkFkbWluTG9naW5SZXNwb25zZRIQCghpZF90b2tlbhgBIAEoCSIpChVDcmVhdGVSZXNvdXJjZVJlcXVlc3QSEAoIbWFuaWZlc3QYASABKAwiVgoUQ3JlYXRlUmVzb3VyY2VSZXN1bHQSIwoZY3JlYXRlZF9yZXNvdXJjZV9tYW5pZmVzdBgBIAEoDEgAEg8KBWVycm9yGAIgASgJSABCCAoGcmVzdWx0ImEKFkNyZWF0ZVJlc291cmNlUmVzcG9uc2USRwoHcmVzdWx0cxgBIAMoCzI2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVJlc291cmNlUmVzdWx0IjEKHUNyZWF0ZU9yVXBkYXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIoMBChxDcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0EiMKGWNyZWF0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAIgASgMSAASDwoFZXJyb3IYAyABKAlIAEIICgZyZXN1bHQicQoeQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlc3BvbnNlEk8KB3Jlc3VsdHMYASADKAsyPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0IikKFVVwZGF0ZVJlc291cmNlUmVxdWVzdBIQCghtYW5pZmVzdBgBIAEoDCJWChRVcGRhdGVSZXNvdXJjZVJlc3VsdBIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAEgASgMSAASDwoFZXJyb3IYAiABKAlIAEIICgZyZXN1bHQiYQoWVXBkYXRlUmVzb3VyY2VSZXNwb25zZRJHCgdyZXN1bHRzGAEgAygLMjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXN1bHQiKQoVRGVsZXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIlYKFERlbGV0ZVJlc291cmNlUmVzdWx0EiMKGWRlbGV0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIPCgVlcnJvchgCIAEoCUgAQggKBnJlc3VsdCJhChZEZWxldGVSZXNvdXJjZVJlc3BvbnNlEkcKB3Jlc3VsdHMYASADKAsyNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3VsdCI9ChFMaXN0U3RhZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhcKD2ZyZWlnaHRfb3JpZ2lucxgCIAMoCSJRChJMaXN0U3RhZ2VzUmVzcG9uc2USOwoGc3RhZ2VzGAEgAygLMisuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlN0YWdlIiQKEUxpc3RJbWFnZXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkivwEKEkxpc3RJbWFnZXNSZXNwb25zZRJQCgZpbWFnZXMYAiADKAsyQC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0SW1hZ2VzUmVzcG9uc2UuSW1hZ2VzRW50cnkaVwoLSW1hZ2VzRW50cnkSCwoDa2V5GAEgASgJEjcKBXZhbHVlGAIgASgLMiguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVGFnTWFwOgI4ASKoAQoGVGFnTWFwEkAKBHRhZ3MYASADKAsyMi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5UYWdNYXAuVGFnc0VudHJ5GlwKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSPgoFdmFsdWUYAiABKAsyLy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5JbWFnZVN0YWdlTWFwOgI4ASKLAQoNSW1hZ2VTdGFnZU1hcBJLCgZzdGFnZXMYASADKAsyOy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5JbWFnZVN0YWdlTWFwLlN0YWdlc0VudHJ5Gi0KC1N0YWdlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEibQoPR2V0U3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiaQoQR2V0U3RhZ2VSZXNwb25zZRI8CgVzdGFnZRgBIAEoCzIrLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5TdGFnZUgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJMChJXYXRjaFN0YWdlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhcKD2ZyZWlnaHRfb3JpZ2lucxgDIAMoCSJfChNXYXRjaFN0YWdlc1Jlc3BvbnNlEjoKBXN0YWdlGAEgASgLMisuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlN0YWdlEgwKBHR5cGUYAiABKAkiMwoSRGVsZXRlU3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIVChNEZWxldGVTdGFnZVJlc3BvbnNlIlYKF0dldENsdXN0ZXJDb25maWdSZXF1ZXN0EjsKBmZvcm1hdBgBIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKCAQoYR2V0Q2x1c3RlckNvbmZpZ1Jlc3BvbnNlEk0KDmNsdXN0ZXJfY29uZmlnGAEgASgLMjMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkNsdXN0ZXJDb25maWdIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiHAoaRGVsZXRlQ2x1c3RlckNvbmZpZ1JlcXVlc3QiHQobRGVsZXRlQ2x1c3RlckNvbmZpZ1Jlc3BvbnNlIhsKGVdhdGNoQ2x1c3RlckNvbmZpZ1JlcXVlc3QidwoaV2F0Y2hDbHVzdGVyQ29uZmlnUmVzcG9uc2USSwoOY2x1c3Rlcl9jb25maWcYASABKAsyMy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuQ2x1c3RlckNvbmZpZxIMCgR0eXBlGAIgASgJIkYKFUxpc3RQcm9tb3Rpb25zUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhIKBXN0YWdlGAIgASgJSACIAQFCCAoGX3N0YWdlIl0KFkxpc3RQcm9tb3Rpb25zUmVzcG9uc2USQwoKcHJvbW90aW9ucxgBIAMoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb24iRwoWV2F0Y2hQcm9tb3Rpb25zUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhIKBXN0YWdlGAIgASgJSACIAQFCCAoGX3N0YWdlImsKF1dhdGNoUHJvbW90aW9uc1Jlc3BvbnNlEkIKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb24SDAoEdHlwZRgCIAEoCSJxChNHZXRQcm9tb3Rpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQidQoUR2V0UHJvbW90aW9uUmVzcG9uc2USRAoJcHJvbW90aW9uGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbkgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCI2ChVXYXRjaFByb21vdGlvblJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJImoKFldhdGNoUHJvbW90aW9uUmVzcG9uc2USQgoJcHJvbW90aW9uGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbhIMCgR0eXBlGAIgASgJIjYKFUFib3J0UHJvbW90aW9uUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiGAoWQWJvcnRQcm9tb3Rpb25SZXNwb25zZSIkChREZWxldGVQcm9qZWN0UmVxdWVzdBIMCgRuYW1lGAEgASgJIhcKFURlbGV0ZVByb2plY3RSZXNwb25zZSJeChFHZXRQcm9qZWN0UmVxdWVzdBIMCgRuYW1lGAEgASgJEjsKBmZvcm1hdBgCIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJvChJHZXRQcm9qZWN0UmVzcG9uc2USQAoHcHJvamVjdBgBIAEoCzItLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9qZWN0SAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IqABChNMaXN0UHJvamVjdHNSZXF1ZXN0EhYKCXBhZ2Vfc2l6ZRgBIAEoBUgAiAEBEhEKBHBhZ2UYAiABKAVIAYgBARITCgZmaWx0ZXIYAyABKAlIAogBARILCgN1aWQYBCADKAkSEQoEbWluZRgFIAEoCEgDiAEBQgwKCl9wYWdlX3NpemVCBwoFX3BhZ2VCCQoHX2ZpbHRlckIHCgVfbWluZSJmChRMaXN0UHJvamVjdHNSZXNwb25zZRI/Cghwcm9qZWN0cxgBIAMoCzItLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9qZWN0Eg0KBXRvdGFsGAIgASgFImcKF0dldFByb2plY3RDb25maWdSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSOwoGZm9ybWF0GAIgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IoIBChhHZXRQcm9qZWN0Q29uZmlnUmVzcG9uc2USTQoOcHJvamVjdF9jb25maWcYASABKAsyMy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdENvbmZpZ0gAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCItChpEZWxldGVQcm9qZWN0Q29uZmlnUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIh0KG0RlbGV0ZVByb2plY3RDb25maWdSZXNwb25zZSIsChlXYXRjaFByb2plY3RDb25maWdSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkidwoaV2F0Y2hQcm9qZWN0Q29uZmlnUmVzcG9uc2USSwoOcHJvamVjdF9jb25maWcYASABKAsyMy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdENvbmZpZxIMCgR0eXBlGAIgASgJIlQKFUFwcHJvdmVGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSDQoFYWxpYXMYAyABKAkSDQoFc3RhZ2UYBCABKAkiGAoWQXBwcm92ZUZyZWlnaHRSZXNwb25zZSJEChREZWxldGVGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSDQoFYWxpYXMYAyABKAkiFwoVRGVsZXRlRnJlaWdodFJlc3BvbnNlIn4KEUdldEZyZWlnaHRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRINCgVhbGlhcxgDIAEoCRI7CgZmb3JtYXQYBCABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQibwoSR2V0RnJlaWdodFJlc3BvbnNlEkAKB2ZyZWlnaHQYASABKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuRnJlaWdodEgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCI3ChNXYXRjaEZyZWlnaHRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDwoHb3JpZ2lucxgCIAMoCSJkChRXYXRjaEZyZWlnaHRSZXNwb25zZRI+CgdmcmVpZ2h0GAEgASgLMi0uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkZyZWlnaHQSDAoEdHlwZRgCIAEoCSJfChVQcm9tb3RlVG9TdGFnZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRINCgVzdGFnZRgCIAEoCRIPCgdmcmVpZ2h0GAMgASgJEhUKDWZyZWlnaHRfYWxpYXMYBCABKAkiXAoWUHJvbW90ZVRvU3RhZ2VSZXNwb25zZRJCCglwcm9tb3Rpb24YASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uImIKGFByb21vdGVEb3duc3RyZWFtUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJEg8KB2ZyZWlnaHQYAyABKAkSFQoNZnJlaWdodF9hbGlhcxgEIAEoCSJgChlQcm9tb3RlRG93bnN0cmVhbVJlc3BvbnNlEkMKCnByb21vdGlvbnMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uIooBChNRdWVyeUZyZWlnaHRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkSEAoIZ3JvdXBfYnkYAyABKAkSDQoFZ3JvdXAYBCABKAkSEAoIb3JkZXJfYnkYBSABKAkSDwoHcmV2ZXJzZRgGIAEoCBIPCgdvcmlnaW5zGAcgAygJIsgBChRRdWVyeUZyZWlnaHRSZXNwb25zZRJSCgZncm91cHMYASADKAsyQi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5RdWVyeUZyZWlnaHRSZXNwb25zZS5Hcm91cHNFbnRyeRpcCgtHcm91cHNFbnRyeRILCgNrZXkYASABKAkSPAoFdmFsdWUYAiABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5GcmVpZ2h0TGlzdDoCOAEiTQoLRnJlaWdodExpc3QSPgoHZnJlaWdodBgBIAMoCzItLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5GcmVpZ2h0ImAKGVVwZGF0ZUZyZWlnaHRBbGlhc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhEKCW9sZF9hbGlhcxgDIAEoCRIRCgluZXdfYWxpYXMYBCABKAkiHAoaVXBkYXRlRnJlaWdodEFsaWFzUmVzcG9uc2UiMQoPUmV2ZXJpZnlSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkiEgoQUmV2ZXJpZnlSZXNwb25zZSI6ChhBYm9ydFZlcmlmaWNhdGlvblJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRINCgVzdGFnZRgCIAEoCSIbChlBYm9ydFZlcmlmaWNhdGlvblJlc3BvbnNlIigKFUxpc3RXYXJlaG91c2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIl0KFkxpc3RXYXJlaG91c2VzUmVzcG9uc2USQwoKd2FyZWhvdXNlcxgBIAMoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2UicQoTR2V0V2FyZWhvdXNlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0InUKFEdldFdhcmVob3VzZVJlc3BvbnNlEkQKCXdhcmVob3VzZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2VIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiNwoWV2F0Y2hXYXJlaG91c2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiawoXV2F0Y2hXYXJlaG91c2VzUmVzcG9uc2USQgoJd2FyZWhvdXNlGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLldhcmVob3VzZRIMCgR0eXBlGAIgASgJIjcKFkRlbGV0ZVdhcmVob3VzZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhkKF0RlbGV0ZVdhcmVob3VzZVJlc3BvbnNlIvQBChZDcmVhdGVDb25maWdNYXBSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgBIAEoCBIPCgdwcm9qZWN0GAIgASgJEgwKBG5hbWUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSUAoEZGF0YRgFIAMoCzJCLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZUNvbmZpZ01hcFJlcXVlc3QuRGF0YUVudHJ5EhEKCXJlcGxpY2F0ZRgGIAEoCBorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJMChdDcmVhdGVDb25maWdNYXBSZXNwb25zZRIxCgpjb25maWdfbWFwGAEgASgLMh0uazhzLmlvLmFwaS5jb3JlLnYxLkNvbmZpZ01hcCJNChZEZWxldGVDb25maWdNYXBSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgBIAEoCBIPCgdwcm9qZWN0GAIgASgJEgwKBG5hbWUYAyABKAkiGQoXRGVsZXRlQ29uZmlnTWFwUmVzcG9uc2UiPgoVTGlzdENvbmZpZ01hcHNSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgCIAEoCBIPCgdwcm9qZWN0GAEgASgJIkwKFkxpc3RDb25maWdNYXBzUmVzcG9uc2USMgoLY29uZmlnX21hcHMYASADKAsyHS5rOHMuaW8uYXBpLmNvcmUudjEuQ29uZmlnTWFwIocBChNHZXRDb25maWdNYXBSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgEIAEoCBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0ImQKFEdldENvbmZpZ01hcFJlc3BvbnNlEjMKCmNvbmZpZ19tYXAYASABKAsyHS5rOHMuaW8uYXBpLmNvcmUudjEuQ29uZmlnTWFwSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IvQBChZVcGRhdGVDb25maWdNYXBSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgBIAEoCBIPCgdwcm9qZWN0GAIgASgJEgwKBG5hbWUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSUAoEZGF0YRgFIAMoCzJCLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUNvbmZpZ01hcFJlcXVlc3QuRGF0YUVudHJ5EhEKCXJlcGxpY2F0ZRgGIAEoCBorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJMChdVcGRhdGVDb25maWdNYXBSZXNwb25zZRIxCgpjb25maWdfbWFwGAEgASgLMh0uazhzLmlvLmFwaS5jb3JlLnYxLkNvbmZpZ01hcCLKAQocQ3JlYXRlUmVwb0NyZWRlbnRpYWxzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YCCABKAkSDAoEdHlwZRgDIAEoCRIZCghyZXBvX3VybBgEIAEoCVIHcmVwb1VSTBIpChFyZXBvX3VybF9pc19yZWdleBgFIAEoCFIOcmVwb1VSTElzUmVnZXgSEAoIdXNlcm5hbWUYBiABKAkSEAoIcGFzc3dvcmQYByABKAkiUAodQ3JlYXRlUmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USLwoLY3JlZGVudGlhbHMYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0Ij0KHERlbGV0ZVJlcG9DcmVkZW50aWFsc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIh8KHURlbGV0ZVJlcG9DcmVkZW50aWFsc1Jlc3BvbnNlIncKGUdldFJlcG9DcmVkZW50aWFsc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJoChpHZXRSZXBvQ3JlZGVudGlhbHNSZXNwb25zZRIxCgtjcmVkZW50aWFscxgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiLQoaTGlzdFJlcG9DcmVkZW50aWFsc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJOChtMaXN0UmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USLwoLY3JlZGVudGlhbHMYASADKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0IsoBChxVcGRhdGVSZXBvQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIMCgR0eXBlGAMgASgJEhkKCHJlcG9fdXJsGAQgASgJUgdyZXBvVVJMEikKEXJlcG9fdXJsX2lzX3JlZ2V4GAUgASgIUg5yZXBvVVJMSXNSZWdleBIQCgh1c2VybmFtZRgGIAEoCRIQCghwYXNzd29yZBgHIAEoCSJQCh1VcGRhdGVSZXBvQ3JlZGVudGlhbHNSZXNwb25zZRIvCgtjcmVkZW50aWFscxgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXQiRgodTGlzdEdlbmVyaWNDcmVkZW50aWFsc1JlcXVlc3QSFAoMc3lzdGVtX2xldmVsGAIgASgIEg8KB3Byb2plY3QYASABKAkiUQoeTGlzdEdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgAygLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCKGAgofQ3JlYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYBiABKAgSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJElkKBGRhdGEYBCADKAsySy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0LkRhdGFFbnRyeRIRCglyZXBsaWNhdGUYBSABKAgaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwogQ3JlYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVzcG9uc2USLwoLY3JlZGVudGlhbHMYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0IoYCCh9VcGRhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgGIAEoCBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSWQoEZGF0YRgEIAMoCzJLLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUdlbmVyaWNDcmVkZW50aWFsc1JlcXVlc3QuRGF0YUVudHJ5EhEKCXJlcGxpY2F0ZRgFIAEoCBorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJTCiBVcGRhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXNwb25zZRIvCgtjcmVkZW50aWFscxgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXQiVgofRGVsZXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYAyABKAgSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIiIKIERlbGV0ZUdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlIi8KHExpc3RBbmFseXNpc1RlbXBsYXRlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSKCAQodTGlzdEFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USYQoSYW5hbHlzaXNfdGVtcGxhdGVzGAEgAygLMkUuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnN0dWJzLnJvbGxvdXRzLnYxYWxwaGExLkFuYWx5c2lzVGVtcGxhdGUieAoaR2V0QW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKaAQobR2V0QW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEmIKEWFuYWx5c2lzX3RlbXBsYXRlGAEgASgLMkUuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnN0dWJzLnJvbGxvdXRzLnYxYWxwaGExLkFuYWx5c2lzVGVtcGxhdGVIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiPgodRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIiAKHkRlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZSIlCiNMaXN0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVzUmVxdWVzdCKzAQokTGlzdENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlc1Jlc3BvbnNlEooBChpjbHVzdGVyX2FuYWx5c2lzX3RlbXBsYXRlcxgBIAMoCzJMLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5zdHVicy5yb2xsb3V0cy52MWFscGhhMS5DbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVIYY2x1c3RlcmFuYWx5c2lzVGVtcGxhdGVzIm4KIUdldENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlUmVxdWVzdBIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKwAQoiR2V0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRJxChljbHVzdGVyX2FuYWx5c2lzX3RlbXBsYXRlGAEgASgLMkwuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnN0dWJzLnJvbGxvdXRzLnYxYWxwaGExLkNsdXN0ZXJBbmFseXNpc1RlbXBsYXRlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjQKJERlbGV0ZUNsdXN0ZXJBbmFseXNpc1RlbXBsYXRlUmVxdWVzdBIMCgRuYW1lGAIgASgJIicKJURlbGV0ZUNsdXN0ZXJBbmFseXNpc1RlbXBsYXRlUmVzcG9uc2UidQoVR2V0QW5hbHlzaXNSdW5SZXF1ZXN0EhEKCW5hbWVzcGFjZRgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKLAQoWR2V0QW5hbHlzaXNSdW5SZXNwb25zZRJYCgxhbmFseXNpc19ydW4YASABKAsyQC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkuc3R1YnMucm9sbG91dHMudjFhbHBoYTEuQW5hbHlzaXNSdW5IABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiaQoZR2V0QW5hbHlzaXNSdW5Mb2dzUmVxdWVzdBIRCgluYW1lc3BhY2UYASABKAkSDAoEbmFtZRgCIAEoCRITCgttZXRyaWNfbmFtZRgDIAEoCRIWCg5jb250YWluZXJfbmFtZRgEIAEoCSIrChpHZXRBbmFseXNpc1J1bkxvZ3NSZXNwb25zZRINCgVjaHVuaxgBIAEoCSIrChhMaXN0UHJvamVjdEV2ZW50c1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJGChlMaXN0UHJvamVjdEV2ZW50c1Jlc3BvbnNlEikKBmV2ZW50cxgBIAMoCzIZLms4cy5pby5hcGkuY29yZS52MS5FdmVudCIsChlMaXN0UHJvbW90aW9uVGFza3NSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkiagoaTGlzdFByb21vdGlvblRhc2tzUmVzcG9uc2USTAoPcHJvbW90aW9uX3Rhc2tzGAEgAygLMjMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvblRhc2sidQoXR2V0UHJvbW90aW9uVGFza1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKCAQoYR2V0UHJvbW90aW9uVGFza1Jlc3BvbnNlEk0KDnByb21vdGlvbl90YXNrGAEgASgLMjMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvblRhc2tIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiIgogTGlzdENsdXN0ZXJQcm9tb3Rpb25UYXNrc1JlcXVlc3QigAEKIUxpc3RDbHVzdGVyUHJvbW90aW9uVGFza3NSZXNwb25zZRJbChdjbHVzdGVyX3Byb21vdGlvbl90YXNrcxgBIAMoCzI6LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5DbHVzdGVyUHJvbW90aW9uVGFzayJrCh5HZXRDbHVzdGVyUHJvbW90aW9uVGFza1JlcXVlc3QSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQipgEKH0dldENsdXN0ZXJQcm9tb3Rpb25UYXNrUmVzcG9uc2USagoOcHJvbW90aW9uX3Rhc2sYASABKAsyOi5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuQ2x1c3RlclByb21vdGlvblRhc2tIAFIUY2x1c3RlclByb21vdGlvblRhc2sSDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IlIKEUNyZWF0ZVJvbGVSZXF1ZXN0Ej0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIlMKEkNyZWF0ZVJvbGVSZXNwb25zZRI9CgRyb2xlGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnJiYWMudjFhbHBoYTEuUm9sZSIyChFEZWxldGVSb2xlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIpgBCg5HZXRSb2xlUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYBSABKAgSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGFzX3Jlc291cmNlcxgDIAEoCBI7CgZmb3JtYXQYBCABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiugEKD0dldFJvbGVSZXNwb25zZRI/CgRyb2xlGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnJiYWMudjFhbHBoYTEuUm9sZUgAEk0KCXJlc291cmNlcxgCIAEoCzI4LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVSZXNvdXJjZXNIABINCgNyYXcYAyABKAxIAEIICgZyZXN1bHQiSgoGQ2xhaW1zEkAKBmNsYWltcxgBIAMoCzIwLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLkNsYWltItEBCgxHcmFudFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRyb2xlGAIgASgJEj8KC3VzZXJfY2xhaW1zGAMgASgLMiguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ2xhaW1zSAASVgoQcmVzb3VyY2VfZGV0YWlscxgEIAEoCzI6LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJlc291cmNlRGV0YWlsc0gAQgkKB3JlcXVlc3QiTgoNR3JhbnRSZXNwb25zZRI9CgRyb2xlGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnJiYWMudjFhbHBoYTEuUm9sZSJPChBMaXN0Um9sZXNSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgDIAEoCBIPCgdwcm9qZWN0GAEgASgJEhQKDGFzX3Jlc291cmNlcxgCIAEoCCKgAQoRTGlzdFJvbGVzUmVzcG9uc2USPgoFcm9sZXMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlEksKCXJlc291cmNlcxgCIAMoCzI4LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVSZXNvdXJjZXMi0gEKDVJldm9rZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRyb2xlGAIgASgJEj8KC3VzZXJfY2xhaW1zGAMgASgLMiguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ2xhaW1zSAASVgoQcmVzb3VyY2VfZGV0YWlscxgEIAEoCzI6LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJlc291cmNlRGV0YWlsc0gAQgkKB3JlcXVlc3QiTwoOUmV2b2tlUmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUgoRVXBkYXRlUm9sZVJlcXVlc3QSPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUwoSVXBkYXRlUm9sZVJlc3BvbnNlEj0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIl8KFUNyZWF0ZUFQSVRva2VuUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIRCglyb2xlX25hbWUYAyABKAkSDAoEbmFtZRgEIAEoCSJKChZDcmVhdGVBUElUb2tlblJlc3BvbnNlEjAKDHRva2VuX3NlY3JldBgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXQiTAoVRGVsZXRlQVBJVG9rZW5SZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgBIAEoCBIPCgdwcm9qZWN0GAIgASgJEgwKBG5hbWUYAyABKAkiGAoWRGVsZXRlQVBJVG9rZW5SZXNwb25zZSKGAQoSR2V0QVBJVG9rZW5SZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgBIAEoCBIPCgdwcm9qZWN0GAIgASgJEgwKBG5hbWUYAyABKAkSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0ImIKE0dldEFQSVRva2VuUmVzcG9uc2USMgoMdG9rZW5fc2VjcmV0GAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldEgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJQChRMaXN0QVBJVG9rZW5zUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIRCglyb2xlX25hbWUYAyABKAkiSgoVTGlzdEFQSVRva2Vuc1Jlc3BvbnNlEjEKDXRva2VuX3NlY3JldHMYASADKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0Ik4KFlJlZnJlc2hSZXNvdXJjZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhUKDXJlc291cmNlX3R5cGUYAyABKAkiQQoXUmVmcmVzaFJlc291cmNlUmVzcG9uc2USJgoIcmVzb3VyY2UYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55KlEKCVJhd0Zvcm1hdBIaChZSQVdfRk9STUFUX1VOU1BFQ0lGSUVEEAASEwoPUkFXX0ZPUk1BVF9KU09OEAESEwoPUkFXX0ZPUk1BVF9ZQU1MEAIyqlYKDEthcmdvU2VydmljZRKDAQoOR2V0VmVyc2lvbkluZm8SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRWZXJzaW9uSW5mb1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlEnQKCUdldENvbmZpZxIyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldENvbmZpZ1JlcXVlc3QaMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdSZXNwb25zZRKGAQoPR2V0UHVibGljQ29uZmlnEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHVibGljQ29uZmlnUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFB1YmxpY0NvbmZpZ1Jlc3BvbnNlEncKCkFkbWluTG9naW4SMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BZG1pbkxvZ2luUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFkbWluTG9naW5SZXNwb25zZRKDAQoOQ3JlYXRlUmVzb3VyY2USNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXNvdXJjZVJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXNvdXJjZVJlc3BvbnNlEpsBChZDcmVhdGVPclVwZGF0ZVJlc291cmNlEj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlcXVlc3QaQC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzcG9uc2USgwEKDlVwZGF0ZVJlc291cmNlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXNwb25zZRKDAQoORGVsZXRlUmVzb3VyY2USNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3BvbnNlEoYBCg9SZWZyZXNoUmVzb3VyY2USOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SZWZyZXNoUmVzb3VyY2VSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmVmcmVzaFJlc291cmNlUmVzcG9uc2USdwoKTGlzdFN0YWdlcxIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RTdGFnZXNSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFN0YWdlc1Jlc3BvbnNlEncKCkxpc3RJbWFnZXMSMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0SW1hZ2VzUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RJbWFnZXNSZXNwb25zZRJxCghHZXRTdGFnZRIxLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFN0YWdlUmVxdWVzdBoyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFN0YWdlUmVzcG9uc2USfAoLV2F0Y2hTdGFnZXMSNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFN0YWdlc1JlcXVlc3QaNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFN0YWdlc1Jlc3BvbnNlMAESegoLRGVsZXRlU3RhZ2USNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVTdGFnZVJlcXVlc3QaNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVTdGFnZVJlc3BvbnNlEokBChBHZXRDbHVzdGVyQ29uZmlnEjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlckNvbmZpZ1JlcXVlc3QaOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDbHVzdGVyQ29uZmlnUmVzcG9uc2USkgEKE0RlbGV0ZUNsdXN0ZXJDb25maWcSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDbHVzdGVyQ29uZmlnUmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUNsdXN0ZXJDb25maWdSZXNwb25zZRKRAQoSV2F0Y2hDbHVzdGVyQ29uZmlnEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hDbHVzdGVyQ29uZmlnUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoQ2x1c3RlckNvbmZpZ1Jlc3BvbnNlMAESgwEKDkxpc3RQcm9tb3Rpb25zEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXNwb25zZRKIAQoPV2F0Y2hQcm9tb3Rpb25zEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hQcm9tb3Rpb25zUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uc1Jlc3BvbnNlMAESfQoMR2V0UHJvbW90aW9uEjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvbW90aW9uUmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb21vdGlvblJlc3BvbnNlEoUBCg5XYXRjaFByb21vdGlvbhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVzcG9uc2UwARKDAQoOQWJvcnRQcm9tb3Rpb24SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlc3BvbnNlEoABCg1EZWxldGVQcm9qZWN0EjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdFJlcXVlc3QaNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVQcm9qZWN0UmVzcG9uc2USdwoKR2V0UHJvamVjdBIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb2plY3RSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvamVjdFJlc3BvbnNlEn0KDExpc3RQcm9qZWN0cxI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvamVjdHNSZXNwb25zZRKJAQoQR2V0UHJvamVjdENvbmZpZxI5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb2plY3RDb25maWdSZXF1ZXN0GjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvamVjdENvbmZpZ1Jlc3BvbnNlEpIBChNEZWxldGVQcm9qZWN0Q29uZmlnEjwuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdENvbmZpZ1JlcXVlc3QaPS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVQcm9qZWN0Q29uZmlnUmVzcG9uc2USkQEKEldhdGNoUHJvamVjdENvbmZpZxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvamVjdENvbmZpZ1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFByb2plY3RDb25maWdSZXNwb25zZTABEoMBCg5BcHByb3ZlRnJlaWdodBI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFwcHJvdmVGcmVpZ2h0UmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFwcHJvdmVGcmVpZ2h0UmVzcG9uc2USgAEKDURlbGV0ZUZyZWlnaHQSNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVGcmVpZ2h0UmVxdWVzdBo3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUZyZWlnaHRSZXNwb25zZRJ3CgpHZXRGcmVpZ2h0EjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0RnJlaWdodFJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRGcmVpZ2h0UmVzcG9uc2USfwoMV2F0Y2hGcmVpZ2h0EjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hGcmVpZ2h0UmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoRnJlaWdodFJlc3BvbnNlMAESgwEKDlByb21vdGVUb1N0YWdlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZVRvU3RhZ2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZVRvU3RhZ2VSZXNwb25zZRKMAQoRUHJvbW90ZURvd25zdHJlYW0SOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5Qcm9tb3RlRG93bnN0cmVhbVJlcXVlc3QaOy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5Qcm9tb3RlRG93bnN0cmVhbVJlc3BvbnNlEn0KDFF1ZXJ5RnJlaWdodBI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlF1ZXJ5RnJlaWdodFJlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5RdWVyeUZyZWlnaHRSZXNwb25zZRKPAQoSVXBkYXRlRnJlaWdodEFsaWFzEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlRnJlaWdodEFsaWFzUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUZyZWlnaHRBbGlhc1Jlc3BvbnNlEnEKCFJldmVyaWZ5EjEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmV2ZXJpZnlSZXF1ZXN0GjIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmV2ZXJpZnlSZXNwb25zZRKMAQoRQWJvcnRWZXJpZmljYXRpb24SOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFZlcmlmaWNhdGlvblJlcXVlc3QaOy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFZlcmlmaWNhdGlvblJlc3BvbnNlEoMBCg5MaXN0V2FyZWhvdXNlcxI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RXYXJlaG91c2VzUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RXYXJlaG91c2VzUmVzcG9uc2USfQoMR2V0V2FyZWhvdXNlEjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0V2FyZWhvdXNlUmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFdhcmVob3VzZVJlc3BvbnNlEogBCg9XYXRjaFdhcmVob3VzZXMSOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFdhcmVob3VzZXNSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hXYXJlaG91c2VzUmVzcG9uc2UwARKGAQoPRGVsZXRlV2FyZWhvdXNlEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlV2FyZWhvdXNlUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVdhcmVob3VzZVJlc3BvbnNlEpgBChVDcmVhdGVSZXBvQ3JlZGVudGlhbHMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXBvQ3JlZGVudGlhbHNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USmAEKFURlbGV0ZVJlcG9DcmVkZW50aWFscxI+LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVJlcG9DcmVkZW50aWFsc1JlcXVlc3QaPy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXBvQ3JlZGVudGlhbHNSZXNwb25zZRKPAQoSR2V0UmVwb0NyZWRlbnRpYWxzEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UmVwb0NyZWRlbnRpYWxzUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFJlcG9DcmVkZW50aWFsc1Jlc3BvbnNlEpIBChNMaXN0UmVwb0NyZWRlbnRpYWxzEjwuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFJlcG9DcmVkZW50aWFsc1JlcXVlc3QaPS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USmAEKFVVwZGF0ZVJlcG9DcmVkZW50aWFscxI+LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVJlcG9DcmVkZW50aWFsc1JlcXVlc3QaPy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVSZXBvQ3JlZGVudGlhbHNSZXNwb25zZRKbAQoWTGlzdEdlbmVyaWNDcmVkZW50aWFscxI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlEqEBChhDcmVhdGVHZW5lcmljQ3JlZGVudGlhbHMSQS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0GkIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVzcG9uc2USoQEKGFVwZGF0ZUdlbmVyaWNDcmVkZW50aWFscxJBLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUdlbmVyaWNDcmVkZW50aWFsc1JlcXVlc3QaQi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXNwb25zZRKhAQoYRGVsZXRlR2VuZXJpY0NyZWRlbnRpYWxzEkEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVxdWVzdBpCLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlEoYBCg9DcmVhdGVDb25maWdNYXASOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVDb25maWdNYXBSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlQ29uZmlnTWFwUmVzcG9uc2UShgEKD0RlbGV0ZUNvbmZpZ01hcBI4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUNvbmZpZ01hcFJlcXVlc3QaOS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDb25maWdNYXBSZXNwb25zZRKDAQoOTGlzdENvbmZpZ01hcHMSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q29uZmlnTWFwc1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q29uZmlnTWFwc1Jlc3BvbnNlEn0KDEdldENvbmZpZ01hcBI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldENvbmZpZ01hcFJlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdNYXBSZXNwb25zZRKGAQoPVXBkYXRlQ29uZmlnTWFwEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlQ29uZmlnTWFwUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUNvbmZpZ01hcFJlc3BvbnNlEpgBChVMaXN0QW5hbHlzaXNUZW1wbGF0ZXMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USkgEKE0dldEFuYWx5c2lzVGVtcGxhdGUSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1RlbXBsYXRlUmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRKbAQoWRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZRI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEq0BChxMaXN0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVzEkUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlc1JlcXVlc3QaRi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USpwEKGkdldENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlEkMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0GkQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRKwAQodRGVsZXRlQ2x1c3RlckFuYWx5c2lzVGVtcGxhdGUSRi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QaRy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEoMBCg5HZXRBbmFseXNpc1J1bhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVzcG9uc2USkQEKEkdldEFuYWx5c2lzUnVuTG9ncxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuTG9nc1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1J1bkxvZ3NSZXNwb25zZTABEowBChFMaXN0UHJvamVjdEV2ZW50cxI6LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0RXZlbnRzUmVxdWVzdBo7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0RXZlbnRzUmVzcG9uc2USjwEKEkxpc3RQcm9tb3Rpb25UYXNrcxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9tb3Rpb25UYXNrc1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvbW90aW9uVGFza3NSZXNwb25zZRKkAQoZTGlzdENsdXN0ZXJQcm9tb3Rpb25UYXNrcxJCLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RDbHVzdGVyUHJvbW90aW9uVGFza3NSZXF1ZXN0GkMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdENsdXN0ZXJQcm9tb3Rpb25UYXNrc1Jlc3BvbnNlEokBChBHZXRQcm9tb3Rpb25UYXNrEjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvbW90aW9uVGFza1JlcXVlc3QaOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRQcm9tb3Rpb25UYXNrUmVzcG9uc2USngEKF0dldENsdXN0ZXJQcm9tb3Rpb25UYXNrEkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlclByb21vdGlvblRhc2tSZXF1ZXN0GkEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlclByb21vdGlvblRhc2tSZXNwb25zZRJ3CgpDcmVhdGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSb2xlUmVzcG9uc2USdwoKRGVsZXRlUm9sZRIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVJvbGVSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUm9sZVJlc3BvbnNlEm4KB0dldFJvbGUSMC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRSb2xlUmVxdWVzdBoxLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFJvbGVSZXNwb25zZRJoCgVHcmFudBIuLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdyYW50UmVxdWVzdBovLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdyYW50UmVzcG9uc2USdAoJTGlzdFJvbGVzEjIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFJvbGVzUmVxdWVzdBozLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RSb2xlc1Jlc3BvbnNlEmsKBlJldm9rZRIvLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldm9rZVJlcXVlc3QaMC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SZXZva2VSZXNwb25zZRJ3CgpVcGRhdGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVSb2xlUmVzcG9uc2USgwEKDkNyZWF0ZUFQSVRva2VuEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlQVBJVG9rZW5SZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlQVBJVG9rZW5SZXNwb25zZRKDAQoORGVsZXRlQVBJVG9rZW4SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVBUElUb2tlblJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVBUElUb2tlblJlc3BvbnNlEnoKC0dldEFQSVRva2VuEjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0QVBJVG9rZW5SZXF1ZXN0GjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0QVBJVG9rZW5SZXNwb25zZRKAAQoNTGlzdEFQSVRva2VucxI2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RBUElUb2tlbnNSZXF1ZXN0GjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFQSVRva2Vuc1Jlc3BvbnNlQpMCCiRjb20uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTFCDFNlcnZpY2VQcm90b1ABWjhnaXRodWIuY29tL2FrdWl0eS9rYXJnby9hcGkvc2VydmljZS92MWFscGhhMTtzdmN2MWFscGhhMaICBEFJS1OqAiBBa3VpdHkuSW8uS2FyZ28uU2VydmljZS5WMWFscGhhMcoCIEFrdWl0eVxJb1xLYXJnb1xTZXJ2aWNlXFYxYWxwaGEx4gIsQWt1aXR5XElvXEthcmdvXFNlcnZpY2VcVjFhbHBoYTFcR1BCTWV0YWRhdGHqAiRBa3VpdHk6OklvOjpLYXJnbzo6U2VydmljZTo6VjFhbHBoYTFiBnByb3RvMw", [file_google_protobuf_timestamp, file_api_v1alpha1_generated, file_k8s_io_api_core_v1_generated, file_api_stubs_rollouts_v1alpha1_generated, file_api_rbac_v1alpha1_generated, file_google_protobuf_any]); + fileDesc("CiJhcGkvc2VydmljZS92MWFscGhhMS9zZXJ2aWNlLnByb3RvEiBha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMSKrAQoRQ29tcG9uZW50VmVyc2lvbnMSQgoGc2VydmVyGAEgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVmVyc2lvbkluZm9IAIgBARI/CgNjbGkYAiABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5WZXJzaW9uSW5mb0gBiAEBQgkKB19zZXJ2ZXJCBgoEX2NsaSKyAQoLVmVyc2lvbkluZm8SDwoHdmVyc2lvbhgBIAEoCRISCgpnaXRfY29tbWl0GAIgASgJEhYKDmdpdF90cmVlX2RpcnR5GAMgASgIEi4KCmJ1aWxkX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmdvX3ZlcnNpb24YBSABKAkSEAoIY29tcGlsZXIYBiABKAkSEAoIcGxhdGZvcm0YByABKAkiFwoVR2V0VmVyc2lvbkluZm9SZXF1ZXN0Il0KFkdldFZlcnNpb25JbmZvUmVzcG9uc2USQwoMdmVyc2lvbl9pbmZvGAEgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVmVyc2lvbkluZm8iEgoQR2V0Q29uZmlnUmVxdWVzdCItCgtBcmdvQ0RTaGFyZBILCgN1cmwYASABKAkSEQoJbmFtZXNwYWNlGAIgASgJIsgCChFHZXRDb25maWdSZXNwb25zZRJcCg1hcmdvY2Rfc2hhcmRzGAEgAygLMkUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q29uZmlnUmVzcG9uc2UuQXJnb2NkU2hhcmRzRW50cnkSIQoZc2VjcmV0X21hbmFnZW1lbnRfZW5hYmxlZBgCIAEoCBIiChpzeXN0ZW1fcmVzb3VyY2VzX25hbWVzcGFjZRgDIAEoCRIqCiJoYXNfYW5hbHlzaXNfcnVuX2xvZ3NfdXJsX3RlbXBsYXRlGAQgASgIGmIKEUFyZ29jZFNoYXJkc0VudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFyZ29DRFNoYXJkOgI4ASIYChZHZXRQdWJsaWNDb25maWdSZXF1ZXN0Io4BChdHZXRQdWJsaWNDb25maWdSZXNwb25zZRJBCgtvaWRjX2NvbmZpZxgBIAEoCzIsLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLk9JRENDb25maWcSHQoVYWRtaW5fYWNjb3VudF9lbmFibGVkGAIgASgIEhEKCXNraXBfYXV0aBgDIAEoCCJaCgpPSURDQ29uZmlnEhIKCmlzc3Vlcl91cmwYASABKAkSEQoJY2xpZW50X2lkGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIVCg1jbGlfY2xpZW50X2lkGAQgASgJIiUKEUFkbWluTG9naW5SZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJIiYKEkFkbWluTG9naW5SZXNwb25zZRIQCghpZF90b2tlbhgBIAEoCSIpChVDcmVhdGVSZXNvdXJjZVJlcXVlc3QSEAoIbWFuaWZlc3QYASABKAwiVgoUQ3JlYXRlUmVzb3VyY2VSZXN1bHQSIwoZY3JlYXRlZF9yZXNvdXJjZV9tYW5pZmVzdBgBIAEoDEgAEg8KBWVycm9yGAIgASgJSABCCAoGcmVzdWx0ImEKFkNyZWF0ZVJlc291cmNlUmVzcG9uc2USRwoHcmVzdWx0cxgBIAMoCzI2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVJlc291cmNlUmVzdWx0IjEKHUNyZWF0ZU9yVXBkYXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIoMBChxDcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0EiMKGWNyZWF0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAIgASgMSAASDwoFZXJyb3IYAyABKAlIAEIICgZyZXN1bHQicQoeQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlc3BvbnNlEk8KB3Jlc3VsdHMYASADKAsyPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0IikKFVVwZGF0ZVJlc291cmNlUmVxdWVzdBIQCghtYW5pZmVzdBgBIAEoDCJWChRVcGRhdGVSZXNvdXJjZVJlc3VsdBIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAEgASgMSAASDwoFZXJyb3IYAiABKAlIAEIICgZyZXN1bHQiYQoWVXBkYXRlUmVzb3VyY2VSZXNwb25zZRJHCgdyZXN1bHRzGAEgAygLMjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXN1bHQiKQoVRGVsZXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIlYKFERlbGV0ZVJlc291cmNlUmVzdWx0EiMKGWRlbGV0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIPCgVlcnJvchgCIAEoCUgAQggKBnJlc3VsdCJhChZEZWxldGVSZXNvdXJjZVJlc3BvbnNlEkcKB3Jlc3VsdHMYASADKAsyNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3VsdCJOChFMaXN0U3RhZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhcKD2ZyZWlnaHRfb3JpZ2lucxgCIAMoCRIPCgdzdW1tYXJ5GAMgASgIImsKEkxpc3RTdGFnZXNSZXNwb25zZRI7CgZzdGFnZXMYASADKAsyKy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuU3RhZ2USGAoQcmVzb3VyY2VfdmVyc2lvbhgCIAEoCSIkChFMaXN0SW1hZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIr8BChJMaXN0SW1hZ2VzUmVzcG9uc2USUAoGaW1hZ2VzGAIgAygLMkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEltYWdlc1Jlc3BvbnNlLkltYWdlc0VudHJ5GlcKC0ltYWdlc0VudHJ5EgsKA2tleRgBIAEoCRI3CgV2YWx1ZRgCIAEoCzIoLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlRhZ01hcDoCOAEiqAEKBlRhZ01hcBJACgR0YWdzGAEgAygLMjIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVGFnTWFwLlRhZ3NFbnRyeRpcCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEj4KBXZhbHVlGAIgASgLMi8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuSW1hZ2VTdGFnZU1hcDoCOAEiiwEKDUltYWdlU3RhZ2VNYXASSwoGc3RhZ2VzGAEgAygLMjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuSW1hZ2VTdGFnZU1hcC5TdGFnZXNFbnRyeRotCgtTdGFnZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBIm0KD0dldFN0YWdlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0ImkKEEdldFN0YWdlUmVzcG9uc2USPAoFc3RhZ2UYASABKAsyKy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuU3RhZ2VIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiRAocR2V0U3RhZ2VIZWFsdGhPdXRwdXRzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhMKC3N0YWdlX25hbWVzGAIgAygJIsEBCh1HZXRTdGFnZUhlYWx0aE91dHB1dHNSZXNwb25zZRJqCg5oZWFsdGhfb3V0cHV0cxgBIAMoCzJSLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFN0YWdlSGVhbHRoT3V0cHV0c1Jlc3BvbnNlLkhlYWx0aE91dHB1dHNFbnRyeRo0ChJIZWFsdGhPdXRwdXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ASJ3ChJXYXRjaFN0YWdlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhcKD2ZyZWlnaHRfb3JpZ2lucxgDIAMoCRIPCgdzdW1tYXJ5GAQgASgIEhgKEHJlc291cmNlX3ZlcnNpb24YBSABKAkiXwoTV2F0Y2hTdGFnZXNSZXNwb25zZRI6CgVzdGFnZRgBIAEoCzIrLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5TdGFnZRIMCgR0eXBlGAIgASgJIjMKEkRlbGV0ZVN0YWdlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiFQoTRGVsZXRlU3RhZ2VSZXNwb25zZSJWChdHZXRDbHVzdGVyQ29uZmlnUmVxdWVzdBI7CgZmb3JtYXQYASABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiggEKGEdldENsdXN0ZXJDb25maWdSZXNwb25zZRJNCg5jbHVzdGVyX2NvbmZpZxgBIAEoCzIzLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5DbHVzdGVyQ29uZmlnSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IhwKGkRlbGV0ZUNsdXN0ZXJDb25maWdSZXF1ZXN0Ih0KG0RlbGV0ZUNsdXN0ZXJDb25maWdSZXNwb25zZSIbChlXYXRjaENsdXN0ZXJDb25maWdSZXF1ZXN0IncKGldhdGNoQ2x1c3RlckNvbmZpZ1Jlc3BvbnNlEksKDmNsdXN0ZXJfY29uZmlnGAEgASgLMjMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkNsdXN0ZXJDb25maWcSDAoEdHlwZRgCIAEoCSJGChVMaXN0UHJvbW90aW9uc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRISCgVzdGFnZRgCIAEoCUgAiAEBQggKBl9zdGFnZSJdChZMaXN0UHJvbW90aW9uc1Jlc3BvbnNlEkMKCnByb21vdGlvbnMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uIkcKFldhdGNoUHJvbW90aW9uc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRISCgVzdGFnZRgCIAEoCUgAiAEBQggKBl9zdGFnZSJrChdXYXRjaFByb21vdGlvbnNSZXNwb25zZRJCCglwcm9tb3Rpb24YASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uEgwKBHR5cGUYAiABKAkicQoTR2V0UHJvbW90aW9uUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0InUKFEdldFByb21vdGlvblJlc3BvbnNlEkQKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb25IABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiNgoVV2F0Y2hQcm9tb3Rpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSJqChZXYXRjaFByb21vdGlvblJlc3BvbnNlEkIKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb24SDAoEdHlwZRgCIAEoCSI2ChVBYm9ydFByb21vdGlvblJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhgKFkFib3J0UHJvbW90aW9uUmVzcG9uc2UiJAoURGVsZXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCSIXChVEZWxldGVQcm9qZWN0UmVzcG9uc2UiXgoRR2V0UHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRI7CgZmb3JtYXQYAiABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQibwoSR2V0UHJvamVjdFJlc3BvbnNlEkAKB3Byb2plY3QYASABKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdEgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCKgAQoTTGlzdFByb2plY3RzUmVxdWVzdBIWCglwYWdlX3NpemUYASABKAVIAIgBARIRCgRwYWdlGAIgASgFSAGIAQESEwoGZmlsdGVyGAMgASgJSAKIAQESCwoDdWlkGAQgAygJEhEKBG1pbmUYBSABKAhIA4gBAUIMCgpfcGFnZV9zaXplQgcKBV9wYWdlQgkKB19maWx0ZXJCBwoFX21pbmUiZgoUTGlzdFByb2plY3RzUmVzcG9uc2USPwoIcHJvamVjdHMYASADKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdBINCgV0b3RhbBgCIAEoBSJnChdHZXRQcm9qZWN0Q29uZmlnUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEjsKBmZvcm1hdBgCIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKCAQoYR2V0UHJvamVjdENvbmZpZ1Jlc3BvbnNlEk0KDnByb2plY3RfY29uZmlnGAEgASgLMjMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb2plY3RDb25maWdIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiLQoaRGVsZXRlUHJvamVjdENvbmZpZ1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSIdChtEZWxldGVQcm9qZWN0Q29uZmlnUmVzcG9uc2UiLAoZV2F0Y2hQcm9qZWN0Q29uZmlnUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIncKGldhdGNoUHJvamVjdENvbmZpZ1Jlc3BvbnNlEksKDnByb2plY3RfY29uZmlnGAEgASgLMjMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb2plY3RDb25maWcSDAoEdHlwZRgCIAEoCSJUChVBcHByb3ZlRnJlaWdodFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWFsaWFzGAMgASgJEg0KBXN0YWdlGAQgASgJIhgKFkFwcHJvdmVGcmVpZ2h0UmVzcG9uc2UiRAoURGVsZXRlRnJlaWdodFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWFsaWFzGAMgASgJIhcKFURlbGV0ZUZyZWlnaHRSZXNwb25zZSJ+ChFHZXRGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSDQoFYWxpYXMYAyABKAkSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0Im8KEkdldEZyZWlnaHRSZXNwb25zZRJACgdmcmVpZ2h0GAEgASgLMi0uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkZyZWlnaHRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiNwoTV2F0Y2hGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg8KB29yaWdpbnMYAiADKAkiZAoUV2F0Y2hGcmVpZ2h0UmVzcG9uc2USPgoHZnJlaWdodBgBIAEoCzItLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5GcmVpZ2h0EgwKBHR5cGUYAiABKAkiXwoVUHJvbW90ZVRvU3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkSDwoHZnJlaWdodBgDIAEoCRIVCg1mcmVpZ2h0X2FsaWFzGAQgASgJIlwKFlByb21vdGVUb1N0YWdlUmVzcG9uc2USQgoJcHJvbW90aW9uGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbiJiChhQcm9tb3RlRG93bnN0cmVhbVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRINCgVzdGFnZRgCIAEoCRIPCgdmcmVpZ2h0GAMgASgJEhUKDWZyZWlnaHRfYWxpYXMYBCABKAkiYAoZUHJvbW90ZURvd25zdHJlYW1SZXNwb25zZRJDCgpwcm9tb3Rpb25zGAEgAygLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbiKKAQoTUXVlcnlGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJEhAKCGdyb3VwX2J5GAMgASgJEg0KBWdyb3VwGAQgASgJEhAKCG9yZGVyX2J5GAUgASgJEg8KB3JldmVyc2UYBiABKAgSDwoHb3JpZ2lucxgHIAMoCSLIAQoUUXVlcnlGcmVpZ2h0UmVzcG9uc2USUgoGZ3JvdXBzGAEgAygLMkIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUXVlcnlGcmVpZ2h0UmVzcG9uc2UuR3JvdXBzRW50cnkaXAoLR3JvdXBzRW50cnkSCwoDa2V5GAEgASgJEjwKBXZhbHVlGAIgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRnJlaWdodExpc3Q6AjgBIk0KC0ZyZWlnaHRMaXN0Ej4KB2ZyZWlnaHQYASADKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuRnJlaWdodCJgChlVcGRhdGVGcmVpZ2h0QWxpYXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIRCglvbGRfYWxpYXMYAyABKAkSEQoJbmV3X2FsaWFzGAQgASgJIhwKGlVwZGF0ZUZyZWlnaHRBbGlhc1Jlc3BvbnNlIjEKD1JldmVyaWZ5UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJIhIKEFJldmVyaWZ5UmVzcG9uc2UiOgoYQWJvcnRWZXJpZmljYXRpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkiGwoZQWJvcnRWZXJpZmljYXRpb25SZXNwb25zZSIoChVMaXN0V2FyZWhvdXNlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJdChZMaXN0V2FyZWhvdXNlc1Jlc3BvbnNlEkMKCndhcmVob3VzZXMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuV2FyZWhvdXNlInEKE0dldFdhcmVob3VzZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJ1ChRHZXRXYXJlaG91c2VSZXNwb25zZRJECgl3YXJlaG91c2UYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuV2FyZWhvdXNlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjcKFldhdGNoV2FyZWhvdXNlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJImsKF1dhdGNoV2FyZWhvdXNlc1Jlc3BvbnNlEkIKCXdhcmVob3VzZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2USDAoEdHlwZRgCIAEoCSI3ChZEZWxldGVXYXJlaG91c2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIZChdEZWxldGVXYXJlaG91c2VSZXNwb25zZSL0AQoWQ3JlYXRlQ29uZmlnTWFwUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJElAKBGRhdGEYBSADKAsyQi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVDb25maWdNYXBSZXF1ZXN0LkRhdGFFbnRyeRIRCglyZXBsaWNhdGUYBiABKAgaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiTAoXQ3JlYXRlQ29uZmlnTWFwUmVzcG9uc2USMQoKY29uZmlnX21hcBgBIAEoCzIdLms4cy5pby5hcGkuY29yZS52MS5Db25maWdNYXAiTQoWRGVsZXRlQ29uZmlnTWFwUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIMCgRuYW1lGAMgASgJIhkKF0RlbGV0ZUNvbmZpZ01hcFJlc3BvbnNlIj4KFUxpc3RDb25maWdNYXBzUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYAiABKAgSDwoHcHJvamVjdBgBIAEoCSJMChZMaXN0Q29uZmlnTWFwc1Jlc3BvbnNlEjIKC2NvbmZpZ19tYXBzGAEgAygLMh0uazhzLmlvLmFwaS5jb3JlLnYxLkNvbmZpZ01hcCKHAQoTR2V0Q29uZmlnTWFwUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYBCABKAgSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJkChRHZXRDb25maWdNYXBSZXNwb25zZRIzCgpjb25maWdfbWFwGAEgASgLMh0uazhzLmlvLmFwaS5jb3JlLnYxLkNvbmZpZ01hcEgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCL0AQoWVXBkYXRlQ29uZmlnTWFwUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJElAKBGRhdGEYBSADKAsyQi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVDb25maWdNYXBSZXF1ZXN0LkRhdGFFbnRyeRIRCglyZXBsaWNhdGUYBiABKAgaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiTAoXVXBkYXRlQ29uZmlnTWFwUmVzcG9uc2USMQoKY29uZmlnX21hcBgBIAEoCzIdLms4cy5pby5hcGkuY29yZS52MS5Db25maWdNYXAiygEKHENyZWF0ZVJlcG9DcmVkZW50aWFsc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAggASgJEgwKBHR5cGUYAyABKAkSGQoIcmVwb191cmwYBCABKAlSB3JlcG9VUkwSKQoRcmVwb191cmxfaXNfcmVnZXgYBSABKAhSDnJlcG9VUkxJc1JlZ2V4EhAKCHVzZXJuYW1lGAYgASgJEhAKCHBhc3N3b3JkGAcgASgJIlAKHUNyZWF0ZVJlcG9DcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCI9ChxEZWxldGVSZXBvQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIfCh1EZWxldGVSZXBvQ3JlZGVudGlhbHNSZXNwb25zZSJ3ChlHZXRSZXBvQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiaAoaR2V0UmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USMQoLY3JlZGVudGlhbHMYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0SAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0Ii0KGkxpc3RSZXBvQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkiTgobTGlzdFJlcG9DcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgAygLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCLKAQocVXBkYXRlUmVwb0NyZWRlbnRpYWxzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YCCABKAkSDAoEdHlwZRgDIAEoCRIZCghyZXBvX3VybBgEIAEoCVIHcmVwb1VSTBIpChFyZXBvX3VybF9pc19yZWdleBgFIAEoCFIOcmVwb1VSTElzUmVnZXgSEAoIdXNlcm5hbWUYBiABKAkSEAoIcGFzc3dvcmQYByABKAkiUAodVXBkYXRlUmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USLwoLY3JlZGVudGlhbHMYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0IkYKHUxpc3RHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0EhQKDHN5c3RlbV9sZXZlbBgCIAEoCBIPCgdwcm9qZWN0GAEgASgJIlEKHkxpc3RHZW5lcmljQ3JlZGVudGlhbHNSZXNwb25zZRIvCgtjcmVkZW50aWFscxgBIAMoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXQihgIKH0NyZWF0ZUdlbmVyaWNDcmVkZW50aWFsc1JlcXVlc3QSFAoMc3lzdGVtX2xldmVsGAYgASgIEg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRJZCgRkYXRhGAQgAygLMksuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVxdWVzdC5EYXRhRW50cnkSEQoJcmVwbGljYXRlGAUgASgIGisKCURhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIlMKIENyZWF0ZUdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCKGAgofVXBkYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYBiABKAgSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJElkKBGRhdGEYBCADKAsySy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0LkRhdGFFbnRyeRIRCglyZXBsaWNhdGUYBSABKAgaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwogVXBkYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVzcG9uc2USLwoLY3JlZGVudGlhbHMYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0IlYKH0RlbGV0ZUdlbmVyaWNDcmVkZW50aWFsc1JlcXVlc3QSFAoMc3lzdGVtX2xldmVsGAMgASgIEg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIiCiBEZWxldGVHZW5lcmljQ3JlZGVudGlhbHNSZXNwb25zZSIvChxMaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkiggEKHUxpc3RBbmFseXNpc1RlbXBsYXRlc1Jlc3BvbnNlEmEKEmFuYWx5c2lzX3RlbXBsYXRlcxgBIAMoCzJFLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5zdHVicy5yb2xsb3V0cy52MWFscGhhMS5BbmFseXNpc1RlbXBsYXRlIngKGkdldEFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQimgEKG0dldEFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRJiChFhbmFseXNpc190ZW1wbGF0ZRgBIAEoCzJFLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5zdHVicy5yb2xsb3V0cy52MWFscGhhMS5BbmFseXNpc1RlbXBsYXRlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0Ij4KHURlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIgCh5EZWxldGVBbmFseXNpc1RlbXBsYXRlUmVzcG9uc2UiJQojTGlzdENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlc1JlcXVlc3QiswEKJExpc3RDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZXNSZXNwb25zZRKKAQoaY2x1c3Rlcl9hbmFseXNpc190ZW1wbGF0ZXMYASADKAsyTC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkuc3R1YnMucm9sbG91dHMudjFhbHBoYTEuQ2x1c3RlckFuYWx5c2lzVGVtcGxhdGVSGGNsdXN0ZXJhbmFseXNpc1RlbXBsYXRlcyJuCiFHZXRDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQisAEKIkdldENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlUmVzcG9uc2UScQoZY2x1c3Rlcl9hbmFseXNpc190ZW1wbGF0ZRgBIAEoCzJMLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5zdHVicy5yb2xsb3V0cy52MWFscGhhMS5DbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZUgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCI0CiREZWxldGVDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QSDAoEbmFtZRgCIAEoCSInCiVEZWxldGVDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlInUKFUdldEFuYWx5c2lzUnVuUmVxdWVzdBIRCgluYW1lc3BhY2UYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiiwEKFkdldEFuYWx5c2lzUnVuUmVzcG9uc2USWAoMYW5hbHlzaXNfcnVuGAEgASgLMkAuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnN0dWJzLnJvbGxvdXRzLnYxYWxwaGExLkFuYWx5c2lzUnVuSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0ImkKGUdldEFuYWx5c2lzUnVuTG9nc1JlcXVlc3QSEQoJbmFtZXNwYWNlGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLbWV0cmljX25hbWUYAyABKAkSFgoOY29udGFpbmVyX25hbWUYBCABKAkiKwoaR2V0QW5hbHlzaXNSdW5Mb2dzUmVzcG9uc2USDQoFY2h1bmsYASABKAkiKwoYTGlzdFByb2plY3RFdmVudHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkiRgoZTGlzdFByb2plY3RFdmVudHNSZXNwb25zZRIpCgZldmVudHMYASADKAsyGS5rOHMuaW8uYXBpLmNvcmUudjEuRXZlbnQiLAoZTGlzdFByb21vdGlvblRhc2tzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJImoKGkxpc3RQcm9tb3Rpb25UYXNrc1Jlc3BvbnNlEkwKD3Byb21vdGlvbl90YXNrcxgBIAMoCzIzLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb25UYXNrInUKF0dldFByb21vdGlvblRhc2tSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiggEKGEdldFByb21vdGlvblRhc2tSZXNwb25zZRJNCg5wcm9tb3Rpb25fdGFzaxgBIAEoCzIzLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb25UYXNrSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IiIKIExpc3RDbHVzdGVyUHJvbW90aW9uVGFza3NSZXF1ZXN0IoABCiFMaXN0Q2x1c3RlclByb21vdGlvblRhc2tzUmVzcG9uc2USWwoXY2x1c3Rlcl9wcm9tb3Rpb25fdGFza3MYASADKAsyOi5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuQ2x1c3RlclByb21vdGlvblRhc2siawoeR2V0Q2x1c3RlclByb21vdGlvblRhc2tSZXF1ZXN0EgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IqYBCh9HZXRDbHVzdGVyUHJvbW90aW9uVGFza1Jlc3BvbnNlEmoKDnByb21vdGlvbl90YXNrGAEgASgLMjouZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkNsdXN0ZXJQcm9tb3Rpb25UYXNrSABSFGNsdXN0ZXJQcm9tb3Rpb25UYXNrEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJSChFDcmVhdGVSb2xlUmVxdWVzdBI9CgRyb2xlGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnJiYWMudjFhbHBoYTEuUm9sZSJTChJDcmVhdGVSb2xlUmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiMgoRRGVsZXRlUm9sZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhQKEkRlbGV0ZVJvbGVSZXNwb25zZSKYAQoOR2V0Um9sZVJlcXVlc3QSFAoMc3lzdGVtX2xldmVsGAUgASgIEg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIUCgxhc19yZXNvdXJjZXMYAyABKAgSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IroBCg9HZXRSb2xlUmVzcG9uc2USPwoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVIABJNCglyZXNvdXJjZXMYAiABKAsyOC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlUmVzb3VyY2VzSAASDQoDcmF3GAMgASgMSABCCAoGcmVzdWx0IkoKBkNsYWltcxJACgZjbGFpbXMYASADKAsyMC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5DbGFpbSLRAQoMR3JhbnRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEcm9sZRgCIAEoCRI/Cgt1c2VyX2NsYWltcxgDIAEoCzIoLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNsYWltc0gAElYKEHJlc291cmNlX2RldGFpbHMYBCABKAsyOi5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5SZXNvdXJjZURldGFpbHNIAEIJCgdyZXF1ZXN0Ik4KDUdyYW50UmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiTwoQTGlzdFJvbGVzUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYAyABKAgSDwoHcHJvamVjdBgBIAEoCRIUCgxhc19yZXNvdXJjZXMYAiABKAgioAEKEUxpc3RSb2xlc1Jlc3BvbnNlEj4KBXJvbGVzGAEgAygLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnJiYWMudjFhbHBoYTEuUm9sZRJLCglyZXNvdXJjZXMYAiADKAsyOC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlUmVzb3VyY2VzItIBCg1SZXZva2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEcm9sZRgCIAEoCRI/Cgt1c2VyX2NsYWltcxgDIAEoCzIoLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNsYWltc0gAElYKEHJlc291cmNlX2RldGFpbHMYBCABKAsyOi5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5SZXNvdXJjZURldGFpbHNIAEIJCgdyZXF1ZXN0Ik8KDlJldm9rZVJlc3BvbnNlEj0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIlIKEVVwZGF0ZVJvbGVSZXF1ZXN0Ej0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIlMKElVwZGF0ZVJvbGVSZXNwb25zZRI9CgRyb2xlGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnJiYWMudjFhbHBoYTEuUm9sZSJfChVDcmVhdGVBUElUb2tlblJlcXVlc3QSFAoMc3lzdGVtX2xldmVsGAEgASgIEg8KB3Byb2plY3QYAiABKAkSEQoJcm9sZV9uYW1lGAMgASgJEgwKBG5hbWUYBCABKAkiSgoWQ3JlYXRlQVBJVG9rZW5SZXNwb25zZRIwCgx0b2tlbl9zZWNyZXQYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0IkwKFURlbGV0ZUFQSVRva2VuUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIMCgRuYW1lGAMgASgJIhgKFkRlbGV0ZUFQSVRva2VuUmVzcG9uc2UihgEKEkdldEFQSVRva2VuUmVxdWVzdBIUCgxzeXN0ZW1fbGV2ZWwYASABKAgSDwoHcHJvamVjdBgCIAEoCRIMCgRuYW1lGAMgASgJEjsKBmZvcm1hdBgEIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJiChNHZXRBUElUb2tlblJlc3BvbnNlEjIKDHRva2VuX3NlY3JldBgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiUAoUTGlzdEFQSVRva2Vuc1JlcXVlc3QSFAoMc3lzdGVtX2xldmVsGAEgASgIEg8KB3Byb2plY3QYAiABKAkSEQoJcm9sZV9uYW1lGAMgASgJIkoKFUxpc3RBUElUb2tlbnNSZXNwb25zZRIxCg10b2tlbl9zZWNyZXRzGAEgAygLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCJOChZSZWZyZXNoUmVzb3VyY2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIVCg1yZXNvdXJjZV90eXBlGAMgASgJIkEKF1JlZnJlc2hSZXNvdXJjZVJlc3BvbnNlEiYKCHJlc291cmNlGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueSpRCglSYXdGb3JtYXQSGgoWUkFXX0ZPUk1BVF9VTlNQRUNJRklFRBAAEhMKD1JBV19GT1JNQVRfSlNPThABEhMKD1JBV19GT1JNQVRfWUFNTBACMsVXCgxLYXJnb1NlcnZpY2USgwEKDkdldFZlcnNpb25JbmZvEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0VmVyc2lvbkluZm9SZXNwb25zZRJ0CglHZXRDb25maWcSMi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdSZXF1ZXN0GjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q29uZmlnUmVzcG9uc2UShgEKD0dldFB1YmxpY0NvbmZpZxI4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFB1YmxpY0NvbmZpZ1JlcXVlc3QaOS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRQdWJsaWNDb25maWdSZXNwb25zZRJ3CgpBZG1pbkxvZ2luEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQWRtaW5Mb2dpblJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BZG1pbkxvZ2luUmVzcG9uc2USgwEKDkNyZWF0ZVJlc291cmNlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUmVzb3VyY2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUmVzb3VyY2VSZXNwb25zZRKbAQoWQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZRI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZU9yVXBkYXRlUmVzb3VyY2VSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlc3BvbnNlEoMBCg5VcGRhdGVSZXNvdXJjZRI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVJlc291cmNlUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVJlc291cmNlUmVzcG9uc2USgwEKDkRlbGV0ZVJlc291cmNlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUmVzb3VyY2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUmVzb3VyY2VSZXNwb25zZRKGAQoPUmVmcmVzaFJlc291cmNlEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmVmcmVzaFJlc291cmNlUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJlZnJlc2hSZXNvdXJjZVJlc3BvbnNlEncKCkxpc3RTdGFnZXMSMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0U3RhZ2VzUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RTdGFnZXNSZXNwb25zZRJ3CgpMaXN0SW1hZ2VzEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEltYWdlc1JlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0SW1hZ2VzUmVzcG9uc2UScQoIR2V0U3RhZ2USMS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZVJlcXVlc3QaMi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZVJlc3BvbnNlEpgBChVHZXRTdGFnZUhlYWx0aE91dHB1dHMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZUhlYWx0aE91dHB1dHNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0U3RhZ2VIZWFsdGhPdXRwdXRzUmVzcG9uc2USfAoLV2F0Y2hTdGFnZXMSNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFN0YWdlc1JlcXVlc3QaNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFN0YWdlc1Jlc3BvbnNlMAESegoLRGVsZXRlU3RhZ2USNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVTdGFnZVJlcXVlc3QaNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVTdGFnZVJlc3BvbnNlEokBChBHZXRDbHVzdGVyQ29uZmlnEjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlckNvbmZpZ1JlcXVlc3QaOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDbHVzdGVyQ29uZmlnUmVzcG9uc2USkgEKE0RlbGV0ZUNsdXN0ZXJDb25maWcSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDbHVzdGVyQ29uZmlnUmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUNsdXN0ZXJDb25maWdSZXNwb25zZRKRAQoSV2F0Y2hDbHVzdGVyQ29uZmlnEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hDbHVzdGVyQ29uZmlnUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoQ2x1c3RlckNvbmZpZ1Jlc3BvbnNlMAESgwEKDkxpc3RQcm9tb3Rpb25zEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXNwb25zZRKIAQoPV2F0Y2hQcm9tb3Rpb25zEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hQcm9tb3Rpb25zUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uc1Jlc3BvbnNlMAESfQoMR2V0UHJvbW90aW9uEjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvbW90aW9uUmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb21vdGlvblJlc3BvbnNlEoUBCg5XYXRjaFByb21vdGlvbhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVzcG9uc2UwARKDAQoOQWJvcnRQcm9tb3Rpb24SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlc3BvbnNlEoABCg1EZWxldGVQcm9qZWN0EjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdFJlcXVlc3QaNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVQcm9qZWN0UmVzcG9uc2USdwoKR2V0UHJvamVjdBIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb2plY3RSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvamVjdFJlc3BvbnNlEn0KDExpc3RQcm9qZWN0cxI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvamVjdHNSZXNwb25zZRKJAQoQR2V0UHJvamVjdENvbmZpZxI5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb2plY3RDb25maWdSZXF1ZXN0GjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvamVjdENvbmZpZ1Jlc3BvbnNlEpIBChNEZWxldGVQcm9qZWN0Q29uZmlnEjwuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdENvbmZpZ1JlcXVlc3QaPS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVQcm9qZWN0Q29uZmlnUmVzcG9uc2USkQEKEldhdGNoUHJvamVjdENvbmZpZxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvamVjdENvbmZpZ1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFByb2plY3RDb25maWdSZXNwb25zZTABEoMBCg5BcHByb3ZlRnJlaWdodBI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFwcHJvdmVGcmVpZ2h0UmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFwcHJvdmVGcmVpZ2h0UmVzcG9uc2USgAEKDURlbGV0ZUZyZWlnaHQSNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVGcmVpZ2h0UmVxdWVzdBo3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUZyZWlnaHRSZXNwb25zZRJ3CgpHZXRGcmVpZ2h0EjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0RnJlaWdodFJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRGcmVpZ2h0UmVzcG9uc2USfwoMV2F0Y2hGcmVpZ2h0EjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hGcmVpZ2h0UmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoRnJlaWdodFJlc3BvbnNlMAESgwEKDlByb21vdGVUb1N0YWdlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZVRvU3RhZ2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZVRvU3RhZ2VSZXNwb25zZRKMAQoRUHJvbW90ZURvd25zdHJlYW0SOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5Qcm9tb3RlRG93bnN0cmVhbVJlcXVlc3QaOy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5Qcm9tb3RlRG93bnN0cmVhbVJlc3BvbnNlEn0KDFF1ZXJ5RnJlaWdodBI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlF1ZXJ5RnJlaWdodFJlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5RdWVyeUZyZWlnaHRSZXNwb25zZRKPAQoSVXBkYXRlRnJlaWdodEFsaWFzEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlRnJlaWdodEFsaWFzUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUZyZWlnaHRBbGlhc1Jlc3BvbnNlEnEKCFJldmVyaWZ5EjEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmV2ZXJpZnlSZXF1ZXN0GjIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmV2ZXJpZnlSZXNwb25zZRKMAQoRQWJvcnRWZXJpZmljYXRpb24SOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFZlcmlmaWNhdGlvblJlcXVlc3QaOy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFZlcmlmaWNhdGlvblJlc3BvbnNlEoMBCg5MaXN0V2FyZWhvdXNlcxI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RXYXJlaG91c2VzUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RXYXJlaG91c2VzUmVzcG9uc2USfQoMR2V0V2FyZWhvdXNlEjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0V2FyZWhvdXNlUmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFdhcmVob3VzZVJlc3BvbnNlEogBCg9XYXRjaFdhcmVob3VzZXMSOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5XYXRjaFdhcmVob3VzZXNSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hXYXJlaG91c2VzUmVzcG9uc2UwARKGAQoPRGVsZXRlV2FyZWhvdXNlEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlV2FyZWhvdXNlUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVdhcmVob3VzZVJlc3BvbnNlEpgBChVDcmVhdGVSZXBvQ3JlZGVudGlhbHMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXBvQ3JlZGVudGlhbHNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USmAEKFURlbGV0ZVJlcG9DcmVkZW50aWFscxI+LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVJlcG9DcmVkZW50aWFsc1JlcXVlc3QaPy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXBvQ3JlZGVudGlhbHNSZXNwb25zZRKPAQoSR2V0UmVwb0NyZWRlbnRpYWxzEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UmVwb0NyZWRlbnRpYWxzUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFJlcG9DcmVkZW50aWFsc1Jlc3BvbnNlEpIBChNMaXN0UmVwb0NyZWRlbnRpYWxzEjwuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFJlcG9DcmVkZW50aWFsc1JlcXVlc3QaPS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UmVwb0NyZWRlbnRpYWxzUmVzcG9uc2USmAEKFVVwZGF0ZVJlcG9DcmVkZW50aWFscxI+LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVJlcG9DcmVkZW50aWFsc1JlcXVlc3QaPy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVSZXBvQ3JlZGVudGlhbHNSZXNwb25zZRKbAQoWTGlzdEdlbmVyaWNDcmVkZW50aWFscxI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlEqEBChhDcmVhdGVHZW5lcmljQ3JlZGVudGlhbHMSQS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXF1ZXN0GkIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVzcG9uc2USoQEKGFVwZGF0ZUdlbmVyaWNDcmVkZW50aWFscxJBLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUdlbmVyaWNDcmVkZW50aWFsc1JlcXVlc3QaQi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVHZW5lcmljQ3JlZGVudGlhbHNSZXNwb25zZRKhAQoYRGVsZXRlR2VuZXJpY0NyZWRlbnRpYWxzEkEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlR2VuZXJpY0NyZWRlbnRpYWxzUmVxdWVzdBpCLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUdlbmVyaWNDcmVkZW50aWFsc1Jlc3BvbnNlEoYBCg9DcmVhdGVDb25maWdNYXASOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVDb25maWdNYXBSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlQ29uZmlnTWFwUmVzcG9uc2UShgEKD0RlbGV0ZUNvbmZpZ01hcBI4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUNvbmZpZ01hcFJlcXVlc3QaOS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDb25maWdNYXBSZXNwb25zZRKDAQoOTGlzdENvbmZpZ01hcHMSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q29uZmlnTWFwc1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q29uZmlnTWFwc1Jlc3BvbnNlEn0KDEdldENvbmZpZ01hcBI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldENvbmZpZ01hcFJlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdNYXBSZXNwb25zZRKGAQoPVXBkYXRlQ29uZmlnTWFwEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlQ29uZmlnTWFwUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUNvbmZpZ01hcFJlc3BvbnNlEpgBChVMaXN0QW5hbHlzaXNUZW1wbGF0ZXMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USkgEKE0dldEFuYWx5c2lzVGVtcGxhdGUSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1RlbXBsYXRlUmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRKbAQoWRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZRI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEq0BChxMaXN0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVzEkUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlc1JlcXVlc3QaRi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USpwEKGkdldENsdXN0ZXJBbmFseXNpc1RlbXBsYXRlEkMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0GkQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlckFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRKwAQodRGVsZXRlQ2x1c3RlckFuYWx5c2lzVGVtcGxhdGUSRi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QaRy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVDbHVzdGVyQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEoMBCg5HZXRBbmFseXNpc1J1bhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVzcG9uc2USkQEKEkdldEFuYWx5c2lzUnVuTG9ncxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuTG9nc1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1J1bkxvZ3NSZXNwb25zZTABEowBChFMaXN0UHJvamVjdEV2ZW50cxI6LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0RXZlbnRzUmVxdWVzdBo7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0RXZlbnRzUmVzcG9uc2USjwEKEkxpc3RQcm9tb3Rpb25UYXNrcxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9tb3Rpb25UYXNrc1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvbW90aW9uVGFza3NSZXNwb25zZRKkAQoZTGlzdENsdXN0ZXJQcm9tb3Rpb25UYXNrcxJCLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RDbHVzdGVyUHJvbW90aW9uVGFza3NSZXF1ZXN0GkMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdENsdXN0ZXJQcm9tb3Rpb25UYXNrc1Jlc3BvbnNlEokBChBHZXRQcm9tb3Rpb25UYXNrEjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvbW90aW9uVGFza1JlcXVlc3QaOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRQcm9tb3Rpb25UYXNrUmVzcG9uc2USngEKF0dldENsdXN0ZXJQcm9tb3Rpb25UYXNrEkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlclByb21vdGlvblRhc2tSZXF1ZXN0GkEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Q2x1c3RlclByb21vdGlvblRhc2tSZXNwb25zZRJ3CgpDcmVhdGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSb2xlUmVzcG9uc2USdwoKRGVsZXRlUm9sZRIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVJvbGVSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUm9sZVJlc3BvbnNlEm4KB0dldFJvbGUSMC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRSb2xlUmVxdWVzdBoxLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFJvbGVSZXNwb25zZRJoCgVHcmFudBIuLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdyYW50UmVxdWVzdBovLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdyYW50UmVzcG9uc2USdAoJTGlzdFJvbGVzEjIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFJvbGVzUmVxdWVzdBozLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RSb2xlc1Jlc3BvbnNlEmsKBlJldm9rZRIvLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldm9rZVJlcXVlc3QaMC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SZXZva2VSZXNwb25zZRJ3CgpVcGRhdGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVSb2xlUmVzcG9uc2USgwEKDkNyZWF0ZUFQSVRva2VuEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlQVBJVG9rZW5SZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlQVBJVG9rZW5SZXNwb25zZRKDAQoORGVsZXRlQVBJVG9rZW4SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVBUElUb2tlblJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVBUElUb2tlblJlc3BvbnNlEnoKC0dldEFQSVRva2VuEjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0QVBJVG9rZW5SZXF1ZXN0GjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0QVBJVG9rZW5SZXNwb25zZRKAAQoNTGlzdEFQSVRva2VucxI2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RBUElUb2tlbnNSZXF1ZXN0GjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFQSVRva2Vuc1Jlc3BvbnNlQpMCCiRjb20uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTFCDFNlcnZpY2VQcm90b1ABWjhnaXRodWIuY29tL2FrdWl0eS9rYXJnby9hcGkvc2VydmljZS92MWFscGhhMTtzdmN2MWFscGhhMaICBEFJS1OqAiBBa3VpdHkuSW8uS2FyZ28uU2VydmljZS5WMWFscGhhMcoCIEFrdWl0eVxJb1xLYXJnb1xTZXJ2aWNlXFYxYWxwaGEx4gIsQWt1aXR5XElvXEthcmdvXFNlcnZpY2VcVjFhbHBoYTFcR1BCTWV0YWRhdGHqAiRBa3VpdHk6OklvOjpLYXJnbzo6U2VydmljZTo6VjFhbHBoYTFiBnByb3RvMw", [file_google_protobuf_timestamp, file_api_v1alpha1_generated, file_k8s_io_api_core_v1_generated, file_api_stubs_rollouts_v1alpha1_generated, file_api_rbac_v1alpha1_generated, file_google_protobuf_any]); /** * ComponentVersions contains version information for different Kargo components. @@ -705,6 +705,21 @@ export type ListStagesRequest = Message<"akuity.io.kargo.service.v1alpha1.ListSt * @generated from field: repeated string freight_origins = 2; */ freightOrigins: string[]; + + /** + * summary, when true, strips heavy fields from each Stage in the response. + * Intended for list and graph views that render many Stages but do not + * need full FreightHistory, PromotionTemplate step configuration, or the + * raw health output blob. Stripped Stages still carry: metadata, shard, + * requestedFreight, promotionTemplate step skeletons (kind/as/name but + * not config), verification, conditions, currentFreight (history[0]), + * currentPromotion, lastPromotion, health metadata (without output.raw), + * observedGeneration, autoPromotionEnabled. Use summary=false (default) + * to retrieve the full Stage, or GetStage for a single Stage in detail. + * + * @generated from field: bool summary = 3; + */ + summary: boolean; }; /** @@ -721,11 +736,25 @@ export const ListStagesRequestSchema: GenMessage = /*@__PURE_ */ export type ListStagesResponse = Message<"akuity.io.kargo.service.v1alpha1.ListStagesResponse"> & { /** - * stages is the list of Stage resources found in the project. + * stages is the list of Stage resources found in the project. When the + * corresponding request set summary=true, each Stage has heavy fields + * stripped: status.freightHistory is truncated to index 0, + * spec.promotionTemplate.spec.steps[*].config is cleared, and + * status.health.output is nil. * * @generated from field: repeated github.com.akuity.kargo.api.v1alpha1.Stage stages = 1; */ stages: Stage[]; + + /** + * resource_version is the Kubernetes ResourceVersion of the underlying + * StageList. Clients may pass this value to WatchStages to begin watching + * from the exact point this list was taken, receiving only subsequent + * changes without redundant initial events. + * + * @generated from field: string resource_version = 2; + */ + resourceVersion: string; }; /** @@ -889,6 +918,59 @@ export type GetStageResponse = Message<"akuity.io.kargo.service.v1alpha1.GetStag export const GetStageResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_api_service_v1alpha1_service, 31); +/** + * GetStageHealthOutputsRequest is the request for fetching the raw health + * output blob of one or more Stages within a project. + * + * @generated from message akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsRequest + */ +export type GetStageHealthOutputsRequest = Message<"akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsRequest"> & { + /** + * project is the name of the project containing the Stages. + * + * @generated from field: string project = 1; + */ + project: string; + + /** + * stage_names is the list of Stage names whose health outputs to return. + * Order is irrelevant; duplicates are deduplicated by the server. + * + * @generated from field: repeated string stage_names = 2; + */ + stageNames: string[]; +}; + +/** + * Describes the message akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsRequest. + * Use `create(GetStageHealthOutputsRequestSchema)` to create a new message. + */ +export const GetStageHealthOutputsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_api_service_v1alpha1_service, 32); + +/** + * GetStageHealthOutputsResponse contains per-Stage raw health output blobs. + * + * @generated from message akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse + */ +export type GetStageHealthOutputsResponse = Message<"akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse"> & { + /** + * health_outputs maps Stage name to the raw bytes of its + * Stage.status.health.output.raw field. Stages that do not exist in the + * project or have no health output recorded are omitted from the map. + * + * @generated from field: map health_outputs = 1; + */ + healthOutputs: { [key: string]: Uint8Array }; +}; + +/** + * Describes the message akuity.io.kargo.service.v1alpha1.GetStageHealthOutputsResponse. + * Use `create(GetStageHealthOutputsResponseSchema)` to create a new message. + */ +export const GetStageHealthOutputsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_api_service_v1alpha1_service, 33); + /** * WatchStagesRequest is the request for watching stage changes via streaming. * @@ -917,6 +999,25 @@ export type WatchStagesRequest = Message<"akuity.io.kargo.service.v1alpha1.Watch * @generated from field: repeated string freight_origins = 3; */ freightOrigins: string[]; + + /** + * summary, when true, applies the same projection as + * ListStagesRequest.summary to each streamed Stage. See the summary + * field on ListStagesRequest for the list of fields stripped. + * + * @generated from field: bool summary = 4; + */ + summary: boolean; + + /** + * resource_version is an optional Kubernetes ResourceVersion. When set, + * the watch begins at the specified version, allowing clients to resume + * from a prior list (see ListStagesResponse.resource_version) or watch + * without missing or duplicating events. + * + * @generated from field: string resource_version = 5; + */ + resourceVersion: string; }; /** @@ -924,7 +1025,7 @@ export type WatchStagesRequest = Message<"akuity.io.kargo.service.v1alpha1.Watch * Use `create(WatchStagesRequestSchema)` to create a new message. */ export const WatchStagesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 32); + messageDesc(file_api_service_v1alpha1_service, 34); /** * WatchStagesResponse contains stage change notifications. @@ -952,7 +1053,7 @@ export type WatchStagesResponse = Message<"akuity.io.kargo.service.v1alpha1.Watc * Use `create(WatchStagesResponseSchema)` to create a new message. */ export const WatchStagesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 33); + messageDesc(file_api_service_v1alpha1_service, 35); /** * DeleteStageRequest is the request for deleting a stage. @@ -980,7 +1081,7 @@ export type DeleteStageRequest = Message<"akuity.io.kargo.service.v1alpha1.Delet * Use `create(DeleteStageRequestSchema)` to create a new message. */ export const DeleteStageRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 34); + messageDesc(file_api_service_v1alpha1_service, 36); /** * DeleteStageResponse is the response after deleting a stage. @@ -997,7 +1098,7 @@ export type DeleteStageResponse = Message<"akuity.io.kargo.service.v1alpha1.Dele * Use `create(DeleteStageResponseSchema)` to create a new message. */ export const DeleteStageResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 35); + messageDesc(file_api_service_v1alpha1_service, 37); /** * @generated from message akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest @@ -1014,7 +1115,7 @@ export type GetClusterConfigRequest = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(GetClusterConfigRequestSchema)` to create a new message. */ export const GetClusterConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 36); + messageDesc(file_api_service_v1alpha1_service, 38); /** * @generated from message akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse @@ -1043,7 +1144,7 @@ export type GetClusterConfigResponse = Message<"akuity.io.kargo.service.v1alpha1 * Use `create(GetClusterConfigResponseSchema)` to create a new message. */ export const GetClusterConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 37); + messageDesc(file_api_service_v1alpha1_service, 39); /** * explicitly empty @@ -1058,7 +1159,7 @@ export type DeleteClusterConfigRequest = Message<"akuity.io.kargo.service.v1alph * Use `create(DeleteClusterConfigRequestSchema)` to create a new message. */ export const DeleteClusterConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 38); + messageDesc(file_api_service_v1alpha1_service, 40); /** * explicitly empty @@ -1073,7 +1174,7 @@ export type DeleteClusterConfigResponse = Message<"akuity.io.kargo.service.v1alp * Use `create(DeleteClusterConfigResponseSchema)` to create a new message. */ export const DeleteClusterConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 39); + messageDesc(file_api_service_v1alpha1_service, 41); /** * explicitly empty @@ -1088,7 +1189,7 @@ export type WatchClusterConfigRequest = Message<"akuity.io.kargo.service.v1alpha * Use `create(WatchClusterConfigRequestSchema)` to create a new message. */ export const WatchClusterConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 40); + messageDesc(file_api_service_v1alpha1_service, 42); /** * @generated from message akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse @@ -1112,7 +1213,7 @@ export type WatchClusterConfigResponse = Message<"akuity.io.kargo.service.v1alph * Use `create(WatchClusterConfigResponseSchema)` to create a new message. */ export const WatchClusterConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 41); + messageDesc(file_api_service_v1alpha1_service, 43); /** * ListPromotionsRequest is the request for retrieving all promotions, optionally filtered by stage. @@ -1140,7 +1241,7 @@ export type ListPromotionsRequest = Message<"akuity.io.kargo.service.v1alpha1.Li * Use `create(ListPromotionsRequestSchema)` to create a new message. */ export const ListPromotionsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 42); + messageDesc(file_api_service_v1alpha1_service, 44); /** * ListPromotionsResponse contains a list of promotions within a project. @@ -1161,7 +1262,7 @@ export type ListPromotionsResponse = Message<"akuity.io.kargo.service.v1alpha1.L * Use `create(ListPromotionsResponseSchema)` to create a new message. */ export const ListPromotionsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 43); + messageDesc(file_api_service_v1alpha1_service, 45); /** * WatchPromotionsRequest is the request for watching promotion changes via streaming. @@ -1189,7 +1290,7 @@ export type WatchPromotionsRequest = Message<"akuity.io.kargo.service.v1alpha1.W * Use `create(WatchPromotionsRequestSchema)` to create a new message. */ export const WatchPromotionsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 44); + messageDesc(file_api_service_v1alpha1_service, 46); /** * WatchPromotionsResponse contains promotion change notifications. @@ -1217,7 +1318,7 @@ export type WatchPromotionsResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(WatchPromotionsResponseSchema)` to create a new message. */ export const WatchPromotionsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 45); + messageDesc(file_api_service_v1alpha1_service, 47); /** * GetPromotionRequest is the request for retrieving details of a specific promotion. @@ -1252,7 +1353,7 @@ export type GetPromotionRequest = Message<"akuity.io.kargo.service.v1alpha1.GetP * Use `create(GetPromotionRequestSchema)` to create a new message. */ export const GetPromotionRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 46); + messageDesc(file_api_service_v1alpha1_service, 48); /** * GetPromotionResponse contains the requested promotion information. @@ -1287,7 +1388,7 @@ export type GetPromotionResponse = Message<"akuity.io.kargo.service.v1alpha1.Get * Use `create(GetPromotionResponseSchema)` to create a new message. */ export const GetPromotionResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 47); + messageDesc(file_api_service_v1alpha1_service, 49); /** * WatchPromotionRequest is the request for watching a specific promotion via streaming. @@ -1315,7 +1416,7 @@ export type WatchPromotionRequest = Message<"akuity.io.kargo.service.v1alpha1.Wa * Use `create(WatchPromotionRequestSchema)` to create a new message. */ export const WatchPromotionRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 48); + messageDesc(file_api_service_v1alpha1_service, 50); /** * WatchPromotionResponse contains specific promotion change notifications. @@ -1343,7 +1444,7 @@ export type WatchPromotionResponse = Message<"akuity.io.kargo.service.v1alpha1.W * Use `create(WatchPromotionResponseSchema)` to create a new message. */ export const WatchPromotionResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 49); + messageDesc(file_api_service_v1alpha1_service, 51); /** * AbortPromotionRequest is the request for canceling a running promotion process. @@ -1371,7 +1472,7 @@ export type AbortPromotionRequest = Message<"akuity.io.kargo.service.v1alpha1.Ab * Use `create(AbortPromotionRequestSchema)` to create a new message. */ export const AbortPromotionRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 50); + messageDesc(file_api_service_v1alpha1_service, 52); /** * AbortPromotionResponse is the response after aborting a promotion. @@ -1388,7 +1489,7 @@ export type AbortPromotionResponse = Message<"akuity.io.kargo.service.v1alpha1.A * Use `create(AbortPromotionResponseSchema)` to create a new message. */ export const AbortPromotionResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 51); + messageDesc(file_api_service_v1alpha1_service, 53); /** * DeleteProjectRequest is the request for deleting a project and all associated resources. @@ -1409,7 +1510,7 @@ export type DeleteProjectRequest = Message<"akuity.io.kargo.service.v1alpha1.Del * Use `create(DeleteProjectRequestSchema)` to create a new message. */ export const DeleteProjectRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 52); + messageDesc(file_api_service_v1alpha1_service, 54); /** * DeleteProjectResponse is the response after deleting a project. @@ -1426,7 +1527,7 @@ export type DeleteProjectResponse = Message<"akuity.io.kargo.service.v1alpha1.De * Use `create(DeleteProjectResponseSchema)` to create a new message. */ export const DeleteProjectResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 53); + messageDesc(file_api_service_v1alpha1_service, 55); /** * GetProjectRequest is the request for retrieving details of a specific project. @@ -1454,7 +1555,7 @@ export type GetProjectRequest = Message<"akuity.io.kargo.service.v1alpha1.GetPro * Use `create(GetProjectRequestSchema)` to create a new message. */ export const GetProjectRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 54); + messageDesc(file_api_service_v1alpha1_service, 56); /** * GetProjectResponse contains the requested project information. @@ -1489,7 +1590,7 @@ export type GetProjectResponse = Message<"akuity.io.kargo.service.v1alpha1.GetPr * Use `create(GetProjectResponseSchema)` to create a new message. */ export const GetProjectResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 55); + messageDesc(file_api_service_v1alpha1_service, 57); /** * ListProjectsRequest is the request for listing all projects with optional filtering and pagination. @@ -1539,7 +1640,7 @@ export type ListProjectsRequest = Message<"akuity.io.kargo.service.v1alpha1.List * Use `create(ListProjectsRequestSchema)` to create a new message. */ export const ListProjectsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 56); + messageDesc(file_api_service_v1alpha1_service, 58); /** * ListProjectsResponse contains the list of projects and pagination information. @@ -1567,7 +1668,7 @@ export type ListProjectsResponse = Message<"akuity.io.kargo.service.v1alpha1.Lis * Use `create(ListProjectsResponseSchema)` to create a new message. */ export const ListProjectsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 57); + messageDesc(file_api_service_v1alpha1_service, 59); /** * GetProjectConfigRequest is the request for retrieving project-level configuration settings. @@ -1595,7 +1696,7 @@ export type GetProjectConfigRequest = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(GetProjectConfigRequestSchema)` to create a new message. */ export const GetProjectConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 58); + messageDesc(file_api_service_v1alpha1_service, 60); /** * GetProjectConfigResponse contains the requested project configuration. @@ -1630,7 +1731,7 @@ export type GetProjectConfigResponse = Message<"akuity.io.kargo.service.v1alpha1 * Use `create(GetProjectConfigResponseSchema)` to create a new message. */ export const GetProjectConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 59); + messageDesc(file_api_service_v1alpha1_service, 61); /** * DeleteProjectConfigRequest is the request for removing project-level configuration. @@ -1651,7 +1752,7 @@ export type DeleteProjectConfigRequest = Message<"akuity.io.kargo.service.v1alph * Use `create(DeleteProjectConfigRequestSchema)` to create a new message. */ export const DeleteProjectConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 60); + messageDesc(file_api_service_v1alpha1_service, 62); /** * DeleteProjectConfigResponse is the response after deleting project configuration. @@ -1668,7 +1769,7 @@ export type DeleteProjectConfigResponse = Message<"akuity.io.kargo.service.v1alp * Use `create(DeleteProjectConfigResponseSchema)` to create a new message. */ export const DeleteProjectConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 61); + messageDesc(file_api_service_v1alpha1_service, 63); /** * WatchProjectConfigRequest is the request for streaming project configuration changes. @@ -1689,7 +1790,7 @@ export type WatchProjectConfigRequest = Message<"akuity.io.kargo.service.v1alpha * Use `create(WatchProjectConfigRequestSchema)` to create a new message. */ export const WatchProjectConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 62); + messageDesc(file_api_service_v1alpha1_service, 64); /** * WatchProjectConfigResponse provides streaming updates for project configuration changes. @@ -1717,7 +1818,7 @@ export type WatchProjectConfigResponse = Message<"akuity.io.kargo.service.v1alph * Use `create(WatchProjectConfigResponseSchema)` to create a new message. */ export const WatchProjectConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 63); + messageDesc(file_api_service_v1alpha1_service, 65); /** * ApproveFreightRequest is the request for approving freight for promotion to a stage. @@ -1759,7 +1860,7 @@ export type ApproveFreightRequest = Message<"akuity.io.kargo.service.v1alpha1.Ap * Use `create(ApproveFreightRequestSchema)` to create a new message. */ export const ApproveFreightRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 64); + messageDesc(file_api_service_v1alpha1_service, 66); /** * ApproveFreightResponse is the response after approving freight. @@ -1776,7 +1877,7 @@ export type ApproveFreightResponse = Message<"akuity.io.kargo.service.v1alpha1.A * Use `create(ApproveFreightResponseSchema)` to create a new message. */ export const ApproveFreightResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 65); + messageDesc(file_api_service_v1alpha1_service, 67); /** * DeleteFreightRequest is the request for deleting freight. @@ -1811,7 +1912,7 @@ export type DeleteFreightRequest = Message<"akuity.io.kargo.service.v1alpha1.Del * Use `create(DeleteFreightRequestSchema)` to create a new message. */ export const DeleteFreightRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 66); + messageDesc(file_api_service_v1alpha1_service, 68); /** * DeleteFreightResponse is the response after deleting freight. @@ -1828,7 +1929,7 @@ export type DeleteFreightResponse = Message<"akuity.io.kargo.service.v1alpha1.De * Use `create(DeleteFreightResponseSchema)` to create a new message. */ export const DeleteFreightResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 67); + messageDesc(file_api_service_v1alpha1_service, 69); /** * GetFreightRequest is the request for retrieving details of specific freight. @@ -1870,7 +1971,7 @@ export type GetFreightRequest = Message<"akuity.io.kargo.service.v1alpha1.GetFre * Use `create(GetFreightRequestSchema)` to create a new message. */ export const GetFreightRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 68); + messageDesc(file_api_service_v1alpha1_service, 70); /** * GetFreightResponse contains the requested freight information. @@ -1905,7 +2006,7 @@ export type GetFreightResponse = Message<"akuity.io.kargo.service.v1alpha1.GetFr * Use `create(GetFreightResponseSchema)` to create a new message. */ export const GetFreightResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 69); + messageDesc(file_api_service_v1alpha1_service, 71); /** * WatchFreightRequest is the request for watching freight changes via streaming. @@ -1935,7 +2036,7 @@ export type WatchFreightRequest = Message<"akuity.io.kargo.service.v1alpha1.Watc * Use `create(WatchFreightRequestSchema)` to create a new message. */ export const WatchFreightRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 70); + messageDesc(file_api_service_v1alpha1_service, 72); /** * WatchFreightResponse contains freight change notifications. @@ -1965,7 +2066,7 @@ export type WatchFreightResponse = Message<"akuity.io.kargo.service.v1alpha1.Wat * Use `create(WatchFreightResponseSchema)` to create a new message. */ export const WatchFreightResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 71); + messageDesc(file_api_service_v1alpha1_service, 73); /** * PromoteToStageRequest is the request for promoting freight to a specific stage. @@ -2007,7 +2108,7 @@ export type PromoteToStageRequest = Message<"akuity.io.kargo.service.v1alpha1.Pr * Use `create(PromoteToStageRequestSchema)` to create a new message. */ export const PromoteToStageRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 72); + messageDesc(file_api_service_v1alpha1_service, 74); /** * PromoteToStageResponse contains the promotion created for the freight promotion. @@ -2028,7 +2129,7 @@ export type PromoteToStageResponse = Message<"akuity.io.kargo.service.v1alpha1.P * Use `create(PromoteToStageResponseSchema)` to create a new message. */ export const PromoteToStageResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 73); + messageDesc(file_api_service_v1alpha1_service, 75); /** * PromoteDownstreamRequest is the request for automatically promoting freight to downstream stages. @@ -2070,7 +2171,7 @@ export type PromoteDownstreamRequest = Message<"akuity.io.kargo.service.v1alpha1 * Use `create(PromoteDownstreamRequestSchema)` to create a new message. */ export const PromoteDownstreamRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 74); + messageDesc(file_api_service_v1alpha1_service, 76); /** * PromoteDownstreamResponse contains the promotions created for downstream freight promotions. @@ -2091,7 +2192,7 @@ export type PromoteDownstreamResponse = Message<"akuity.io.kargo.service.v1alpha * Use `create(PromoteDownstreamResponseSchema)` to create a new message. */ export const PromoteDownstreamResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 75); + messageDesc(file_api_service_v1alpha1_service, 77); /** * QueryFreightRequest is the request for searching freight based on specified criteria. @@ -2154,7 +2255,7 @@ export type QueryFreightRequest = Message<"akuity.io.kargo.service.v1alpha1.Quer * Use `create(QueryFreightRequestSchema)` to create a new message. */ export const QueryFreightRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 76); + messageDesc(file_api_service_v1alpha1_service, 78); /** * QueryFreightResponse contains the grouped freight search results. @@ -2175,7 +2276,7 @@ export type QueryFreightResponse = Message<"akuity.io.kargo.service.v1alpha1.Que * Use `create(QueryFreightResponseSchema)` to create a new message. */ export const QueryFreightResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 77); + messageDesc(file_api_service_v1alpha1_service, 79); /** * FreightList contains a list of freight resources. @@ -2196,7 +2297,7 @@ export type FreightList = Message<"akuity.io.kargo.service.v1alpha1.FreightList" * Use `create(FreightListSchema)` to create a new message. */ export const FreightListSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 78); + messageDesc(file_api_service_v1alpha1_service, 80); /** * UpdateFreightAliasRequest is the request for updating a freight's alias. @@ -2238,7 +2339,7 @@ export type UpdateFreightAliasRequest = Message<"akuity.io.kargo.service.v1alpha * Use `create(UpdateFreightAliasRequestSchema)` to create a new message. */ export const UpdateFreightAliasRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 79); + messageDesc(file_api_service_v1alpha1_service, 81); /** * UpdateFreightAliasResponse is the response after updating a freight's alias. @@ -2255,7 +2356,7 @@ export type UpdateFreightAliasResponse = Message<"akuity.io.kargo.service.v1alph * Use `create(UpdateFreightAliasResponseSchema)` to create a new message. */ export const UpdateFreightAliasResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 80); + messageDesc(file_api_service_v1alpha1_service, 82); /** * ReverifyRequest is the request for triggering re-execution of verification processes for a stage. @@ -2283,7 +2384,7 @@ export type ReverifyRequest = Message<"akuity.io.kargo.service.v1alpha1.Reverify * Use `create(ReverifyRequestSchema)` to create a new message. */ export const ReverifyRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 81); + messageDesc(file_api_service_v1alpha1_service, 83); /** * ReverifyResponse is the response after triggering reverification. @@ -2300,7 +2401,7 @@ export type ReverifyResponse = Message<"akuity.io.kargo.service.v1alpha1.Reverif * Use `create(ReverifyResponseSchema)` to create a new message. */ export const ReverifyResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 82); + messageDesc(file_api_service_v1alpha1_service, 84); /** * AbortVerificationRequest is the request for canceling running verification processes for a stage. @@ -2328,7 +2429,7 @@ export type AbortVerificationRequest = Message<"akuity.io.kargo.service.v1alpha1 * Use `create(AbortVerificationRequestSchema)` to create a new message. */ export const AbortVerificationRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 83); + messageDesc(file_api_service_v1alpha1_service, 85); /** * AbortVerificationResponse is the response after aborting verification. @@ -2345,7 +2446,7 @@ export type AbortVerificationResponse = Message<"akuity.io.kargo.service.v1alpha * Use `create(AbortVerificationResponseSchema)` to create a new message. */ export const AbortVerificationResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 84); + messageDesc(file_api_service_v1alpha1_service, 86); /** * ListWarehousesRequest is the request for listing warehouses within a project. @@ -2366,7 +2467,7 @@ export type ListWarehousesRequest = Message<"akuity.io.kargo.service.v1alpha1.Li * Use `create(ListWarehousesRequestSchema)` to create a new message. */ export const ListWarehousesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 85); + messageDesc(file_api_service_v1alpha1_service, 87); /** * ListWarehousesResponse contains a list of warehouses within a project. @@ -2387,7 +2488,7 @@ export type ListWarehousesResponse = Message<"akuity.io.kargo.service.v1alpha1.L * Use `create(ListWarehousesResponseSchema)` to create a new message. */ export const ListWarehousesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 86); + messageDesc(file_api_service_v1alpha1_service, 88); /** * GetWarehouseRequest is the request for retrieving details of a specific warehouse. @@ -2422,7 +2523,7 @@ export type GetWarehouseRequest = Message<"akuity.io.kargo.service.v1alpha1.GetW * Use `create(GetWarehouseRequestSchema)` to create a new message. */ export const GetWarehouseRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 87); + messageDesc(file_api_service_v1alpha1_service, 89); /** * GetWarehouseResponse contains the requested warehouse information. @@ -2457,7 +2558,7 @@ export type GetWarehouseResponse = Message<"akuity.io.kargo.service.v1alpha1.Get * Use `create(GetWarehouseResponseSchema)` to create a new message. */ export const GetWarehouseResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 88); + messageDesc(file_api_service_v1alpha1_service, 90); /** * WatchWarehousesRequest is the request for watching warehouse changes via streaming. @@ -2485,7 +2586,7 @@ export type WatchWarehousesRequest = Message<"akuity.io.kargo.service.v1alpha1.W * Use `create(WatchWarehousesRequestSchema)` to create a new message. */ export const WatchWarehousesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 89); + messageDesc(file_api_service_v1alpha1_service, 91); /** * WatchWarehousesResponse contains warehouse change notifications. @@ -2513,7 +2614,7 @@ export type WatchWarehousesResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(WatchWarehousesResponseSchema)` to create a new message. */ export const WatchWarehousesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 90); + messageDesc(file_api_service_v1alpha1_service, 92); /** * DeleteWarehouseRequest is the request for deleting a warehouse. @@ -2541,7 +2642,7 @@ export type DeleteWarehouseRequest = Message<"akuity.io.kargo.service.v1alpha1.D * Use `create(DeleteWarehouseRequestSchema)` to create a new message. */ export const DeleteWarehouseRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 91); + messageDesc(file_api_service_v1alpha1_service, 93); /** * DeleteWarehouseResponse is the response after deleting a warehouse. @@ -2558,7 +2659,7 @@ export type DeleteWarehouseResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(DeleteWarehouseResponseSchema)` to create a new message. */ export const DeleteWarehouseResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 92); + messageDesc(file_api_service_v1alpha1_service, 94); /** * CreateConfigMapRequest is the request for creating a project-level, @@ -2619,7 +2720,7 @@ export type CreateConfigMapRequest = Message<"akuity.io.kargo.service.v1alpha1.C * Use `create(CreateConfigMapRequestSchema)` to create a new message. */ export const CreateConfigMapRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 93); + messageDesc(file_api_service_v1alpha1_service, 95); /** * CreateConfigMapResponse is the response containing the ConfigMap that was @@ -2641,7 +2742,7 @@ export type CreateConfigMapResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(CreateConfigMapResponseSchema)` to create a new message. */ export const CreateConfigMapResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 94); + messageDesc(file_api_service_v1alpha1_service, 96); /** * DeleteConfigMapRequest is the request for deleting a project-level, @@ -2680,7 +2781,7 @@ export type DeleteConfigMapRequest = Message<"akuity.io.kargo.service.v1alpha1.D * Use `create(DeleteConfigMapRequestSchema)` to create a new message. */ export const DeleteConfigMapRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 95); + messageDesc(file_api_service_v1alpha1_service, 97); /** * DeleteConfigMapResponse is the response returned after deleting a ConfigMap. @@ -2697,7 +2798,7 @@ export type DeleteConfigMapResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(DeleteConfigMapResponseSchema)` to create a new message. */ export const DeleteConfigMapResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 96); + messageDesc(file_api_service_v1alpha1_service, 98); /** * ListConfigMapsRequest is the request for listing all project-level, @@ -2729,7 +2830,7 @@ export type ListConfigMapsRequest = Message<"akuity.io.kargo.service.v1alpha1.Li * Use `create(ListConfigMapsRequestSchema)` to create a new message. */ export const ListConfigMapsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 97); + messageDesc(file_api_service_v1alpha1_service, 99); /** * ListConfigMapsResponse contains the list of ConfigMaps. @@ -2750,7 +2851,7 @@ export type ListConfigMapsResponse = Message<"akuity.io.kargo.service.v1alpha1.L * Use `create(ListConfigMapsResponseSchema)` to create a new message. */ export const ListConfigMapsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 98); + messageDesc(file_api_service_v1alpha1_service, 100); /** * GetConfigMapRequest is the request for getting a specific project-level, @@ -2797,7 +2898,7 @@ export type GetConfigMapRequest = Message<"akuity.io.kargo.service.v1alpha1.GetC * Use `create(GetConfigMapRequestSchema)` to create a new message. */ export const GetConfigMapRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 99); + messageDesc(file_api_service_v1alpha1_service, 101); /** * GetConfigMapResponse contains the requested ConfigMap. @@ -2832,7 +2933,7 @@ export type GetConfigMapResponse = Message<"akuity.io.kargo.service.v1alpha1.Get * Use `create(GetConfigMapResponseSchema)` to create a new message. */ export const GetConfigMapResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 100); + messageDesc(file_api_service_v1alpha1_service, 102); /** * UpdateConfigMapRequest is the request for updating a project-level, @@ -2893,7 +2994,7 @@ export type UpdateConfigMapRequest = Message<"akuity.io.kargo.service.v1alpha1.U * Use `create(UpdateConfigMapRequestSchema)` to create a new message. */ export const UpdateConfigMapRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 101); + messageDesc(file_api_service_v1alpha1_service, 103); /** * UpdateConfigMapResponse is the response containing the updated ConfigMap. @@ -2914,7 +3015,7 @@ export type UpdateConfigMapResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(UpdateConfigMapResponseSchema)` to create a new message. */ export const UpdateConfigMapResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 102); + messageDesc(file_api_service_v1alpha1_service, 104); /** * CreateRepoCredentialsRequest is the request for creating new credentials for accessing external repositories. @@ -2984,7 +3085,7 @@ export type CreateRepoCredentialsRequest = Message<"akuity.io.kargo.service.v1al * Use `create(CreateRepoCredentialsRequestSchema)` to create a new message. */ export const CreateRepoCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 103); + messageDesc(file_api_service_v1alpha1_service, 105); /** * CreateRepoCredentialsResponse contains the newly created repository credentials. @@ -3005,7 +3106,7 @@ export type CreateRepoCredentialsResponse = Message<"akuity.io.kargo.service.v1a * Use `create(CreateRepoCredentialsResponseSchema)` to create a new message. */ export const CreateRepoCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 104); + messageDesc(file_api_service_v1alpha1_service, 106); /** * DeleteRepoCredentialsRequest is the request for deleting existing repository credentials. @@ -3034,7 +3135,7 @@ export type DeleteRepoCredentialsRequest = Message<"akuity.io.kargo.service.v1al * Use `create(DeleteRepoCredentialsRequestSchema)` to create a new message. */ export const DeleteRepoCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 105); + messageDesc(file_api_service_v1alpha1_service, 107); /** * DeleteRepoCredentialsResponse is the response returned after deleting repository credentials. @@ -3051,7 +3152,7 @@ export type DeleteRepoCredentialsResponse = Message<"akuity.io.kargo.service.v1a * Use `create(DeleteRepoCredentialsResponseSchema)` to create a new message. */ export const DeleteRepoCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 106); + messageDesc(file_api_service_v1alpha1_service, 108); /** * GetRepoCredentialsRequest is the request for retrieving existing repository credentials. @@ -3086,7 +3187,7 @@ export type GetRepoCredentialsRequest = Message<"akuity.io.kargo.service.v1alpha * Use `create(GetRepoCredentialsRequestSchema)` to create a new message. */ export const GetRepoCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 107); + messageDesc(file_api_service_v1alpha1_service, 109); /** * GetRepoCredentialsResponse contains the requested repository credentials information. @@ -3121,7 +3222,7 @@ export type GetRepoCredentialsResponse = Message<"akuity.io.kargo.service.v1alph * Use `create(GetRepoCredentialsResponseSchema)` to create a new message. */ export const GetRepoCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 108); + messageDesc(file_api_service_v1alpha1_service, 110); /** * ListRepoCredentialsRequest is the request for listing all repository credentials in a project. @@ -3142,7 +3243,7 @@ export type ListRepoCredentialsRequest = Message<"akuity.io.kargo.service.v1alph * Use `create(ListRepoCredentialsRequestSchema)` to create a new message. */ export const ListRepoCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 109); + messageDesc(file_api_service_v1alpha1_service, 111); /** * ListRepoCredentialsResponse contains a list of repository credentials for the specified project. @@ -3163,7 +3264,7 @@ export type ListRepoCredentialsResponse = Message<"akuity.io.kargo.service.v1alp * Use `create(ListRepoCredentialsResponseSchema)` to create a new message. */ export const ListRepoCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 110); + messageDesc(file_api_service_v1alpha1_service, 112); /** * UpdateRepoCredentialsRequest is the request for updating existing repository credentials. @@ -3233,7 +3334,7 @@ export type UpdateRepoCredentialsRequest = Message<"akuity.io.kargo.service.v1al * Use `create(UpdateRepoCredentialsRequestSchema)` to create a new message. */ export const UpdateRepoCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 111); + messageDesc(file_api_service_v1alpha1_service, 113); /** * UpdateRepoCredentialsResponse contains the updated repository credentials information. @@ -3254,7 +3355,7 @@ export type UpdateRepoCredentialsResponse = Message<"akuity.io.kargo.service.v1a * Use `create(UpdateRepoCredentialsResponseSchema)` to create a new message. */ export const UpdateRepoCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 112); + messageDesc(file_api_service_v1alpha1_service, 114); /** * ListGenericCredentialsRequest is the request for listing all generic @@ -3286,7 +3387,7 @@ export type ListGenericCredentialsRequest = Message<"akuity.io.kargo.service.v1a * Use `create(ListGenericCredentialsRequestSchema)` to create a new message. */ export const ListGenericCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 113); + messageDesc(file_api_service_v1alpha1_service, 115); /** * ListGenericCredentialsResponse contains a list of generic credentials for the specified project. @@ -3307,7 +3408,7 @@ export type ListGenericCredentialsResponse = Message<"akuity.io.kargo.service.v1 * Use `create(ListGenericCredentialsResponseSchema)` to create a new message. */ export const ListGenericCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 114); + messageDesc(file_api_service_v1alpha1_service, 116); /** * CreateGenericCredentialsRequest is the request for creating new generic @@ -3368,7 +3469,7 @@ export type CreateGenericCredentialsRequest = Message<"akuity.io.kargo.service.v * Use `create(CreateGenericCredentialsRequestSchema)` to create a new message. */ export const CreateGenericCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 115); + messageDesc(file_api_service_v1alpha1_service, 117); /** * CreateGenericCredentialsResponse contains the newly created generic credentials. @@ -3389,7 +3490,7 @@ export type CreateGenericCredentialsResponse = Message<"akuity.io.kargo.service. * Use `create(CreateGenericCredentialsResponseSchema)` to create a new message. */ export const CreateGenericCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 116); + messageDesc(file_api_service_v1alpha1_service, 118); /** * UpdateGenericCredentialsRequest is the request for updating existing generic credentials. @@ -3449,7 +3550,7 @@ export type UpdateGenericCredentialsRequest = Message<"akuity.io.kargo.service.v * Use `create(UpdateGenericCredentialsRequestSchema)` to create a new message. */ export const UpdateGenericCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 117); + messageDesc(file_api_service_v1alpha1_service, 119); /** * UpdateGenericCredentialsResponse contains the updated generic credentials information. @@ -3470,7 +3571,7 @@ export type UpdateGenericCredentialsResponse = Message<"akuity.io.kargo.service. * Use `create(UpdateGenericCredentialsResponseSchema)` to create a new message. */ export const UpdateGenericCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 118); + messageDesc(file_api_service_v1alpha1_service, 120); /** * DeleteGenericCredentialsRequest is the request for deleting generic @@ -3509,7 +3610,7 @@ export type DeleteGenericCredentialsRequest = Message<"akuity.io.kargo.service.v * Use `create(DeleteGenericCredentialsRequestSchema)` to create a new message. */ export const DeleteGenericCredentialsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 119); + messageDesc(file_api_service_v1alpha1_service, 121); /** * DeleteGenericCredentialsResponse is the response returned after deleting generic credentials. @@ -3526,7 +3627,7 @@ export type DeleteGenericCredentialsResponse = Message<"akuity.io.kargo.service. * Use `create(DeleteGenericCredentialsResponseSchema)` to create a new message. */ export const DeleteGenericCredentialsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 120); + messageDesc(file_api_service_v1alpha1_service, 122); /** * ListAnalysisTemplatesRequest is the request for listing all analysis templates in a project. @@ -3547,7 +3648,7 @@ export type ListAnalysisTemplatesRequest = Message<"akuity.io.kargo.service.v1al * Use `create(ListAnalysisTemplatesRequestSchema)` to create a new message. */ export const ListAnalysisTemplatesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 121); + messageDesc(file_api_service_v1alpha1_service, 123); /** * ListAnalysisTemplatesResponse contains a list of analysis templates for the specified project. @@ -3568,7 +3669,7 @@ export type ListAnalysisTemplatesResponse = Message<"akuity.io.kargo.service.v1a * Use `create(ListAnalysisTemplatesResponseSchema)` to create a new message. */ export const ListAnalysisTemplatesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 122); + messageDesc(file_api_service_v1alpha1_service, 124); /** * GetAnalysisTemplateRequest is the request for retrieving a specific analysis template. @@ -3603,7 +3704,7 @@ export type GetAnalysisTemplateRequest = Message<"akuity.io.kargo.service.v1alph * Use `create(GetAnalysisTemplateRequestSchema)` to create a new message. */ export const GetAnalysisTemplateRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 123); + messageDesc(file_api_service_v1alpha1_service, 125); /** * GetAnalysisTemplateResponse contains the requested analysis template information. @@ -3638,7 +3739,7 @@ export type GetAnalysisTemplateResponse = Message<"akuity.io.kargo.service.v1alp * Use `create(GetAnalysisTemplateResponseSchema)` to create a new message. */ export const GetAnalysisTemplateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 124); + messageDesc(file_api_service_v1alpha1_service, 126); /** * DeleteAnalysisTemplateRequest is the request for deleting an analysis template. @@ -3666,7 +3767,7 @@ export type DeleteAnalysisTemplateRequest = Message<"akuity.io.kargo.service.v1a * Use `create(DeleteAnalysisTemplateRequestSchema)` to create a new message. */ export const DeleteAnalysisTemplateRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 125); + messageDesc(file_api_service_v1alpha1_service, 127); /** * DeleteAnalysisTemplateResponse is the response returned after deleting an analysis template. @@ -3683,7 +3784,7 @@ export type DeleteAnalysisTemplateResponse = Message<"akuity.io.kargo.service.v1 * Use `create(DeleteAnalysisTemplateResponseSchema)` to create a new message. */ export const DeleteAnalysisTemplateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 126); + messageDesc(file_api_service_v1alpha1_service, 128); /** * ListClusterAnalysisTemplatesRequest is the request for listing all cluster-level analysis templates. @@ -3698,7 +3799,7 @@ export type ListClusterAnalysisTemplatesRequest = Message<"akuity.io.kargo.servi * Use `create(ListClusterAnalysisTemplatesRequestSchema)` to create a new message. */ export const ListClusterAnalysisTemplatesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 127); + messageDesc(file_api_service_v1alpha1_service, 129); /** * ListClusterAnalysisTemplatesResponse contains a list of cluster-level analysis templates. @@ -3719,7 +3820,7 @@ export type ListClusterAnalysisTemplatesResponse = Message<"akuity.io.kargo.serv * Use `create(ListClusterAnalysisTemplatesResponseSchema)` to create a new message. */ export const ListClusterAnalysisTemplatesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 128); + messageDesc(file_api_service_v1alpha1_service, 130); /** * GetClusterAnalysisTemplateRequest is the request for retrieving a specific cluster analysis template. @@ -3747,7 +3848,7 @@ export type GetClusterAnalysisTemplateRequest = Message<"akuity.io.kargo.service * Use `create(GetClusterAnalysisTemplateRequestSchema)` to create a new message. */ export const GetClusterAnalysisTemplateRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 129); + messageDesc(file_api_service_v1alpha1_service, 131); /** * GetClusterAnalysisTemplateResponse contains the requested cluster analysis template information. @@ -3782,7 +3883,7 @@ export type GetClusterAnalysisTemplateResponse = Message<"akuity.io.kargo.servic * Use `create(GetClusterAnalysisTemplateResponseSchema)` to create a new message. */ export const GetClusterAnalysisTemplateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 130); + messageDesc(file_api_service_v1alpha1_service, 132); /** * DeleteClusterAnalysisTemplateRequest is the request for deleting a cluster analysis template. @@ -3803,7 +3904,7 @@ export type DeleteClusterAnalysisTemplateRequest = Message<"akuity.io.kargo.serv * Use `create(DeleteClusterAnalysisTemplateRequestSchema)` to create a new message. */ export const DeleteClusterAnalysisTemplateRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 131); + messageDesc(file_api_service_v1alpha1_service, 133); /** * DeleteClusterAnalysisTemplateResponse is the response returned after deleting a cluster analysis template. @@ -3820,7 +3921,7 @@ export type DeleteClusterAnalysisTemplateResponse = Message<"akuity.io.kargo.ser * Use `create(DeleteClusterAnalysisTemplateResponseSchema)` to create a new message. */ export const DeleteClusterAnalysisTemplateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 132); + messageDesc(file_api_service_v1alpha1_service, 134); /** * GetAnalysisRunRequest is the request for retrieving a specific analysis run. @@ -3855,7 +3956,7 @@ export type GetAnalysisRunRequest = Message<"akuity.io.kargo.service.v1alpha1.Ge * Use `create(GetAnalysisRunRequestSchema)` to create a new message. */ export const GetAnalysisRunRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 133); + messageDesc(file_api_service_v1alpha1_service, 135); /** * GetAnalysisRunResponse contains the requested analysis run information. @@ -3890,7 +3991,7 @@ export type GetAnalysisRunResponse = Message<"akuity.io.kargo.service.v1alpha1.G * Use `create(GetAnalysisRunResponseSchema)` to create a new message. */ export const GetAnalysisRunResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 134); + messageDesc(file_api_service_v1alpha1_service, 136); /** * GetAnalysisRunLogsRequest is the request for retrieving logs from an analysis run. @@ -3932,7 +4033,7 @@ export type GetAnalysisRunLogsRequest = Message<"akuity.io.kargo.service.v1alpha * Use `create(GetAnalysisRunLogsRequestSchema)` to create a new message. */ export const GetAnalysisRunLogsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 135); + messageDesc(file_api_service_v1alpha1_service, 137); /** * GetAnalysisRunLogsResponse contains a chunk of logs from the analysis run. @@ -3953,7 +4054,7 @@ export type GetAnalysisRunLogsResponse = Message<"akuity.io.kargo.service.v1alph * Use `create(GetAnalysisRunLogsResponseSchema)` to create a new message. */ export const GetAnalysisRunLogsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 136); + messageDesc(file_api_service_v1alpha1_service, 138); /** * ListProjectEventsRequest is the request for listing events in a project. @@ -3974,7 +4075,7 @@ export type ListProjectEventsRequest = Message<"akuity.io.kargo.service.v1alpha1 * Use `create(ListProjectEventsRequestSchema)` to create a new message. */ export const ListProjectEventsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 137); + messageDesc(file_api_service_v1alpha1_service, 139); /** * ListProjectEventsResponse contains a list of events for the specified project. @@ -3995,7 +4096,7 @@ export type ListProjectEventsResponse = Message<"akuity.io.kargo.service.v1alpha * Use `create(ListProjectEventsResponseSchema)` to create a new message. */ export const ListProjectEventsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 138); + messageDesc(file_api_service_v1alpha1_service, 140); /** * ListPromotionTasksRequest is the request for listing promotion tasks in a project. @@ -4016,7 +4117,7 @@ export type ListPromotionTasksRequest = Message<"akuity.io.kargo.service.v1alpha * Use `create(ListPromotionTasksRequestSchema)` to create a new message. */ export const ListPromotionTasksRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 139); + messageDesc(file_api_service_v1alpha1_service, 141); /** * ListPromotionTasksResponse contains a list of promotion tasks for the specified project. @@ -4037,7 +4138,7 @@ export type ListPromotionTasksResponse = Message<"akuity.io.kargo.service.v1alph * Use `create(ListPromotionTasksResponseSchema)` to create a new message. */ export const ListPromotionTasksResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 140); + messageDesc(file_api_service_v1alpha1_service, 142); /** * GetPromotionTaskRequest is the request for retrieving a specific promotion task. @@ -4072,7 +4173,7 @@ export type GetPromotionTaskRequest = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(GetPromotionTaskRequestSchema)` to create a new message. */ export const GetPromotionTaskRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 141); + messageDesc(file_api_service_v1alpha1_service, 143); /** * GetPromotionTaskResponse contains the requested promotion task information. @@ -4107,7 +4208,7 @@ export type GetPromotionTaskResponse = Message<"akuity.io.kargo.service.v1alpha1 * Use `create(GetPromotionTaskResponseSchema)` to create a new message. */ export const GetPromotionTaskResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 142); + messageDesc(file_api_service_v1alpha1_service, 144); /** * ListClusterPromotionTasksRequest is the request for listing all cluster-level promotion tasks. @@ -4122,7 +4223,7 @@ export type ListClusterPromotionTasksRequest = Message<"akuity.io.kargo.service. * Use `create(ListClusterPromotionTasksRequestSchema)` to create a new message. */ export const ListClusterPromotionTasksRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 143); + messageDesc(file_api_service_v1alpha1_service, 145); /** * ListClusterPromotionTasksResponse contains a list of cluster-level promotion tasks. @@ -4143,7 +4244,7 @@ export type ListClusterPromotionTasksResponse = Message<"akuity.io.kargo.service * Use `create(ListClusterPromotionTasksResponseSchema)` to create a new message. */ export const ListClusterPromotionTasksResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 144); + messageDesc(file_api_service_v1alpha1_service, 146); /** * GetClusterPromotionTaskRequest is the request for retrieving a specific cluster promotion task. @@ -4171,7 +4272,7 @@ export type GetClusterPromotionTaskRequest = Message<"akuity.io.kargo.service.v1 * Use `create(GetClusterPromotionTaskRequestSchema)` to create a new message. */ export const GetClusterPromotionTaskRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 145); + messageDesc(file_api_service_v1alpha1_service, 147); /** * GetClusterPromotionTaskResponse contains the requested cluster promotion task information. @@ -4206,7 +4307,7 @@ export type GetClusterPromotionTaskResponse = Message<"akuity.io.kargo.service.v * Use `create(GetClusterPromotionTaskResponseSchema)` to create a new message. */ export const GetClusterPromotionTaskResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 146); + messageDesc(file_api_service_v1alpha1_service, 148); /** * CreateRoleRequest is a request to create a new Kargo Role virtual resource by @@ -4228,7 +4329,7 @@ export type CreateRoleRequest = Message<"akuity.io.kargo.service.v1alpha1.Create * Use `create(CreateRoleRequestSchema)` to create a new message. */ export const CreateRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 147); + messageDesc(file_api_service_v1alpha1_service, 149); /** * CreateRoleResponse contains the details of a newly created Kargo Role virtual @@ -4250,7 +4351,7 @@ export type CreateRoleResponse = Message<"akuity.io.kargo.service.v1alpha1.Creat * Use `create(CreateRoleResponseSchema)` to create a new message. */ export const CreateRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 148); + messageDesc(file_api_service_v1alpha1_service, 150); /** * DeleteRoleRequest is a request to delete a Kargo Role virtual resource by @@ -4279,7 +4380,7 @@ export type DeleteRoleRequest = Message<"akuity.io.kargo.service.v1alpha1.Delete * Use `create(DeleteRoleRequestSchema)` to create a new message. */ export const DeleteRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 149); + messageDesc(file_api_service_v1alpha1_service, 151); /** * DeleteRoleResponse is the response returned after deleting a Kargo Role @@ -4297,7 +4398,7 @@ export type DeleteRoleResponse = Message<"akuity.io.kargo.service.v1alpha1.Delet * Use `create(DeleteRoleResponseSchema)` to create a new message. */ export const DeleteRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 150); + messageDesc(file_api_service_v1alpha1_service, 152); /** * GetRoleRequest is a request to retrieve the details of a Kargo Role virtual @@ -4351,7 +4452,7 @@ export type GetRoleRequest = Message<"akuity.io.kargo.service.v1alpha1.GetRoleRe * Use `create(GetRoleRequestSchema)` to create a new message. */ export const GetRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 151); + messageDesc(file_api_service_v1alpha1_service, 153); /** * GetRoleResponse contains the details of a Kargo Role virtual resource or its @@ -4396,7 +4497,7 @@ export type GetRoleResponse = Message<"akuity.io.kargo.service.v1alpha1.GetRoleR * Use `create(GetRoleResponseSchema)` to create a new message. */ export const GetRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 152); + messageDesc(file_api_service_v1alpha1_service, 154); /** * Claims represents a collection of OIDC claims. @@ -4418,7 +4519,7 @@ export type Claims = Message<"akuity.io.kargo.service.v1alpha1.Claims"> & { * Use `create(ClaimsSchema)` to create a new message. */ export const ClaimsSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 153); + messageDesc(file_api_service_v1alpha1_service, 155); /** * GrantRequest is a request to assign permissions to a Kargo Role virtual @@ -4471,7 +4572,7 @@ export type GrantRequest = Message<"akuity.io.kargo.service.v1alpha1.GrantReques * Use `create(GrantRequestSchema)` to create a new message. */ export const GrantRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 154); + messageDesc(file_api_service_v1alpha1_service, 156); /** * GrantResponse contains the details of a Kargo Role virtual resource after a @@ -4493,7 +4594,7 @@ export type GrantResponse = Message<"akuity.io.kargo.service.v1alpha1.GrantRespo * Use `create(GrantResponseSchema)` to create a new message. */ export const GrantResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 155); + messageDesc(file_api_service_v1alpha1_service, 157); /** * ListRolesRequests is a request to retrieve the details of all Kargo Role @@ -4531,7 +4632,7 @@ export type ListRolesRequest = Message<"akuity.io.kargo.service.v1alpha1.ListRol * Use `create(ListRolesRequestSchema)` to create a new message. */ export const ListRolesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 156); + messageDesc(file_api_service_v1alpha1_service, 158); /** * ListRolesResponse contains a list of Kargo Role virtual resources or their @@ -4562,7 +4663,7 @@ export type ListRolesResponse = Message<"akuity.io.kargo.service.v1alpha1.ListRo * Use `create(ListRolesResponseSchema)` to create a new message. */ export const ListRolesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 157); + messageDesc(file_api_service_v1alpha1_service, 159); /** * RevokeRequest is a request to remove permissions from a Kargo Role virtual @@ -4616,7 +4717,7 @@ export type RevokeRequest = Message<"akuity.io.kargo.service.v1alpha1.RevokeRequ * Use `create(RevokeRequestSchema)` to create a new message. */ export const RevokeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 158); + messageDesc(file_api_service_v1alpha1_service, 160); /** * RevokeResponse contains the details of a Kargo Role virtual resource after a @@ -4639,7 +4740,7 @@ export type RevokeResponse = Message<"akuity.io.kargo.service.v1alpha1.RevokeRes * Use `create(RevokeResponseSchema)` to create a new message. */ export const RevokeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 159); + messageDesc(file_api_service_v1alpha1_service, 161); /** * UpdateRoleRequest is a request to modify an existing Kargo Role virtual @@ -4661,7 +4762,7 @@ export type UpdateRoleRequest = Message<"akuity.io.kargo.service.v1alpha1.Update * Use `create(UpdateRoleRequestSchema)` to create a new message. */ export const UpdateRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 160); + messageDesc(file_api_service_v1alpha1_service, 162); /** * UpdateRoleResponse contains the details of the updated Kargo Role virtual @@ -4683,7 +4784,7 @@ export type UpdateRoleResponse = Message<"akuity.io.kargo.service.v1alpha1.Updat * Use `create(UpdateRoleResponseSchema)` to create a new message. */ export const UpdateRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 161); + messageDesc(file_api_service_v1alpha1_service, 163); /** * CreateAPITokenRequest is a request to generate a new bearer token associated @@ -4731,7 +4832,7 @@ export type CreateAPITokenRequest = Message<"akuity.io.kargo.service.v1alpha1.Cr * Use `create(CreateAPITokenRequestSchema)` to create a new message. */ export const CreateAPITokenRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 162); + messageDesc(file_api_service_v1alpha1_service, 164); /** * CreateAPITokenResponse contains a newly generated bearer token in the form of @@ -4753,7 +4854,7 @@ export type CreateAPITokenResponse = Message<"akuity.io.kargo.service.v1alpha1.C * Use `create(CreateAPITokenResponseSchema)` to create a new message. */ export const CreateAPITokenResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 163); + messageDesc(file_api_service_v1alpha1_service, 165); /** * DeleteAPITokenRequest is a request to delete a bearer token associated with a @@ -4792,7 +4893,7 @@ export type DeleteAPITokenRequest = Message<"akuity.io.kargo.service.v1alpha1.De * Use `create(DeleteAPITokenRequestSchema)` to create a new message. */ export const DeleteAPITokenRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 164); + messageDesc(file_api_service_v1alpha1_service, 166); /** * DeleteAPITokenResponse is the response returned after deleting a bearer token @@ -4810,7 +4911,7 @@ export type DeleteAPITokenResponse = Message<"akuity.io.kargo.service.v1alpha1.D * Use `create(DeleteAPITokenResponseSchema)` to create a new message. */ export const DeleteAPITokenResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 165); + messageDesc(file_api_service_v1alpha1_service, 167); /** * GetAPITokenRequest is a request to retrieve details of a bearer token @@ -4856,7 +4957,7 @@ export type GetAPITokenRequest = Message<"akuity.io.kargo.service.v1alpha1.GetAP * Use `create(GetAPITokenRequestSchema)` to create a new message. */ export const GetAPITokenRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 166); + messageDesc(file_api_service_v1alpha1_service, 168); /** * GetAPITokenResponse contains contains the details of a bearer token @@ -4893,7 +4994,7 @@ export type GetAPITokenResponse = Message<"akuity.io.kargo.service.v1alpha1.GetA * Use `create(GetAPITokenResponseSchema)` to create a new message. */ export const GetAPITokenResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 167); + messageDesc(file_api_service_v1alpha1_service, 169); /** * ListAPITokensRequest is a request to list bearer tokens associated with a @@ -4931,7 +5032,7 @@ export type ListAPITokensRequest = Message<"akuity.io.kargo.service.v1alpha1.Lis * Use `create(ListAPITokensRequestSchema)` to create a new message. */ export const ListAPITokensRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 168); + messageDesc(file_api_service_v1alpha1_service, 170); /** * ListAPITokensResponse contains a list of bearer tokens associated with a @@ -4954,7 +5055,7 @@ export type ListAPITokensResponse = Message<"akuity.io.kargo.service.v1alpha1.Li * Use `create(ListAPITokensResponseSchema)` to create a new message. */ export const ListAPITokensResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 169); + messageDesc(file_api_service_v1alpha1_service, 171); /** * @generated from message akuity.io.kargo.service.v1alpha1.RefreshResourceRequest @@ -4990,7 +5091,7 @@ export type RefreshResourceRequest = Message<"akuity.io.kargo.service.v1alpha1.R * Use `create(RefreshResourceRequestSchema)` to create a new message. */ export const RefreshResourceRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 170); + messageDesc(file_api_service_v1alpha1_service, 172); /** * @generated from message akuity.io.kargo.service.v1alpha1.RefreshResourceResponse @@ -5007,7 +5108,7 @@ export type RefreshResourceResponse = Message<"akuity.io.kargo.service.v1alpha1. * Use `create(RefreshResourceResponseSchema)` to create a new message. */ export const RefreshResourceResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_api_service_v1alpha1_service, 171); + messageDesc(file_api_service_v1alpha1_service, 173); /** * RawFormat specifies the format for raw resource representation. @@ -5146,7 +5247,10 @@ export const KargoService: GenService<{ output: typeof RefreshResourceResponseSchema; }, /** - * ListStages retrieves all stages within a project. + * ListStages retrieves all stages within a project. Pass summary=true to + * receive a lightweight projection intended for list and graph views + * (heavy fields are stripped from each returned Stage; see the summary + * field on ListStagesRequest for details). * * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListStages */ @@ -5175,8 +5279,23 @@ export const KargoService: GenService<{ input: typeof GetStageRequestSchema; output: typeof GetStageResponseSchema; }, + /** + * GetStageHealthOutputs returns the raw health output blob for the + * specified Stages in a project. Intended for clients that use + * ListStages with summary=true and need to resolve per-argocd-app + * health only for the Stages currently in viewport. Stages that do not + * exist or have no health output recorded are omitted from the response. + * + * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetStageHealthOutputs + */ + getStageHealthOutputs: { + methodKind: "unary"; + input: typeof GetStageHealthOutputsRequestSchema; + output: typeof GetStageHealthOutputsResponseSchema; + }, /** * WatchStages provides a streaming interface to monitor stage changes. + * Pass summary=true to apply the same projection as ListStages. * * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.WatchStages */ diff --git a/ui/src/gen/api/v2/core/core.ts b/ui/src/gen/api/v2/core/core.ts index 7fc9998a91..7177595858 100644 --- a/ui/src/gen/api/v2/core/core.ts +++ b/ui/src/gen/api/v2/core/core.ts @@ -27,6 +27,8 @@ import type { ClusterPromotionTaskList, CreateConfigMapRequestBody, Freight, + GetStageHealthOutputsParams, + GithubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse, ListImages200, ListPromotionsParams, ListStagesParams, @@ -2896,9 +2898,197 @@ export const useRefreshPromotion = ( return useMutation(mutationOptions, queryClient); }; +/** + * Return the raw health output blob for the specified Stages +in a project. Stages that do not exist or have no recorded +health output are omitted from the response. Intended for +clients that use ListStages with summary=true (which omits the output +blob) and need to lazily resolve health for Stages currently +in viewport. + * @summary Get Stage Health Outputs + */ +export type getStageHealthOutputsResponse200 = { + data: GithubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse; + status: 200; +}; + +export type getStageHealthOutputsResponseSuccess = getStageHealthOutputsResponse200 & { + headers: Headers; +}; +export type getStageHealthOutputsResponse = getStageHealthOutputsResponseSuccess; + +export const getGetStageHealthOutputsUrl = ( + project: string, + params: GetStageHealthOutputsParams +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + const explodeParameters = ['stageNames']; + + if (Array.isArray(value) && explodeParameters.includes(key)) { + value.forEach((v) => { + normalizedParams.append(key, v === null ? 'null' : v.toString()); + }); + return; + } + + if (value !== undefined) { + normalizedParams.append(key, value === null ? 'null' : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/v1beta1/projects/${project}/stage-health-outputs?${stringifiedParams}` + : `/v1beta1/projects/${project}/stage-health-outputs`; +}; + +export const getStageHealthOutputs = async ( + project: string, + params: GetStageHealthOutputsParams, + options?: RequestInit +): Promise => { + return customFetch(getGetStageHealthOutputsUrl(project, params), { + ...options, + method: 'GET' + }); +}; + +export const getGetStageHealthOutputsQueryKey = ( + project?: string, + params?: GetStageHealthOutputsParams +) => { + return [ + `/v1beta1/projects/${project}/stage-health-outputs`, + ...(params ? [params] : []) + ] as const; +}; + +export const getGetStageHealthOutputsQueryOptions = < + TData = Awaited>, + TError = unknown +>( + project: string, + params: GetStageHealthOutputsParams, + options?: { + query?: Partial< + UseQueryOptions>, TError, TData> + >; + request?: SecondParameter; + } +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = queryOptions?.queryKey ?? getGetStageHealthOutputsQueryKey(project, params); + + const queryFn: QueryFunction>> = () => + getStageHealthOutputs(project, params, requestOptions); + + return { queryKey, queryFn, enabled: !!project, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type GetStageHealthOutputsQueryResult = NonNullable< + Awaited> +>; +export type GetStageHealthOutputsQueryError = unknown; + +export function useGetStageHealthOutputs< + TData = Awaited>, + TError = unknown +>( + project: string, + params: GetStageHealthOutputsParams, + options: { + query: Partial< + UseQueryOptions>, TError, TData> + > & + Pick< + DefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + 'initialData' + >; + request?: SecondParameter; + }, + queryClient?: QueryClient +): DefinedUseQueryResult & { queryKey: DataTag }; +export function useGetStageHealthOutputs< + TData = Awaited>, + TError = unknown +>( + project: string, + params: GetStageHealthOutputsParams, + options?: { + query?: Partial< + UseQueryOptions>, TError, TData> + > & + Pick< + UndefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + 'initialData' + >; + request?: SecondParameter; + }, + queryClient?: QueryClient +): UseQueryResult & { queryKey: DataTag }; +export function useGetStageHealthOutputs< + TData = Awaited>, + TError = unknown +>( + project: string, + params: GetStageHealthOutputsParams, + options?: { + query?: Partial< + UseQueryOptions>, TError, TData> + >; + request?: SecondParameter; + }, + queryClient?: QueryClient +): UseQueryResult & { queryKey: DataTag }; +/** + * @summary Get Stage Health Outputs + */ + +export function useGetStageHealthOutputs< + TData = Awaited>, + TError = unknown +>( + project: string, + params: GetStageHealthOutputsParams, + options?: { + query?: Partial< + UseQueryOptions>, TError, TData> + >; + request?: SecondParameter; + }, + queryClient?: QueryClient +): UseQueryResult & { queryKey: DataTag } { + const queryOptions = getGetStageHealthOutputsQueryOptions(project, params, options); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult & { + queryKey: DataTag; + }; + + query.queryKey = queryOptions.queryKey; + + return query; +} + /** * List Stage resources from a project's namespace. Returns a -StageList resource. +StageList resource. Pass summary=true to receive a lightweight +projection for list and graph views. * @summary List Stages */ export type listStagesResponse200 = { diff --git a/ui/src/gen/api/v2/models/getStageHealthOutputsParams.ts b/ui/src/gen/api/v2/models/getStageHealthOutputsParams.ts new file mode 100644 index 0000000000..ddeff01416 --- /dev/null +++ b/ui/src/gen/api/v2/models/getStageHealthOutputsParams.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.19.0 🍺 + * Do not edit manually. + * Kargo API + * REST API for Kargo + * OpenAPI spec version: v1alpha1 + */ + +export type GetStageHealthOutputsParams = { + /** + * Stage names to fetch health outputs for + */ + stageNames: string[]; +}; diff --git a/ui/src/gen/api/v2/models/githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse.ts b/ui/src/gen/api/v2/models/githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse.ts new file mode 100644 index 0000000000..e43cb2de3c --- /dev/null +++ b/ui/src/gen/api/v2/models/githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.19.0 🍺 + * Do not edit manually. + * Kargo API + * REST API for Kargo + * OpenAPI spec version: v1alpha1 + */ +import type { GithubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs } from './githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs'; + +export interface GithubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse { + /** health_outputs maps Stage name to the raw bytes of its +Stage.status.health.output.raw field. Stages that do not exist in the +project or have no health output recorded are omitted from the map. */ + health_outputs?: GithubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs; +} diff --git a/ui/src/gen/api/v2/models/githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs.ts b/ui/src/gen/api/v2/models/githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs.ts new file mode 100644 index 0000000000..3aed61b410 --- /dev/null +++ b/ui/src/gen/api/v2/models/githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.19.0 🍺 + * Do not edit manually. + * Kargo API + * REST API for Kargo + * OpenAPI spec version: v1alpha1 + */ + +/** + * health_outputs maps Stage name to the raw bytes of its +Stage.status.health.output.raw field. Stages that do not exist in the +project or have no health output recorded are omitted from the map. + */ +export type GithubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs = { + [key: string]: number[]; +}; diff --git a/ui/src/gen/api/v2/models/index.ts b/ui/src/gen/api/v2/models/index.ts index 4cda2465eb..66dc9d214d 100644 --- a/ui/src/gen/api/v2/models/index.ts +++ b/ui/src/gen/api/v2/models/index.ts @@ -80,6 +80,7 @@ export * from './getAnalysisRunLogsParams'; export * from './getConfigResponse'; export * from './getConfigResponseArgocdShards'; export * from './getProjectRole200'; +export * from './getStageHealthOutputsParams'; export * from './getSystemRole200'; export * from './gitClientConfig'; export * from './gitCommit'; @@ -87,6 +88,8 @@ export * from './gitDiscoveryResult'; export * from './gitHubWebhookReceiverConfig'; export * from './gitLabWebhookReceiverConfig'; export * from './giteaWebhookReceiverConfig'; +export * from './githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponse'; +export * from './githubComAkuityKargoApiServiceV1alpha1GetStageHealthOutputsResponseHealthOutputs'; export * from './grantRequest'; export * from './harborWebhookReceiverConfig'; export * from './health'; diff --git a/ui/src/gen/api/v2/models/listStagesParams.ts b/ui/src/gen/api/v2/models/listStagesParams.ts index ac700f043d..690a70b883 100644 --- a/ui/src/gen/api/v2/models/listStagesParams.ts +++ b/ui/src/gen/api/v2/models/listStagesParams.ts @@ -11,4 +11,8 @@ export type ListStagesParams = { * Warehouse names to filter Stages by */ freightOrigins?: string[]; + /** + * Strip heavy fields from each Stage + */ + summary?: boolean; };