diff --git a/go/gen/google/api/field_behavior.pb.go b/go/gen/google/api/field_behavior.pb.go index 8bfb00d93..4c978b71f 100644 --- a/go/gen/google/api/field_behavior.pb.go +++ b/go/gen/google/api/field_behavior.pb.go @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/go/gen/google/api/http.pb.go b/go/gen/google/api/http.pb.go index 1fb28a7e0..18e39f76a 100644 --- a/go/gen/google/api/http.pb.go +++ b/go/gen/google/api/http.pb.go @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/go/gen/sift/panel_configurations/v1/panel_configuration.pb.go b/go/gen/sift/panel_configurations/v1/panel_configuration.pb.go new file mode 100644 index 000000000..67faf1b88 --- /dev/null +++ b/go/gen/sift/panel_configurations/v1/panel_configuration.pb.go @@ -0,0 +1,1350 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: sift/panel_configurations/v1/panel_configuration.proto + +package panel_configurationsv1 + +import ( + _ "github.com/sift-stack/sift/go/gen/google/api" + _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" + v2 "github.com/sift-stack/sift/go/gen/sift/calculated_channels/v2" + v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PlottedChannelType int32 + +const ( + // Deprecated: Do not use. + PlottedChannelType_PLOTTED_CHANNEL_TYPE_UNSPECIFIED PlottedChannelType = 0 + PlottedChannelType_PLOTTED_CHANNEL_TYPE_REGULAR PlottedChannelType = 1 + PlottedChannelType_PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL PlottedChannelType = 2 + PlottedChannelType_PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT PlottedChannelType = 3 + PlottedChannelType_PLOTTED_CHANNEL_TYPE_ENUM PlottedChannelType = 4 +) + +// Enum value maps for PlottedChannelType. +var ( + PlottedChannelType_name = map[int32]string{ + 0: "PLOTTED_CHANNEL_TYPE_UNSPECIFIED", + 1: "PLOTTED_CHANNEL_TYPE_REGULAR", + 2: "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL", + 3: "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT", + 4: "PLOTTED_CHANNEL_TYPE_ENUM", + } + PlottedChannelType_value = map[string]int32{ + "PLOTTED_CHANNEL_TYPE_UNSPECIFIED": 0, + "PLOTTED_CHANNEL_TYPE_REGULAR": 1, + "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL": 2, + "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT": 3, + "PLOTTED_CHANNEL_TYPE_ENUM": 4, + } +) + +func (x PlottedChannelType) Enum() *PlottedChannelType { + p := new(PlottedChannelType) + *p = x + return p +} + +func (x PlottedChannelType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PlottedChannelType) Descriptor() protoreflect.EnumDescriptor { + return file_sift_panel_configurations_v1_panel_configuration_proto_enumTypes[0].Descriptor() +} + +func (PlottedChannelType) Type() protoreflect.EnumType { + return &file_sift_panel_configurations_v1_panel_configuration_proto_enumTypes[0] +} + +func (x PlottedChannelType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PlottedChannelType.Descriptor instead. +func (PlottedChannelType) EnumDescriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{0} +} + +type PanelConfiguration struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PanelConfigurationId string `protobuf:"bytes,1,opt,name=panel_configuration_id,json=panelConfigurationId,proto3" json:"panel_configuration_id,omitempty"` + VersionId string `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"` + Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` + ChangeMessage string `protobuf:"bytes,4,opt,name=change_message,json=changeMessage,proto3" json:"change_message,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + ChannelConfigurations []*ChannelConfigurations `protobuf:"bytes,6,rep,name=channel_configurations,json=channelConfigurations,proto3" json:"channel_configurations,omitempty"` + ChartSettings *structpb.Struct `protobuf:"bytes,7,opt,name=chart_settings,json=chartSettings,proto3,oneof" json:"chart_settings,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,11,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,12,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` + IsArchived bool `protobuf:"varint,13,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` +} + +func (x *PanelConfiguration) Reset() { + *x = PanelConfiguration{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PanelConfiguration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PanelConfiguration) ProtoMessage() {} + +func (x *PanelConfiguration) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[0] + 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 PanelConfiguration.ProtoReflect.Descriptor instead. +func (*PanelConfiguration) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{0} +} + +func (x *PanelConfiguration) GetPanelConfigurationId() string { + if x != nil { + return x.PanelConfigurationId + } + return "" +} + +func (x *PanelConfiguration) GetVersionId() string { + if x != nil { + return x.VersionId + } + return "" +} + +func (x *PanelConfiguration) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *PanelConfiguration) GetChangeMessage() string { + if x != nil { + return x.ChangeMessage + } + return "" +} + +func (x *PanelConfiguration) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PanelConfiguration) GetChannelConfigurations() []*ChannelConfigurations { + if x != nil { + return x.ChannelConfigurations + } + return nil +} + +func (x *PanelConfiguration) GetChartSettings() *structpb.Struct { + if x != nil { + return x.ChartSettings + } + return nil +} + +func (x *PanelConfiguration) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *PanelConfiguration) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *PanelConfiguration) GetArchivedDate() *timestamppb.Timestamp { + if x != nil { + return x.ArchivedDate + } + return nil +} + +func (x *PanelConfiguration) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *PanelConfiguration) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +func (x *PanelConfiguration) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + +type ChannelConfigurations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type PlottedChannelType `protobuf:"varint,2,opt,name=type,proto3,enum=sift.panel_configurations.v1.PlottedChannelType" json:"type,omitempty"` + Color string `protobuf:"bytes,3,opt,name=color,proto3" json:"color,omitempty"` + ChannelSettings *structpb.Struct `protobuf:"bytes,4,opt,name=channel_settings,json=channelSettings,proto3" json:"channel_settings,omitempty"` + // bitfield + BitFieldIndex *int32 `protobuf:"varint,5,opt,name=bit_field_index,json=bitFieldIndex,proto3,oneof" json:"bit_field_index,omitempty"` + BitFieldElement *v1.ChannelBitFieldElement `protobuf:"bytes,6,opt,name=bit_field_element,json=bitFieldElement,proto3,oneof" json:"bit_field_element,omitempty"` + // temporary calculated channel + Expression *string `protobuf:"bytes,7,opt,name=expression,proto3,oneof" json:"expression,omitempty"` + ExpressionChannelReferences []*v2.CalculatedChannelAbstractChannelReference `protobuf:"bytes,8,rep,name=expression_channel_references,json=expressionChannelReferences,proto3" json:"expression_channel_references,omitempty"` + DataType *v1.ChannelDataType `protobuf:"varint,9,opt,name=data_type,json=dataType,proto3,enum=sift.common.type.v1.ChannelDataType,oneof" json:"data_type,omitempty"` +} + +func (x *ChannelConfigurations) Reset() { + *x = ChannelConfigurations{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelConfigurations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelConfigurations) ProtoMessage() {} + +func (x *ChannelConfigurations) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[1] + 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 ChannelConfigurations.ProtoReflect.Descriptor instead. +func (*ChannelConfigurations) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{1} +} + +func (x *ChannelConfigurations) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ChannelConfigurations) GetType() PlottedChannelType { + if x != nil { + return x.Type + } + return PlottedChannelType_PLOTTED_CHANNEL_TYPE_UNSPECIFIED +} + +func (x *ChannelConfigurations) GetColor() string { + if x != nil { + return x.Color + } + return "" +} + +func (x *ChannelConfigurations) GetChannelSettings() *structpb.Struct { + if x != nil { + return x.ChannelSettings + } + return nil +} + +func (x *ChannelConfigurations) GetBitFieldIndex() int32 { + if x != nil && x.BitFieldIndex != nil { + return *x.BitFieldIndex + } + return 0 +} + +func (x *ChannelConfigurations) GetBitFieldElement() *v1.ChannelBitFieldElement { + if x != nil { + return x.BitFieldElement + } + return nil +} + +func (x *ChannelConfigurations) GetExpression() string { + if x != nil && x.Expression != nil { + return *x.Expression + } + return "" +} + +func (x *ChannelConfigurations) GetExpressionChannelReferences() []*v2.CalculatedChannelAbstractChannelReference { + if x != nil { + return x.ExpressionChannelReferences + } + return nil +} + +func (x *ChannelConfigurations) GetDataType() v1.ChannelDataType { + if x != nil && x.DataType != nil { + return *x.DataType + } + return v1.ChannelDataType(0) +} + +type GetPanelConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PanelConfigurationId string `protobuf:"bytes,1,opt,name=panel_configuration_id,json=panelConfigurationId,proto3" json:"panel_configuration_id,omitempty"` +} + +func (x *GetPanelConfigurationRequest) Reset() { + *x = GetPanelConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPanelConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPanelConfigurationRequest) ProtoMessage() {} + +func (x *GetPanelConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[2] + 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 GetPanelConfigurationRequest.ProtoReflect.Descriptor instead. +func (*GetPanelConfigurationRequest) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{2} +} + +func (x *GetPanelConfigurationRequest) GetPanelConfigurationId() string { + if x != nil { + return x.PanelConfigurationId + } + return "" +} + +type GetPanelConfigurationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PanelConfiguration *PanelConfiguration `protobuf:"bytes,1,opt,name=panel_configuration,json=panelConfiguration,proto3" json:"panel_configuration,omitempty"` +} + +func (x *GetPanelConfigurationResponse) Reset() { + *x = GetPanelConfigurationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPanelConfigurationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPanelConfigurationResponse) ProtoMessage() {} + +func (x *GetPanelConfigurationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[3] + 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 GetPanelConfigurationResponse.ProtoReflect.Descriptor instead. +func (*GetPanelConfigurationResponse) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{3} +} + +func (x *GetPanelConfigurationResponse) GetPanelConfiguration() *PanelConfiguration { + if x != nil { + return x.PanelConfiguration + } + return nil +} + +type ListPanelConfigurationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of panel configurations to return. + // The service may return fewer than this value. + // If unspecified, at most 50 panel configurations will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListPanelConfigurations` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListPanelConfigurations` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string + // Available fields to filter by are 'name', 'created_date', 'modified_date', and 'is_archived'. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved panel configurations. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are `name`. + // If left empty, items are ordered by `name` in ascending order (alphabetical). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "name" + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + RunIds []string `protobuf:"bytes,5,rep,name=run_ids,json=runIds,proto3" json:"run_ids,omitempty"` + AssetIds []string `protobuf:"bytes,6,rep,name=asset_ids,json=assetIds,proto3" json:"asset_ids,omitempty"` +} + +func (x *ListPanelConfigurationsRequest) Reset() { + *x = ListPanelConfigurationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPanelConfigurationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPanelConfigurationsRequest) ProtoMessage() {} + +func (x *ListPanelConfigurationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[4] + 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 ListPanelConfigurationsRequest.ProtoReflect.Descriptor instead. +func (*ListPanelConfigurationsRequest) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{4} +} + +func (x *ListPanelConfigurationsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListPanelConfigurationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListPanelConfigurationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListPanelConfigurationsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListPanelConfigurationsRequest) GetRunIds() []string { + if x != nil { + return x.RunIds + } + return nil +} + +func (x *ListPanelConfigurationsRequest) GetAssetIds() []string { + if x != nil { + return x.AssetIds + } + return nil +} + +type ListPanelConfigurationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PanelConfigurations []*PanelConfiguration `protobuf:"bytes,1,rep,name=panel_configurations,json=panelConfigurations,proto3" json:"panel_configurations,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListPanelConfigurationsResponse) Reset() { + *x = ListPanelConfigurationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPanelConfigurationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPanelConfigurationsResponse) ProtoMessage() {} + +func (x *ListPanelConfigurationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[5] + 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 ListPanelConfigurationsResponse.ProtoReflect.Descriptor instead. +func (*ListPanelConfigurationsResponse) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{5} +} + +func (x *ListPanelConfigurationsResponse) GetPanelConfigurations() []*PanelConfiguration { + if x != nil { + return x.PanelConfigurations + } + return nil +} + +func (x *ListPanelConfigurationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type CreatePanelConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + ChannelConfigurations []*ChannelConfigurations `protobuf:"bytes,2,rep,name=channel_configurations,json=channelConfigurations,proto3" json:"channel_configurations,omitempty"` + ChartSettings *structpb.Struct `protobuf:"bytes,3,opt,name=chart_settings,json=chartSettings,proto3,oneof" json:"chart_settings,omitempty"` +} + +func (x *CreatePanelConfigurationRequest) Reset() { + *x = CreatePanelConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePanelConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePanelConfigurationRequest) ProtoMessage() {} + +func (x *CreatePanelConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[6] + 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 CreatePanelConfigurationRequest.ProtoReflect.Descriptor instead. +func (*CreatePanelConfigurationRequest) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{6} +} + +func (x *CreatePanelConfigurationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreatePanelConfigurationRequest) GetChannelConfigurations() []*ChannelConfigurations { + if x != nil { + return x.ChannelConfigurations + } + return nil +} + +func (x *CreatePanelConfigurationRequest) GetChartSettings() *structpb.Struct { + if x != nil { + return x.ChartSettings + } + return nil +} + +type CreatePanelConfigurationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PanelConfiguration *PanelConfiguration `protobuf:"bytes,1,opt,name=panel_configuration,json=panelConfiguration,proto3" json:"panel_configuration,omitempty"` +} + +func (x *CreatePanelConfigurationResponse) Reset() { + *x = CreatePanelConfigurationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePanelConfigurationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePanelConfigurationResponse) ProtoMessage() {} + +func (x *CreatePanelConfigurationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[7] + 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 CreatePanelConfigurationResponse.ProtoReflect.Descriptor instead. +func (*CreatePanelConfigurationResponse) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{7} +} + +func (x *CreatePanelConfigurationResponse) GetPanelConfiguration() *PanelConfiguration { + if x != nil { + return x.PanelConfiguration + } + return nil +} + +// The request for a call to `PanelConfigurationService_UpdatePanelConfiguration` to update a panel configuration. Updating a panel +// configuration creates a new version of the panel configuration, leaving the previous untouched. If no update is deemed necessary, then the +// the current version is returned. Use `is_archived` to archive/unarchive a panel configuration. +type UpdatePanelConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The panel configuration to update. + PanelConfiguration *PanelConfiguration `protobuf:"bytes,1,opt,name=panel_configuration,json=panelConfiguration,proto3" json:"panel_configuration,omitempty"` + // The list of fields to be updated. The fields available to be updated are `name`, `channel_configurations`, + // `chart_settings`, and `is_archived`. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdatePanelConfigurationRequest) Reset() { + *x = UpdatePanelConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePanelConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePanelConfigurationRequest) ProtoMessage() {} + +func (x *UpdatePanelConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[8] + 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 UpdatePanelConfigurationRequest.ProtoReflect.Descriptor instead. +func (*UpdatePanelConfigurationRequest) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{8} +} + +func (x *UpdatePanelConfigurationRequest) GetPanelConfiguration() *PanelConfiguration { + if x != nil { + return x.PanelConfiguration + } + return nil +} + +func (x *UpdatePanelConfigurationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +type UpdatePanelConfigurationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PanelConfiguration *PanelConfiguration `protobuf:"bytes,1,opt,name=panel_configuration,json=panelConfiguration,proto3" json:"panel_configuration,omitempty"` +} + +func (x *UpdatePanelConfigurationResponse) Reset() { + *x = UpdatePanelConfigurationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePanelConfigurationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePanelConfigurationResponse) ProtoMessage() {} + +func (x *UpdatePanelConfigurationResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[9] + 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 UpdatePanelConfigurationResponse.ProtoReflect.Descriptor instead. +func (*UpdatePanelConfigurationResponse) Descriptor() ([]byte, []int) { + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdatePanelConfigurationResponse) GetPanelConfiguration() *PanelConfiguration { + if x != nil { + return x.PanelConfiguration + } + return nil +} + +var File_sift_panel_configurations_v1_panel_configuration_proto protoreflect.FileDescriptor + +var file_sift_panel_configurations_v1_panel_configuration_proto_rawDesc = []byte{ + 0x0a, 0x36, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, + 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x73, + 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xc0, 0x05, 0x0a, 0x12, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x6a, 0x0a, 0x16, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0e, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, + 0x0d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3f, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x2d, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x22, 0xab, 0x05, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x47, 0x0a, 0x10, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x0d, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x5c, 0x0a, 0x11, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x69, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0f, 0x62, 0x69, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x8a, 0x01, 0x0a, 0x1d, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x62, 0x73, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x52, 0x1b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, + 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x59, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x39, 0x0a, 0x16, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x1d, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, + 0x13, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xd4, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, + 0x75, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x14, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x83, 0x02, 0x0a, 0x1f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x85, + 0x01, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x13, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x13, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x85, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x13, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0xd8, 0x01, 0x0a, + 0x12, 0x50, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x20, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x20, 0x0a, + 0x1c, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x01, 0x12, + 0x2b, 0x0a, 0x27, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x43, 0x55, 0x4c, 0x41, 0x54, + 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, + 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, + 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4c, 0x4f, 0x54, + 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x04, 0x32, 0xfa, 0x09, 0x0a, 0x19, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8b, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x39, 0x12, 0x15, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x7d, 0x12, 0x92, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7a, 0x92, 0x41, + 0x53, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x38, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xff, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x92, 0x41, 0x3a, 0x12, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf1, 0x02, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd5, 0x01, 0x92, 0x41, 0x7e, 0x12, 0x18, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, + 0x3a, 0x01, 0x2a, 0x32, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x1a, 0x44, + 0x92, 0x41, 0x41, 0x12, 0x3f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0xc2, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x55, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x50, + 0x58, 0xaa, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x27, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1f, 0x12, 0x1d, 0x0a, 0x1b, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_sift_panel_configurations_v1_panel_configuration_proto_rawDescOnce sync.Once + file_sift_panel_configurations_v1_panel_configuration_proto_rawDescData = file_sift_panel_configurations_v1_panel_configuration_proto_rawDesc +) + +func file_sift_panel_configurations_v1_panel_configuration_proto_rawDescGZIP() []byte { + file_sift_panel_configurations_v1_panel_configuration_proto_rawDescOnce.Do(func() { + file_sift_panel_configurations_v1_panel_configuration_proto_rawDescData = protoimpl.X.CompressGZIP(file_sift_panel_configurations_v1_panel_configuration_proto_rawDescData) + }) + return file_sift_panel_configurations_v1_panel_configuration_proto_rawDescData +} + +var file_sift_panel_configurations_v1_panel_configuration_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_sift_panel_configurations_v1_panel_configuration_proto_goTypes = []interface{}{ + (PlottedChannelType)(0), // 0: sift.panel_configurations.v1.PlottedChannelType + (*PanelConfiguration)(nil), // 1: sift.panel_configurations.v1.PanelConfiguration + (*ChannelConfigurations)(nil), // 2: sift.panel_configurations.v1.ChannelConfigurations + (*GetPanelConfigurationRequest)(nil), // 3: sift.panel_configurations.v1.GetPanelConfigurationRequest + (*GetPanelConfigurationResponse)(nil), // 4: sift.panel_configurations.v1.GetPanelConfigurationResponse + (*ListPanelConfigurationsRequest)(nil), // 5: sift.panel_configurations.v1.ListPanelConfigurationsRequest + (*ListPanelConfigurationsResponse)(nil), // 6: sift.panel_configurations.v1.ListPanelConfigurationsResponse + (*CreatePanelConfigurationRequest)(nil), // 7: sift.panel_configurations.v1.CreatePanelConfigurationRequest + (*CreatePanelConfigurationResponse)(nil), // 8: sift.panel_configurations.v1.CreatePanelConfigurationResponse + (*UpdatePanelConfigurationRequest)(nil), // 9: sift.panel_configurations.v1.UpdatePanelConfigurationRequest + (*UpdatePanelConfigurationResponse)(nil), // 10: sift.panel_configurations.v1.UpdatePanelConfigurationResponse + (*structpb.Struct)(nil), // 11: google.protobuf.Struct + (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp + (*v1.ChannelBitFieldElement)(nil), // 13: sift.common.type.v1.ChannelBitFieldElement + (*v2.CalculatedChannelAbstractChannelReference)(nil), // 14: sift.calculated_channels.v2.CalculatedChannelAbstractChannelReference + (v1.ChannelDataType)(0), // 15: sift.common.type.v1.ChannelDataType + (*fieldmaskpb.FieldMask)(nil), // 16: google.protobuf.FieldMask +} +var file_sift_panel_configurations_v1_panel_configuration_proto_depIdxs = []int32{ + 2, // 0: sift.panel_configurations.v1.PanelConfiguration.channel_configurations:type_name -> sift.panel_configurations.v1.ChannelConfigurations + 11, // 1: sift.panel_configurations.v1.PanelConfiguration.chart_settings:type_name -> google.protobuf.Struct + 12, // 2: sift.panel_configurations.v1.PanelConfiguration.created_date:type_name -> google.protobuf.Timestamp + 12, // 3: sift.panel_configurations.v1.PanelConfiguration.modified_date:type_name -> google.protobuf.Timestamp + 12, // 4: sift.panel_configurations.v1.PanelConfiguration.archived_date:type_name -> google.protobuf.Timestamp + 0, // 5: sift.panel_configurations.v1.ChannelConfigurations.type:type_name -> sift.panel_configurations.v1.PlottedChannelType + 11, // 6: sift.panel_configurations.v1.ChannelConfigurations.channel_settings:type_name -> google.protobuf.Struct + 13, // 7: sift.panel_configurations.v1.ChannelConfigurations.bit_field_element:type_name -> sift.common.type.v1.ChannelBitFieldElement + 14, // 8: sift.panel_configurations.v1.ChannelConfigurations.expression_channel_references:type_name -> sift.calculated_channels.v2.CalculatedChannelAbstractChannelReference + 15, // 9: sift.panel_configurations.v1.ChannelConfigurations.data_type:type_name -> sift.common.type.v1.ChannelDataType + 1, // 10: sift.panel_configurations.v1.GetPanelConfigurationResponse.panel_configuration:type_name -> sift.panel_configurations.v1.PanelConfiguration + 1, // 11: sift.panel_configurations.v1.ListPanelConfigurationsResponse.panel_configurations:type_name -> sift.panel_configurations.v1.PanelConfiguration + 2, // 12: sift.panel_configurations.v1.CreatePanelConfigurationRequest.channel_configurations:type_name -> sift.panel_configurations.v1.ChannelConfigurations + 11, // 13: sift.panel_configurations.v1.CreatePanelConfigurationRequest.chart_settings:type_name -> google.protobuf.Struct + 1, // 14: sift.panel_configurations.v1.CreatePanelConfigurationResponse.panel_configuration:type_name -> sift.panel_configurations.v1.PanelConfiguration + 1, // 15: sift.panel_configurations.v1.UpdatePanelConfigurationRequest.panel_configuration:type_name -> sift.panel_configurations.v1.PanelConfiguration + 16, // 16: sift.panel_configurations.v1.UpdatePanelConfigurationRequest.update_mask:type_name -> google.protobuf.FieldMask + 1, // 17: sift.panel_configurations.v1.UpdatePanelConfigurationResponse.panel_configuration:type_name -> sift.panel_configurations.v1.PanelConfiguration + 3, // 18: sift.panel_configurations.v1.PanelConfigurationService.GetPanelConfiguration:input_type -> sift.panel_configurations.v1.GetPanelConfigurationRequest + 5, // 19: sift.panel_configurations.v1.PanelConfigurationService.ListPanelConfigurations:input_type -> sift.panel_configurations.v1.ListPanelConfigurationsRequest + 7, // 20: sift.panel_configurations.v1.PanelConfigurationService.CreatePanelConfiguration:input_type -> sift.panel_configurations.v1.CreatePanelConfigurationRequest + 9, // 21: sift.panel_configurations.v1.PanelConfigurationService.UpdatePanelConfiguration:input_type -> sift.panel_configurations.v1.UpdatePanelConfigurationRequest + 4, // 22: sift.panel_configurations.v1.PanelConfigurationService.GetPanelConfiguration:output_type -> sift.panel_configurations.v1.GetPanelConfigurationResponse + 6, // 23: sift.panel_configurations.v1.PanelConfigurationService.ListPanelConfigurations:output_type -> sift.panel_configurations.v1.ListPanelConfigurationsResponse + 8, // 24: sift.panel_configurations.v1.PanelConfigurationService.CreatePanelConfiguration:output_type -> sift.panel_configurations.v1.CreatePanelConfigurationResponse + 10, // 25: sift.panel_configurations.v1.PanelConfigurationService.UpdatePanelConfiguration:output_type -> sift.panel_configurations.v1.UpdatePanelConfigurationResponse + 22, // [22:26] is the sub-list for method output_type + 18, // [18:22] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name +} + +func init() { file_sift_panel_configurations_v1_panel_configuration_proto_init() } +func file_sift_panel_configurations_v1_panel_configuration_proto_init() { + if File_sift_panel_configurations_v1_panel_configuration_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PanelConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelConfigurations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPanelConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPanelConfigurationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPanelConfigurationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPanelConfigurationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePanelConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePanelConfigurationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePanelConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePanelConfigurationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes[6].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sift_panel_configurations_v1_panel_configuration_proto_rawDesc, + NumEnums: 1, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sift_panel_configurations_v1_panel_configuration_proto_goTypes, + DependencyIndexes: file_sift_panel_configurations_v1_panel_configuration_proto_depIdxs, + EnumInfos: file_sift_panel_configurations_v1_panel_configuration_proto_enumTypes, + MessageInfos: file_sift_panel_configurations_v1_panel_configuration_proto_msgTypes, + }.Build() + File_sift_panel_configurations_v1_panel_configuration_proto = out.File + file_sift_panel_configurations_v1_panel_configuration_proto_rawDesc = nil + file_sift_panel_configurations_v1_panel_configuration_proto_goTypes = nil + file_sift_panel_configurations_v1_panel_configuration_proto_depIdxs = nil +} diff --git a/go/gen/sift/panel_configurations/v1/panel_configuration.pb.gw.go b/go/gen/sift/panel_configurations/v1/panel_configuration.pb.gw.go new file mode 100644 index 000000000..f426035b6 --- /dev/null +++ b/go/gen/sift/panel_configurations/v1/panel_configuration.pb.gw.go @@ -0,0 +1,480 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: sift/panel_configurations/v1/panel_configuration.proto + +/* +Package panel_configurationsv1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package panel_configurationsv1 + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_PanelConfigurationService_GetPanelConfiguration_0(ctx context.Context, marshaler runtime.Marshaler, client PanelConfigurationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPanelConfigurationRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["panel_configuration_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "panel_configuration_id") + } + + protoReq.PanelConfigurationId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "panel_configuration_id", err) + } + + msg, err := client.GetPanelConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PanelConfigurationService_GetPanelConfiguration_0(ctx context.Context, marshaler runtime.Marshaler, server PanelConfigurationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPanelConfigurationRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["panel_configuration_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "panel_configuration_id") + } + + protoReq.PanelConfigurationId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "panel_configuration_id", err) + } + + msg, err := server.GetPanelConfiguration(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_PanelConfigurationService_ListPanelConfigurations_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_PanelConfigurationService_ListPanelConfigurations_0(ctx context.Context, marshaler runtime.Marshaler, client PanelConfigurationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListPanelConfigurationsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PanelConfigurationService_ListPanelConfigurations_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListPanelConfigurations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PanelConfigurationService_ListPanelConfigurations_0(ctx context.Context, marshaler runtime.Marshaler, server PanelConfigurationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListPanelConfigurationsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PanelConfigurationService_ListPanelConfigurations_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListPanelConfigurations(ctx, &protoReq) + return msg, metadata, err + +} + +func request_PanelConfigurationService_CreatePanelConfiguration_0(ctx context.Context, marshaler runtime.Marshaler, client PanelConfigurationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreatePanelConfigurationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreatePanelConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PanelConfigurationService_CreatePanelConfiguration_0(ctx context.Context, marshaler runtime.Marshaler, server PanelConfigurationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreatePanelConfigurationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreatePanelConfiguration(ctx, &protoReq) + return msg, metadata, err + +} + +func request_PanelConfigurationService_UpdatePanelConfiguration_0(ctx context.Context, marshaler runtime.Marshaler, client PanelConfigurationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdatePanelConfigurationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["panel_configuration.panel_configuration_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "panel_configuration.panel_configuration_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "panel_configuration.panel_configuration_id", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "panel_configuration.panel_configuration_id", err) + } + + msg, err := client.UpdatePanelConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_PanelConfigurationService_UpdatePanelConfiguration_0(ctx context.Context, marshaler runtime.Marshaler, server PanelConfigurationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdatePanelConfigurationRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["panel_configuration.panel_configuration_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "panel_configuration.panel_configuration_id") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "panel_configuration.panel_configuration_id", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "panel_configuration.panel_configuration_id", err) + } + + msg, err := server.UpdatePanelConfiguration(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterPanelConfigurationServiceHandlerServer registers the http handlers for service PanelConfigurationService to "mux". +// UnaryRPC :call PanelConfigurationServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPanelConfigurationServiceHandlerFromEndpoint instead. +func RegisterPanelConfigurationServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PanelConfigurationServiceServer) error { + + mux.Handle("GET", pattern_PanelConfigurationService_GetPanelConfiguration_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration", runtime.WithHTTPPathPattern("/api/v1/panel-configurations/{panel_configuration_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PanelConfigurationService_GetPanelConfiguration_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_GetPanelConfiguration_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PanelConfigurationService_ListPanelConfigurations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations", runtime.WithHTTPPathPattern("/api/v1/panel-configurations")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PanelConfigurationService_ListPanelConfigurations_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_ListPanelConfigurations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_PanelConfigurationService_CreatePanelConfiguration_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration", runtime.WithHTTPPathPattern("/api/v1/panel-configurations")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PanelConfigurationService_CreatePanelConfiguration_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_CreatePanelConfiguration_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_PanelConfigurationService_UpdatePanelConfiguration_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration", runtime.WithHTTPPathPattern("/api/v1/panel-configurations/{panel_configuration.panel_configuration_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PanelConfigurationService_UpdatePanelConfiguration_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_UpdatePanelConfiguration_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterPanelConfigurationServiceHandlerFromEndpoint is same as RegisterPanelConfigurationServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterPanelConfigurationServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterPanelConfigurationServiceHandler(ctx, mux, conn) +} + +// RegisterPanelConfigurationServiceHandler registers the http handlers for service PanelConfigurationService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterPanelConfigurationServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterPanelConfigurationServiceHandlerClient(ctx, mux, NewPanelConfigurationServiceClient(conn)) +} + +// RegisterPanelConfigurationServiceHandlerClient registers the http handlers for service PanelConfigurationService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PanelConfigurationServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PanelConfigurationServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "PanelConfigurationServiceClient" to call the correct interceptors. +func RegisterPanelConfigurationServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PanelConfigurationServiceClient) error { + + mux.Handle("GET", pattern_PanelConfigurationService_GetPanelConfiguration_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration", runtime.WithHTTPPathPattern("/api/v1/panel-configurations/{panel_configuration_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PanelConfigurationService_GetPanelConfiguration_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_GetPanelConfiguration_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_PanelConfigurationService_ListPanelConfigurations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations", runtime.WithHTTPPathPattern("/api/v1/panel-configurations")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PanelConfigurationService_ListPanelConfigurations_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_ListPanelConfigurations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_PanelConfigurationService_CreatePanelConfiguration_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration", runtime.WithHTTPPathPattern("/api/v1/panel-configurations")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PanelConfigurationService_CreatePanelConfiguration_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_CreatePanelConfiguration_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_PanelConfigurationService_UpdatePanelConfiguration_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration", runtime.WithHTTPPathPattern("/api/v1/panel-configurations/{panel_configuration.panel_configuration_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PanelConfigurationService_UpdatePanelConfiguration_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_PanelConfigurationService_UpdatePanelConfiguration_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_PanelConfigurationService_GetPanelConfiguration_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "panel-configurations", "panel_configuration_id"}, "")) + + pattern_PanelConfigurationService_ListPanelConfigurations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "panel-configurations"}, "")) + + pattern_PanelConfigurationService_CreatePanelConfiguration_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "panel-configurations"}, "")) + + pattern_PanelConfigurationService_UpdatePanelConfiguration_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "panel-configurations", "panel_configuration.panel_configuration_id"}, "")) +) + +var ( + forward_PanelConfigurationService_GetPanelConfiguration_0 = runtime.ForwardResponseMessage + + forward_PanelConfigurationService_ListPanelConfigurations_0 = runtime.ForwardResponseMessage + + forward_PanelConfigurationService_CreatePanelConfiguration_0 = runtime.ForwardResponseMessage + + forward_PanelConfigurationService_UpdatePanelConfiguration_0 = runtime.ForwardResponseMessage +) diff --git a/go/gen/sift/panel_configurations/v1/panel_configuration_vtproto.pb.go b/go/gen/sift/panel_configurations/v1/panel_configuration_vtproto.pb.go new file mode 100644 index 000000000..11a5254c3 --- /dev/null +++ b/go/gen/sift/panel_configurations/v1/panel_configuration_vtproto.pb.go @@ -0,0 +1,6068 @@ +// Code generated by protoc-gen-go-vtproto. DO NOT EDIT. +// protoc-gen-go-vtproto version: v0.6.0 +// source: sift/panel_configurations/v1/panel_configuration.proto + +package panel_configurationsv1 + +import ( + context "context" + fmt "fmt" + protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + fieldmaskpb1 "github.com/planetscale/vtprotobuf/types/known/fieldmaskpb" + structpb1 "github.com/planetscale/vtprotobuf/types/known/structpb" + timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + v2 "github.com/sift-stack/sift/go/gen/sift/calculated_channels/v2" + v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + proto "google.golang.org/protobuf/proto" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + io "io" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +func (m *PanelConfiguration) CloneVT() *PanelConfiguration { + if m == nil { + return (*PanelConfiguration)(nil) + } + r := new(PanelConfiguration) + r.PanelConfigurationId = m.PanelConfigurationId + r.VersionId = m.VersionId + r.Version = m.Version + r.ChangeMessage = m.ChangeMessage + r.Name = m.Name + r.ChartSettings = (*structpb.Struct)((*structpb1.Struct)(m.ChartSettings).CloneVT()) + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + r.IsArchived = m.IsArchived + if rhs := m.ChannelConfigurations; rhs != nil { + tmpContainer := make([]*ChannelConfigurations, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.ChannelConfigurations = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *PanelConfiguration) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ChannelConfigurations) CloneVT() *ChannelConfigurations { + if m == nil { + return (*ChannelConfigurations)(nil) + } + r := new(ChannelConfigurations) + r.Name = m.Name + r.Type = m.Type + r.Color = m.Color + r.ChannelSettings = (*structpb.Struct)((*structpb1.Struct)(m.ChannelSettings).CloneVT()) + if rhs := m.BitFieldIndex; rhs != nil { + tmpVal := *rhs + r.BitFieldIndex = &tmpVal + } + if rhs := m.BitFieldElement; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface { + CloneVT() *v1.ChannelBitFieldElement + }); ok { + r.BitFieldElement = vtpb.CloneVT() + } else { + r.BitFieldElement = proto.Clone(rhs).(*v1.ChannelBitFieldElement) + } + } + if rhs := m.Expression; rhs != nil { + tmpVal := *rhs + r.Expression = &tmpVal + } + if rhs := m.ExpressionChannelReferences; rhs != nil { + tmpContainer := make([]*v2.CalculatedChannelAbstractChannelReference, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface { + CloneVT() *v2.CalculatedChannelAbstractChannelReference + }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v2.CalculatedChannelAbstractChannelReference) + } + } + r.ExpressionChannelReferences = tmpContainer + } + if rhs := m.DataType; rhs != nil { + tmpVal := *rhs + r.DataType = &tmpVal + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ChannelConfigurations) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetPanelConfigurationRequest) CloneVT() *GetPanelConfigurationRequest { + if m == nil { + return (*GetPanelConfigurationRequest)(nil) + } + r := new(GetPanelConfigurationRequest) + r.PanelConfigurationId = m.PanelConfigurationId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetPanelConfigurationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetPanelConfigurationResponse) CloneVT() *GetPanelConfigurationResponse { + if m == nil { + return (*GetPanelConfigurationResponse)(nil) + } + r := new(GetPanelConfigurationResponse) + r.PanelConfiguration = m.PanelConfiguration.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetPanelConfigurationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListPanelConfigurationsRequest) CloneVT() *ListPanelConfigurationsRequest { + if m == nil { + return (*ListPanelConfigurationsRequest)(nil) + } + r := new(ListPanelConfigurationsRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + if rhs := m.RunIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.RunIds = tmpContainer + } + if rhs := m.AssetIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.AssetIds = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListPanelConfigurationsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListPanelConfigurationsResponse) CloneVT() *ListPanelConfigurationsResponse { + if m == nil { + return (*ListPanelConfigurationsResponse)(nil) + } + r := new(ListPanelConfigurationsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.PanelConfigurations; rhs != nil { + tmpContainer := make([]*PanelConfiguration, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.PanelConfigurations = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListPanelConfigurationsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreatePanelConfigurationRequest) CloneVT() *CreatePanelConfigurationRequest { + if m == nil { + return (*CreatePanelConfigurationRequest)(nil) + } + r := new(CreatePanelConfigurationRequest) + r.Name = m.Name + r.ChartSettings = (*structpb.Struct)((*structpb1.Struct)(m.ChartSettings).CloneVT()) + if rhs := m.ChannelConfigurations; rhs != nil { + tmpContainer := make([]*ChannelConfigurations, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.ChannelConfigurations = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreatePanelConfigurationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreatePanelConfigurationResponse) CloneVT() *CreatePanelConfigurationResponse { + if m == nil { + return (*CreatePanelConfigurationResponse)(nil) + } + r := new(CreatePanelConfigurationResponse) + r.PanelConfiguration = m.PanelConfiguration.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreatePanelConfigurationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UpdatePanelConfigurationRequest) CloneVT() *UpdatePanelConfigurationRequest { + if m == nil { + return (*UpdatePanelConfigurationRequest)(nil) + } + r := new(UpdatePanelConfigurationRequest) + r.PanelConfiguration = m.PanelConfiguration.CloneVT() + r.UpdateMask = (*fieldmaskpb.FieldMask)((*fieldmaskpb1.FieldMask)(m.UpdateMask).CloneVT()) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UpdatePanelConfigurationRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UpdatePanelConfigurationResponse) CloneVT() *UpdatePanelConfigurationResponse { + if m == nil { + return (*UpdatePanelConfigurationResponse)(nil) + } + r := new(UpdatePanelConfigurationResponse) + r.PanelConfiguration = m.PanelConfiguration.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UpdatePanelConfigurationResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (this *PanelConfiguration) EqualVT(that *PanelConfiguration) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PanelConfigurationId != that.PanelConfigurationId { + return false + } + if this.VersionId != that.VersionId { + return false + } + if this.Version != that.Version { + return false + } + if this.ChangeMessage != that.ChangeMessage { + return false + } + if this.Name != that.Name { + return false + } + if len(this.ChannelConfigurations) != len(that.ChannelConfigurations) { + return false + } + for i, vx := range this.ChannelConfigurations { + vy := that.ChannelConfigurations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &ChannelConfigurations{} + } + if q == nil { + q = &ChannelConfigurations{} + } + if !p.EqualVT(q) { + return false + } + } + } + if !(*structpb1.Struct)(this.ChartSettings).EqualVT((*structpb1.Struct)(that.ChartSettings)) { + return false + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + if this.IsArchived != that.IsArchived { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *PanelConfiguration) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*PanelConfiguration) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ChannelConfigurations) EqualVT(that *ChannelConfigurations) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if this.Type != that.Type { + return false + } + if this.Color != that.Color { + return false + } + if !(*structpb1.Struct)(this.ChannelSettings).EqualVT((*structpb1.Struct)(that.ChannelSettings)) { + return false + } + if p, q := this.BitFieldIndex, that.BitFieldIndex; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if equal, ok := interface{}(this.BitFieldElement).(interface { + EqualVT(*v1.ChannelBitFieldElement) bool + }); ok { + if !equal.EqualVT(that.BitFieldElement) { + return false + } + } else if !proto.Equal(this.BitFieldElement, that.BitFieldElement) { + return false + } + if p, q := this.Expression, that.Expression; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if len(this.ExpressionChannelReferences) != len(that.ExpressionChannelReferences) { + return false + } + for i, vx := range this.ExpressionChannelReferences { + vy := that.ExpressionChannelReferences[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v2.CalculatedChannelAbstractChannelReference{} + } + if q == nil { + q = &v2.CalculatedChannelAbstractChannelReference{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v2.CalculatedChannelAbstractChannelReference) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if p, q := this.DataType, that.DataType; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ChannelConfigurations) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ChannelConfigurations) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetPanelConfigurationRequest) EqualVT(that *GetPanelConfigurationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PanelConfigurationId != that.PanelConfigurationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetPanelConfigurationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetPanelConfigurationRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetPanelConfigurationResponse) EqualVT(that *GetPanelConfigurationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.PanelConfiguration.EqualVT(that.PanelConfiguration) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetPanelConfigurationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetPanelConfigurationResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListPanelConfigurationsRequest) EqualVT(that *ListPanelConfigurationsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + if len(this.RunIds) != len(that.RunIds) { + return false + } + for i, vx := range this.RunIds { + vy := that.RunIds[i] + if vx != vy { + return false + } + } + if len(this.AssetIds) != len(that.AssetIds) { + return false + } + for i, vx := range this.AssetIds { + vy := that.AssetIds[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListPanelConfigurationsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListPanelConfigurationsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListPanelConfigurationsResponse) EqualVT(that *ListPanelConfigurationsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.PanelConfigurations) != len(that.PanelConfigurations) { + return false + } + for i, vx := range this.PanelConfigurations { + vy := that.PanelConfigurations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &PanelConfiguration{} + } + if q == nil { + q = &PanelConfiguration{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListPanelConfigurationsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListPanelConfigurationsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreatePanelConfigurationRequest) EqualVT(that *CreatePanelConfigurationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if len(this.ChannelConfigurations) != len(that.ChannelConfigurations) { + return false + } + for i, vx := range this.ChannelConfigurations { + vy := that.ChannelConfigurations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &ChannelConfigurations{} + } + if q == nil { + q = &ChannelConfigurations{} + } + if !p.EqualVT(q) { + return false + } + } + } + if !(*structpb1.Struct)(this.ChartSettings).EqualVT((*structpb1.Struct)(that.ChartSettings)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreatePanelConfigurationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreatePanelConfigurationRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreatePanelConfigurationResponse) EqualVT(that *CreatePanelConfigurationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.PanelConfiguration.EqualVT(that.PanelConfiguration) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreatePanelConfigurationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreatePanelConfigurationResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdatePanelConfigurationRequest) EqualVT(that *UpdatePanelConfigurationRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.PanelConfiguration.EqualVT(that.PanelConfiguration) { + return false + } + if !(*fieldmaskpb1.FieldMask)(this.UpdateMask).EqualVT((*fieldmaskpb1.FieldMask)(that.UpdateMask)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdatePanelConfigurationRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdatePanelConfigurationRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdatePanelConfigurationResponse) EqualVT(that *UpdatePanelConfigurationResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.PanelConfiguration.EqualVT(that.PanelConfiguration) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdatePanelConfigurationResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdatePanelConfigurationResponse) + if !ok { + return false + } + return this.EqualVT(that) +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// PanelConfigurationServiceClient is the client API for PanelConfigurationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type PanelConfigurationServiceClient interface { + // Retrieves a panel configuration. + GetPanelConfiguration(ctx context.Context, in *GetPanelConfigurationRequest, opts ...grpc.CallOption) (*GetPanelConfigurationResponse, error) + // Retrieves panel configurations using an optional filter. + ListPanelConfigurations(ctx context.Context, in *ListPanelConfigurationsRequest, opts ...grpc.CallOption) (*ListPanelConfigurationsResponse, error) + // Creates a panel configuration. + CreatePanelConfiguration(ctx context.Context, in *CreatePanelConfigurationRequest, opts ...grpc.CallOption) (*CreatePanelConfigurationResponse, error) + // Updates an existing panel configuration using using the list of fields specified in `update_mask`. + UpdatePanelConfiguration(ctx context.Context, in *UpdatePanelConfigurationRequest, opts ...grpc.CallOption) (*UpdatePanelConfigurationResponse, error) +} + +type panelConfigurationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewPanelConfigurationServiceClient(cc grpc.ClientConnInterface) PanelConfigurationServiceClient { + return &panelConfigurationServiceClient{cc} +} + +func (c *panelConfigurationServiceClient) GetPanelConfiguration(ctx context.Context, in *GetPanelConfigurationRequest, opts ...grpc.CallOption) (*GetPanelConfigurationResponse, error) { + out := new(GetPanelConfigurationResponse) + err := c.cc.Invoke(ctx, "/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *panelConfigurationServiceClient) ListPanelConfigurations(ctx context.Context, in *ListPanelConfigurationsRequest, opts ...grpc.CallOption) (*ListPanelConfigurationsResponse, error) { + out := new(ListPanelConfigurationsResponse) + err := c.cc.Invoke(ctx, "/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *panelConfigurationServiceClient) CreatePanelConfiguration(ctx context.Context, in *CreatePanelConfigurationRequest, opts ...grpc.CallOption) (*CreatePanelConfigurationResponse, error) { + out := new(CreatePanelConfigurationResponse) + err := c.cc.Invoke(ctx, "/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *panelConfigurationServiceClient) UpdatePanelConfiguration(ctx context.Context, in *UpdatePanelConfigurationRequest, opts ...grpc.CallOption) (*UpdatePanelConfigurationResponse, error) { + out := new(UpdatePanelConfigurationResponse) + err := c.cc.Invoke(ctx, "/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PanelConfigurationServiceServer is the server API for PanelConfigurationService service. +// All implementations must embed UnimplementedPanelConfigurationServiceServer +// for forward compatibility +type PanelConfigurationServiceServer interface { + // Retrieves a panel configuration. + GetPanelConfiguration(context.Context, *GetPanelConfigurationRequest) (*GetPanelConfigurationResponse, error) + // Retrieves panel configurations using an optional filter. + ListPanelConfigurations(context.Context, *ListPanelConfigurationsRequest) (*ListPanelConfigurationsResponse, error) + // Creates a panel configuration. + CreatePanelConfiguration(context.Context, *CreatePanelConfigurationRequest) (*CreatePanelConfigurationResponse, error) + // Updates an existing panel configuration using using the list of fields specified in `update_mask`. + UpdatePanelConfiguration(context.Context, *UpdatePanelConfigurationRequest) (*UpdatePanelConfigurationResponse, error) + mustEmbedUnimplementedPanelConfigurationServiceServer() +} + +// UnimplementedPanelConfigurationServiceServer must be embedded to have forward compatible implementations. +type UnimplementedPanelConfigurationServiceServer struct { +} + +func (UnimplementedPanelConfigurationServiceServer) GetPanelConfiguration(context.Context, *GetPanelConfigurationRequest) (*GetPanelConfigurationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPanelConfiguration not implemented") +} +func (UnimplementedPanelConfigurationServiceServer) ListPanelConfigurations(context.Context, *ListPanelConfigurationsRequest) (*ListPanelConfigurationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPanelConfigurations not implemented") +} +func (UnimplementedPanelConfigurationServiceServer) CreatePanelConfiguration(context.Context, *CreatePanelConfigurationRequest) (*CreatePanelConfigurationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePanelConfiguration not implemented") +} +func (UnimplementedPanelConfigurationServiceServer) UpdatePanelConfiguration(context.Context, *UpdatePanelConfigurationRequest) (*UpdatePanelConfigurationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePanelConfiguration not implemented") +} +func (UnimplementedPanelConfigurationServiceServer) mustEmbedUnimplementedPanelConfigurationServiceServer() { +} + +// UnsafePanelConfigurationServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to PanelConfigurationServiceServer will +// result in compilation errors. +type UnsafePanelConfigurationServiceServer interface { + mustEmbedUnimplementedPanelConfigurationServiceServer() +} + +func RegisterPanelConfigurationServiceServer(s grpc.ServiceRegistrar, srv PanelConfigurationServiceServer) { + s.RegisterService(&PanelConfigurationService_ServiceDesc, srv) +} + +func _PanelConfigurationService_GetPanelConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPanelConfigurationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PanelConfigurationServiceServer).GetPanelConfiguration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PanelConfigurationServiceServer).GetPanelConfiguration(ctx, req.(*GetPanelConfigurationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PanelConfigurationService_ListPanelConfigurations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPanelConfigurationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PanelConfigurationServiceServer).ListPanelConfigurations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PanelConfigurationServiceServer).ListPanelConfigurations(ctx, req.(*ListPanelConfigurationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PanelConfigurationService_CreatePanelConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreatePanelConfigurationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PanelConfigurationServiceServer).CreatePanelConfiguration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PanelConfigurationServiceServer).CreatePanelConfiguration(ctx, req.(*CreatePanelConfigurationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PanelConfigurationService_UpdatePanelConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePanelConfigurationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PanelConfigurationServiceServer).UpdatePanelConfiguration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PanelConfigurationServiceServer).UpdatePanelConfiguration(ctx, req.(*UpdatePanelConfigurationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// PanelConfigurationService_ServiceDesc is the grpc.ServiceDesc for PanelConfigurationService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var PanelConfigurationService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sift.panel_configurations.v1.PanelConfigurationService", + HandlerType: (*PanelConfigurationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetPanelConfiguration", + Handler: _PanelConfigurationService_GetPanelConfiguration_Handler, + }, + { + MethodName: "ListPanelConfigurations", + Handler: _PanelConfigurationService_ListPanelConfigurations_Handler, + }, + { + MethodName: "CreatePanelConfiguration", + Handler: _PanelConfigurationService_CreatePanelConfiguration_Handler, + }, + { + MethodName: "UpdatePanelConfiguration", + Handler: _PanelConfigurationService_UpdatePanelConfiguration_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sift/panel_configurations/v1/panel_configuration.proto", +} + +func (m *PanelConfiguration) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PanelConfiguration) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *PanelConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x62 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x5a + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.ChartSettings != nil { + size, err := (*structpb1.Struct)(m.ChartSettings).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if len(m.ChannelConfigurations) > 0 { + for iNdEx := len(m.ChannelConfigurations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ChannelConfigurations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x2a + } + if len(m.ChangeMessage) > 0 { + i -= len(m.ChangeMessage) + copy(dAtA[i:], m.ChangeMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChangeMessage))) + i-- + dAtA[i] = 0x22 + } + if m.Version != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version)) + i-- + dAtA[i] = 0x18 + } + if len(m.VersionId) > 0 { + i -= len(m.VersionId) + copy(dAtA[i:], m.VersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.PanelConfigurationId) > 0 { + i -= len(m.PanelConfigurationId) + copy(dAtA[i:], m.PanelConfigurationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PanelConfigurationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ChannelConfigurations) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ChannelConfigurations) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ChannelConfigurations) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.DataType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.DataType)) + i-- + dAtA[i] = 0x48 + } + if len(m.ExpressionChannelReferences) > 0 { + for iNdEx := len(m.ExpressionChannelReferences) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.ExpressionChannelReferences[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.ExpressionChannelReferences[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x42 + } + } + if m.Expression != nil { + i -= len(*m.Expression) + copy(dAtA[i:], *m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Expression))) + i-- + dAtA[i] = 0x3a + } + if m.BitFieldElement != nil { + if vtmsg, ok := interface{}(m.BitFieldElement).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.BitFieldElement) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x32 + } + if m.BitFieldIndex != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.BitFieldIndex)) + i-- + dAtA[i] = 0x28 + } + if m.ChannelSettings != nil { + size, err := (*structpb1.Struct)(m.ChannelSettings).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if len(m.Color) > 0 { + i -= len(m.Color) + copy(dAtA[i:], m.Color) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Color))) + i-- + dAtA[i] = 0x1a + } + if m.Type != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x10 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetPanelConfigurationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetPanelConfigurationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetPanelConfigurationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PanelConfigurationId) > 0 { + i -= len(m.PanelConfigurationId) + copy(dAtA[i:], m.PanelConfigurationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PanelConfigurationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetPanelConfigurationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetPanelConfigurationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetPanelConfigurationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListPanelConfigurationsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListPanelConfigurationsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListPanelConfigurationsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) + i-- + dAtA[i] = 0x32 + } + } + if len(m.RunIds) > 0 { + for iNdEx := len(m.RunIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RunIds[iNdEx]) + copy(dAtA[i:], m.RunIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunIds[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListPanelConfigurationsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListPanelConfigurationsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListPanelConfigurationsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.PanelConfigurations) > 0 { + for iNdEx := len(m.PanelConfigurations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.PanelConfigurations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreatePanelConfigurationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreatePanelConfigurationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreatePanelConfigurationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ChartSettings != nil { + size, err := (*structpb1.Struct)(m.ChartSettings).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if len(m.ChannelConfigurations) > 0 { + for iNdEx := len(m.ChannelConfigurations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ChannelConfigurations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreatePanelConfigurationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreatePanelConfigurationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreatePanelConfigurationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdatePanelConfigurationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdatePanelConfigurationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdatePanelConfigurationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdatePanelConfigurationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdatePanelConfigurationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdatePanelConfigurationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PanelConfiguration) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PanelConfiguration) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *PanelConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x62 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x5a + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.ChartSettings != nil { + size, err := (*structpb1.Struct)(m.ChartSettings).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if len(m.ChannelConfigurations) > 0 { + for iNdEx := len(m.ChannelConfigurations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ChannelConfigurations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x2a + } + if len(m.ChangeMessage) > 0 { + i -= len(m.ChangeMessage) + copy(dAtA[i:], m.ChangeMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChangeMessage))) + i-- + dAtA[i] = 0x22 + } + if m.Version != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version)) + i-- + dAtA[i] = 0x18 + } + if len(m.VersionId) > 0 { + i -= len(m.VersionId) + copy(dAtA[i:], m.VersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.VersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.PanelConfigurationId) > 0 { + i -= len(m.PanelConfigurationId) + copy(dAtA[i:], m.PanelConfigurationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PanelConfigurationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ChannelConfigurations) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ChannelConfigurations) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ChannelConfigurations) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.DataType != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.DataType)) + i-- + dAtA[i] = 0x48 + } + if len(m.ExpressionChannelReferences) > 0 { + for iNdEx := len(m.ExpressionChannelReferences) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.ExpressionChannelReferences[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.ExpressionChannelReferences[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x42 + } + } + if m.Expression != nil { + i -= len(*m.Expression) + copy(dAtA[i:], *m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.Expression))) + i-- + dAtA[i] = 0x3a + } + if m.BitFieldElement != nil { + if vtmsg, ok := interface{}(m.BitFieldElement).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.BitFieldElement) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x32 + } + if m.BitFieldIndex != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.BitFieldIndex)) + i-- + dAtA[i] = 0x28 + } + if m.ChannelSettings != nil { + size, err := (*structpb1.Struct)(m.ChannelSettings).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if len(m.Color) > 0 { + i -= len(m.Color) + copy(dAtA[i:], m.Color) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Color))) + i-- + dAtA[i] = 0x1a + } + if m.Type != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x10 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetPanelConfigurationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetPanelConfigurationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetPanelConfigurationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PanelConfigurationId) > 0 { + i -= len(m.PanelConfigurationId) + copy(dAtA[i:], m.PanelConfigurationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PanelConfigurationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetPanelConfigurationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetPanelConfigurationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetPanelConfigurationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListPanelConfigurationsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListPanelConfigurationsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListPanelConfigurationsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AssetIds) > 0 { + for iNdEx := len(m.AssetIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AssetIds[iNdEx]) + copy(dAtA[i:], m.AssetIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AssetIds[iNdEx]))) + i-- + dAtA[i] = 0x32 + } + } + if len(m.RunIds) > 0 { + for iNdEx := len(m.RunIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RunIds[iNdEx]) + copy(dAtA[i:], m.RunIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunIds[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListPanelConfigurationsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListPanelConfigurationsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListPanelConfigurationsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.PanelConfigurations) > 0 { + for iNdEx := len(m.PanelConfigurations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.PanelConfigurations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreatePanelConfigurationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreatePanelConfigurationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreatePanelConfigurationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ChartSettings != nil { + size, err := (*structpb1.Struct)(m.ChartSettings).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if len(m.ChannelConfigurations) > 0 { + for iNdEx := len(m.ChannelConfigurations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ChannelConfigurations[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreatePanelConfigurationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreatePanelConfigurationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreatePanelConfigurationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdatePanelConfigurationRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdatePanelConfigurationRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdatePanelConfigurationRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdatePanelConfigurationResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdatePanelConfigurationResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdatePanelConfigurationResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PanelConfiguration != nil { + size, err := m.PanelConfiguration.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PanelConfiguration) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.PanelConfigurationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.VersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Version != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Version)) + } + l = len(m.ChangeMessage) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.ChannelConfigurations) > 0 { + for _, e := range m.ChannelConfigurations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.ChartSettings != nil { + l = (*structpb1.Struct)(m.ChartSettings).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ArchivedDate != nil { + l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsArchived { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *ChannelConfigurations) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Type != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Type)) + } + l = len(m.Color) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ChannelSettings != nil { + l = (*structpb1.Struct)(m.ChannelSettings).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.BitFieldIndex != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.BitFieldIndex)) + } + if m.BitFieldElement != nil { + if size, ok := interface{}(m.BitFieldElement).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.BitFieldElement) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Expression != nil { + l = len(*m.Expression) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.ExpressionChannelReferences) > 0 { + for _, e := range m.ExpressionChannelReferences { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.DataType != nil { + n += 1 + protohelpers.SizeOfVarint(uint64(*m.DataType)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetPanelConfigurationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.PanelConfigurationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetPanelConfigurationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PanelConfiguration != nil { + l = m.PanelConfiguration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListPanelConfigurationsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.RunIds) > 0 { + for _, s := range m.RunIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.AssetIds) > 0 { + for _, s := range m.AssetIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *ListPanelConfigurationsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PanelConfigurations) > 0 { + for _, e := range m.PanelConfigurations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreatePanelConfigurationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.ChannelConfigurations) > 0 { + for _, e := range m.ChannelConfigurations { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.ChartSettings != nil { + l = (*structpb1.Struct)(m.ChartSettings).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreatePanelConfigurationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PanelConfiguration != nil { + l = m.PanelConfiguration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdatePanelConfigurationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PanelConfiguration != nil { + l = m.PanelConfiguration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.UpdateMask != nil { + l = (*fieldmaskpb1.FieldMask)(m.UpdateMask).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdatePanelConfigurationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PanelConfiguration != nil { + l = m.PanelConfiguration.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *PanelConfiguration) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PanelConfiguration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PanelConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfigurationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PanelConfigurationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChangeMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChangeMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelConfigurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelConfigurations = append(m.ChannelConfigurations, &ChannelConfigurations{}) + if err := m.ChannelConfigurations[len(m.ChannelConfigurations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChartSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChartSettings == nil { + m.ChartSettings = &structpb.Struct{} + } + if err := (*structpb1.Struct)(m.ChartSettings).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ChannelConfigurations) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ChannelConfigurations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ChannelConfigurations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= PlottedChannelType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Color", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Color = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChannelSettings == nil { + m.ChannelSettings = &structpb.Struct{} + } + if err := (*structpb1.Struct)(m.ChannelSettings).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldIndex", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BitFieldIndex = &v + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElement", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BitFieldElement == nil { + m.BitFieldElement = &v1.ChannelBitFieldElement{} + } + if unmarshal, ok := interface{}(m.BitFieldElement).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.BitFieldElement); err != nil { + return err + } + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Expression = &s + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpressionChannelReferences", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExpressionChannelReferences = append(m.ExpressionChannelReferences, &v2.CalculatedChannelAbstractChannelReference{}) + if unmarshal, ok := interface{}(m.ExpressionChannelReferences[len(m.ExpressionChannelReferences)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.ExpressionChannelReferences[len(m.ExpressionChannelReferences)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType) + } + var v v1.ChannelDataType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DataType = &v + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetPanelConfigurationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetPanelConfigurationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetPanelConfigurationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfigurationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PanelConfigurationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetPanelConfigurationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetPanelConfigurationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetPanelConfigurationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListPanelConfigurationsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListPanelConfigurationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListPanelConfigurationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunIds = append(m.RunIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetIds = append(m.AssetIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListPanelConfigurationsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListPanelConfigurationsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListPanelConfigurationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfigurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PanelConfigurations = append(m.PanelConfigurations, &PanelConfiguration{}) + if err := m.PanelConfigurations[len(m.PanelConfigurations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreatePanelConfigurationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreatePanelConfigurationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreatePanelConfigurationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelConfigurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelConfigurations = append(m.ChannelConfigurations, &ChannelConfigurations{}) + if err := m.ChannelConfigurations[len(m.ChannelConfigurations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChartSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChartSettings == nil { + m.ChartSettings = &structpb.Struct{} + } + if err := (*structpb1.Struct)(m.ChartSettings).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreatePanelConfigurationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreatePanelConfigurationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreatePanelConfigurationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdatePanelConfigurationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdatePanelConfigurationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdatePanelConfigurationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdatePanelConfigurationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdatePanelConfigurationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdatePanelConfigurationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PanelConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PanelConfiguration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PanelConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfigurationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PanelConfigurationId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.VersionId = stringValue + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChangeMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChangeMessage = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelConfigurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelConfigurations = append(m.ChannelConfigurations, &ChannelConfigurations{}) + if err := m.ChannelConfigurations[len(m.ChannelConfigurations)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChartSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChartSettings == nil { + m.ChartSettings = &structpb.Struct{} + } + if err := (*structpb1.Struct)(m.ChartSettings).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ChannelConfigurations) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ChannelConfigurations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ChannelConfigurations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= PlottedChannelType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Color", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Color = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChannelSettings == nil { + m.ChannelSettings = &structpb.Struct{} + } + if err := (*structpb1.Struct)(m.ChannelSettings).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldIndex", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BitFieldIndex = &v + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BitFieldElement", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BitFieldElement == nil { + m.BitFieldElement = &v1.ChannelBitFieldElement{} + } + if unmarshal, ok := interface{}(m.BitFieldElement).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.BitFieldElement); err != nil { + return err + } + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Expression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Expression = &s + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpressionChannelReferences", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExpressionChannelReferences = append(m.ExpressionChannelReferences, &v2.CalculatedChannelAbstractChannelReference{}) + if unmarshal, ok := interface{}(m.ExpressionChannelReferences[len(m.ExpressionChannelReferences)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.ExpressionChannelReferences[len(m.ExpressionChannelReferences)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType) + } + var v v1.ChannelDataType + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v1.ChannelDataType(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DataType = &v + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetPanelConfigurationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetPanelConfigurationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetPanelConfigurationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfigurationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PanelConfigurationId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetPanelConfigurationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetPanelConfigurationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetPanelConfigurationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListPanelConfigurationsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListPanelConfigurationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListPanelConfigurationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunIds = append(m.RunIds, stringValue) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AssetIds = append(m.AssetIds, stringValue) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListPanelConfigurationsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListPanelConfigurationsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListPanelConfigurationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfigurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PanelConfigurations = append(m.PanelConfigurations, &PanelConfiguration{}) + if err := m.PanelConfigurations[len(m.PanelConfigurations)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreatePanelConfigurationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreatePanelConfigurationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreatePanelConfigurationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelConfigurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelConfigurations = append(m.ChannelConfigurations, &ChannelConfigurations{}) + if err := m.ChannelConfigurations[len(m.ChannelConfigurations)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChartSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChartSettings == nil { + m.ChartSettings = &structpb.Struct{} + } + if err := (*structpb1.Struct)(m.ChartSettings).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreatePanelConfigurationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreatePanelConfigurationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreatePanelConfigurationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdatePanelConfigurationRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdatePanelConfigurationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdatePanelConfigurationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdatePanelConfigurationResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdatePanelConfigurationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdatePanelConfigurationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PanelConfiguration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PanelConfiguration == nil { + m.PanelConfiguration = &PanelConfiguration{} + } + if err := m.PanelConfiguration.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/protos/buf.lock b/protos/buf.lock index 516c1fb68..3e702986d 100644 --- a/protos/buf.lock +++ b/protos/buf.lock @@ -9,8 +9,8 @@ deps: - remote: buf.build owner: googleapis repository: googleapis - commit: 004180b77378443887d3b55cabc00384 - digest: shake256:d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b + commit: 536964a08a534d51b8f30f2d6751f1f9 + digest: shake256:b6d518a50df43704333587967830344b49247ac8cf0953847d710f2d72246f677aeba56593dcd78f9199afff8ae9498f8dd5efe54107e5a09c60fff872456ca9 - remote: buf.build owner: grpc-ecosystem repository: grpc-gateway diff --git a/protos/sift/panel_configurations/v1/panel_configuration.proto b/protos/sift/panel_configurations/v1/panel_configuration.proto new file mode 100644 index 000000000..92dab6130 --- /dev/null +++ b/protos/sift/panel_configurations/v1/panel_configuration.proto @@ -0,0 +1,175 @@ +syntax = "proto3"; + +package sift.panel_configurations.v1; + +import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; +import "sift/calculated_channels/v2/calculated_channels.proto"; +import "sift/common/type/v1/channel_bit_field_element.proto"; +import "sift/common/type/v1/channel_data_type.proto"; + +option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { + info: {title: "Panel Configuration Service"} +}; + +service PanelConfigurationService { + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = {description: "Service to programmatically interact with panel configurations."}; + + // Retrieves a panel configuration. + rpc GetPanelConfiguration(GetPanelConfigurationRequest) returns (GetPanelConfigurationResponse) { + option (google.api.http) = {get: "/api/v1/panel-configurations/{panel_configuration_id}"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetPanelConfiguration" + description: "Retrieves a panel configuration." + }; + } + + // Retrieves panel configurations using an optional filter. + rpc ListPanelConfigurations(ListPanelConfigurationsRequest) returns (ListPanelConfigurationsResponse) { + option (google.api.http) = {get: "/api/v1/panel-configurations"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListPanelConfigurations" + description: "Retrieves panel configurations using an optional filter." + }; + } + + // Creates a panel configuration. + rpc CreatePanelConfiguration(CreatePanelConfigurationRequest) returns (CreatePanelConfigurationResponse) { + option (google.api.http) = { + post: "/api/v1/panel-configurations" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "CreatePanelConfiguration" + description: "Creates a panel configuration." + }; + } + + // Updates an existing panel configuration using using the list of fields specified in `update_mask`. + rpc UpdatePanelConfiguration(UpdatePanelConfigurationRequest) returns (UpdatePanelConfigurationResponse) { + option (google.api.http) = { + patch: "/api/v1/panel-configurations/{panel_configuration.panel_configuration_id}" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "UpdatePanelConfiguration" + description: "Updates an existing panel configuration using using the list of fields specified in `update_mask`." + }; + } +} + +enum PlottedChannelType { + PLOTTED_CHANNEL_TYPE_UNSPECIFIED = 0 [deprecated = true]; + PLOTTED_CHANNEL_TYPE_REGULAR = 1; + PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL = 2; + PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT = 3; + PLOTTED_CHANNEL_TYPE_ENUM = 4; +} + +message PanelConfiguration { + string panel_configuration_id = 1; + string version_id = 2; + uint32 version = 3; + string change_message = 4; + + string name = 5; + repeated ChannelConfigurations channel_configurations = 6; + optional google.protobuf.Struct chart_settings = 7; + + google.protobuf.Timestamp created_date = 8; + google.protobuf.Timestamp modified_date = 9; + google.protobuf.Timestamp archived_date = 10; + string created_by_user_id = 11; + string modified_by_user_id = 12; + bool is_archived = 13; +} + +message ChannelConfigurations { + string name = 1 [(google.api.field_behavior) = REQUIRED]; + PlottedChannelType type = 2 [(google.api.field_behavior) = REQUIRED]; + string color = 3 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Struct channel_settings = 4 [(google.api.field_behavior) = REQUIRED]; + + // bitfield + optional int32 bit_field_index = 5; + optional sift.common.type.v1.ChannelBitFieldElement bit_field_element = 6; + + // temporary calculated channel + optional string expression = 7; + repeated sift.calculated_channels.v2.CalculatedChannelAbstractChannelReference expression_channel_references = 8; + optional sift.common.type.v1.ChannelDataType data_type = 9; +} + +message GetPanelConfigurationRequest { + string panel_configuration_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetPanelConfigurationResponse { + PanelConfiguration panel_configuration = 1; +} +message ListPanelConfigurationsRequest { + // The maximum number of panel configurations to return. + // The service may return fewer than this value. + // If unspecified, at most 50 panel configurations will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + uint32 page_size = 1; + + // A page token, received from a previous `ListPanelConfigurations` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListPanelConfigurations` must match + // the call that provided the page token. + string page_token = 2; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string + // Available fields to filter by are 'name', 'created_date', 'modified_date', and 'is_archived'. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 3; + + // How to order the retrieved panel configurations. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are `name`. + // If left empty, items are ordered by `name` in ascending order (alphabetical). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "name" + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + repeated string run_ids = 5 [(google.api.field_behavior) = OPTIONAL]; + repeated string asset_ids = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListPanelConfigurationsResponse { + repeated PanelConfiguration panel_configurations = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +message CreatePanelConfigurationRequest { + string name = 1 [(google.api.field_behavior) = REQUIRED]; + repeated ChannelConfigurations channel_configurations = 2 [(google.api.field_behavior) = REQUIRED]; + optional google.protobuf.Struct chart_settings = 3; +} + +message CreatePanelConfigurationResponse { + PanelConfiguration panel_configuration = 1; +} + +// The request for a call to `PanelConfigurationService_UpdatePanelConfiguration` to update a panel configuration. Updating a panel +// configuration creates a new version of the panel configuration, leaving the previous untouched. If no update is deemed necessary, then the +// the current version is returned. Use `is_archived` to archive/unarchive a panel configuration. +message UpdatePanelConfigurationRequest { + // The panel configuration to update. + PanelConfiguration panel_configuration = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. The fields available to be updated are `name`, `channel_configurations`, + // `chart_settings`, and `is_archived`. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message UpdatePanelConfigurationResponse { + PanelConfiguration panel_configuration = 1; +} diff --git a/python/lib/google/api/field_behavior_pb2.pyi b/python/lib/google/api/field_behavior_pb2.pyi index e0ea4d76d..05cafece4 100644 --- a/python/lib/google/api/field_behavior_pb2.pyi +++ b/python/lib/google/api/field_behavior_pb2.pyi @@ -1,7 +1,7 @@ """ @generated by mypy-protobuf. Do not edit manually! isort:skip_file -Copyright 2025 Google LLC +Copyright 2026 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/python/lib/google/api/field_behavior_pb2_grpc.pyi b/python/lib/google/api/field_behavior_pb2_grpc.pyi index 187e3c12b..503178252 100644 --- a/python/lib/google/api/field_behavior_pb2_grpc.pyi +++ b/python/lib/google/api/field_behavior_pb2_grpc.pyi @@ -1,7 +1,7 @@ """ @generated by mypy-protobuf. Do not edit manually! isort:skip_file -Copyright 2025 Google LLC +Copyright 2026 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/python/lib/google/api/http_pb2.pyi b/python/lib/google/api/http_pb2.pyi index 794c0444d..462163f2d 100644 --- a/python/lib/google/api/http_pb2.pyi +++ b/python/lib/google/api/http_pb2.pyi @@ -1,7 +1,7 @@ """ @generated by mypy-protobuf. Do not edit manually! isort:skip_file -Copyright 2025 Google LLC +Copyright 2026 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/python/lib/google/api/http_pb2_grpc.pyi b/python/lib/google/api/http_pb2_grpc.pyi index 187e3c12b..503178252 100644 --- a/python/lib/google/api/http_pb2_grpc.pyi +++ b/python/lib/google/api/http_pb2_grpc.pyi @@ -1,7 +1,7 @@ """ @generated by mypy-protobuf. Do not edit manually! isort:skip_file -Copyright 2025 Google LLC +Copyright 2026 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/python/lib/sift/panel_configurations/__init__.py b/python/lib/sift/panel_configurations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/panel_configurations/v1/__init__.py b/python/lib/sift/panel_configurations/v1/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/lib/sift/panel_configurations/v1/panel_configuration_pb2.py b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2.py new file mode 100644 index 000000000..4589c0dad --- /dev/null +++ b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sift/panel_configurations/v1/panel_configuration.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 +from sift.calculated_channels.v2 import calculated_channels_pb2 as sift_dot_calculated__channels_dot_v2_dot_calculated__channels__pb2 +from sift.common.type.v1 import channel_bit_field_element_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__bit__field__element__pb2 +from sift.common.type.v1 import channel_data_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__data__type__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6sift/panel_configurations/v1/panel_configuration.proto\x12\x1csift.panel_configurations.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\x1a\x33sift/common/type/v1/channel_bit_field_element.proto\x1a+sift/common/type/v1/channel_data_type.proto\"\xc0\x05\n\x12PanelConfiguration\x12\x34\n\x16panel_configuration_id\x18\x01 \x01(\tR\x14panelConfigurationId\x12\x1d\n\nversion_id\x18\x02 \x01(\tR\tversionId\x12\x18\n\x07version\x18\x03 \x01(\rR\x07version\x12%\n\x0e\x63hange_message\x18\x04 \x01(\tR\rchangeMessage\x12\x12\n\x04name\x18\x05 \x01(\tR\x04name\x12j\n\x16\x63hannel_configurations\x18\x06 \x03(\x0b\x32\x33.sift.panel_configurations.v1.ChannelConfigurationsR\x15\x63hannelConfigurations\x12\x43\n\x0e\x63hart_settings\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructH\x00R\rchartSettings\x88\x01\x01\x12=\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0b\x63reatedDate\x12?\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cmodifiedDate\x12?\n\rarchived_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0c\x61rchivedDate\x12+\n\x12\x63reated_by_user_id\x18\x0b \x01(\tR\x0f\x63reatedByUserId\x12-\n\x13modified_by_user_id\x18\x0c \x01(\tR\x10modifiedByUserId\x12\x1f\n\x0bis_archived\x18\r \x01(\x08R\nisArchivedB\x11\n\x0f_chart_settings\"\xab\x05\n\x15\x43hannelConfigurations\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12I\n\x04type\x18\x02 \x01(\x0e\x32\x30.sift.panel_configurations.v1.PlottedChannelTypeB\x03\xe0\x41\x02R\x04type\x12\x19\n\x05\x63olor\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05\x63olor\x12G\n\x10\x63hannel_settings\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x02R\x0f\x63hannelSettings\x12+\n\x0f\x62it_field_index\x18\x05 \x01(\x05H\x00R\rbitFieldIndex\x88\x01\x01\x12\\\n\x11\x62it_field_element\x18\x06 \x01(\x0b\x32+.sift.common.type.v1.ChannelBitFieldElementH\x01R\x0f\x62itFieldElement\x88\x01\x01\x12#\n\nexpression\x18\x07 \x01(\tH\x02R\nexpression\x88\x01\x01\x12\x8a\x01\n\x1d\x65xpression_channel_references\x18\x08 \x03(\x0b\x32\x46.sift.calculated_channels.v2.CalculatedChannelAbstractChannelReferenceR\x1b\x65xpressionChannelReferences\x12\x46\n\tdata_type\x18\t \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeH\x03R\x08\x64\x61taType\x88\x01\x01\x42\x12\n\x10_bit_field_indexB\x14\n\x12_bit_field_elementB\r\n\x0b_expressionB\x0c\n\n_data_type\"Y\n\x1cGetPanelConfigurationRequest\x12\x39\n\x16panel_configuration_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x14panelConfigurationId\"\x82\x01\n\x1dGetPanelConfigurationResponse\x12\x61\n\x13panel_configuration\x18\x01 \x01(\x0b\x32\x30.sift.panel_configurations.v1.PanelConfigurationR\x12panelConfiguration\"\xd4\x01\n\x1eListPanelConfigurationsRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x16\n\x06\x66ilter\x18\x03 \x01(\tR\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\x12\x1c\n\x07run_ids\x18\x05 \x03(\tB\x03\xe0\x41\x01R\x06runIds\x12 \n\tasset_ids\x18\x06 \x03(\tB\x03\xe0\x41\x01R\x08\x61ssetIds\"\xae\x01\n\x1fListPanelConfigurationsResponse\x12\x63\n\x14panel_configurations\x18\x01 \x03(\x0b\x32\x30.sift.panel_configurations.v1.PanelConfigurationR\x13panelConfigurations\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x83\x02\n\x1f\x43reatePanelConfigurationRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12o\n\x16\x63hannel_configurations\x18\x02 \x03(\x0b\x32\x33.sift.panel_configurations.v1.ChannelConfigurationsB\x03\xe0\x41\x02R\x15\x63hannelConfigurations\x12\x43\n\x0e\x63hart_settings\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructH\x00R\rchartSettings\x88\x01\x01\x42\x11\n\x0f_chart_settings\"\x85\x01\n CreatePanelConfigurationResponse\x12\x61\n\x13panel_configuration\x18\x01 \x01(\x0b\x32\x30.sift.panel_configurations.v1.PanelConfigurationR\x12panelConfiguration\"\xcb\x01\n\x1fUpdatePanelConfigurationRequest\x12\x66\n\x13panel_configuration\x18\x01 \x01(\x0b\x32\x30.sift.panel_configurations.v1.PanelConfigurationB\x03\xe0\x41\x02R\x12panelConfiguration\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x85\x01\n UpdatePanelConfigurationResponse\x12\x61\n\x13panel_configuration\x18\x01 \x01(\x0b\x32\x30.sift.panel_configurations.v1.PanelConfigurationR\x12panelConfiguration*\xd8\x01\n\x12PlottedChannelType\x12(\n PLOTTED_CHANNEL_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12 \n\x1cPLOTTED_CHANNEL_TYPE_REGULAR\x10\x01\x12+\n\'PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL\x10\x02\x12*\n&PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT\x10\x03\x12\x1d\n\x19PLOTTED_CHANNEL_TYPE_ENUM\x10\x04\x32\xfa\t\n\x19PanelConfigurationService\x12\x8b\x02\n\x15GetPanelConfiguration\x12:.sift.panel_configurations.v1.GetPanelConfigurationRequest\x1a;.sift.panel_configurations.v1.GetPanelConfigurationResponse\"y\x92\x41\x39\x12\x15GetPanelConfiguration\x1a Retrieves a panel configuration.\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/panel-configurations/{panel_configuration_id}\x12\x92\x02\n\x17ListPanelConfigurations\x12<.sift.panel_configurations.v1.ListPanelConfigurationsRequest\x1a=.sift.panel_configurations.v1.ListPanelConfigurationsResponse\"z\x92\x41S\x12\x17ListPanelConfigurations\x1a\x38Retrieves panel configurations using an optional filter.\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/panel-configurations\x12\xff\x01\n\x18\x43reatePanelConfiguration\x12=.sift.panel_configurations.v1.CreatePanelConfigurationRequest\x1a>.sift.panel_configurations.v1.CreatePanelConfigurationResponse\"d\x92\x41:\x12\x18\x43reatePanelConfiguration\x1a\x1e\x43reates a panel configuration.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/panel-configurations:\x01*\x12\xf1\x02\n\x18UpdatePanelConfiguration\x12=.sift.panel_configurations.v1.UpdatePanelConfigurationRequest\x1a>.sift.panel_configurations.v1.UpdatePanelConfigurationResponse\"\xd5\x01\x92\x41~\x12\x18UpdatePanelConfiguration\x1a\x62Updates an existing panel configuration using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02N2I/api/v1/panel-configurations/{panel_configuration.panel_configuration_id}:\x01*\x1a\x44\x92\x41\x41\x12?Service to programmatically interact with panel configurations.B\xeb\x01\n com.sift.panel_configurations.v1B\x17PanelConfigurationProtoP\x01\xa2\x02\x03SPX\xaa\x02\x1bSift.PanelConfigurations.V1\xca\x02\x1bSift\\PanelConfigurations\\V1\xe2\x02\'Sift\\PanelConfigurations\\V1\\GPBMetadata\xea\x02\x1dSift::PanelConfigurations::V1\x92\x41\x1f\x12\x1d\n\x1bPanel Configuration Serviceb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.panel_configurations.v1.panel_configuration_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n com.sift.panel_configurations.v1B\027PanelConfigurationProtoP\001\242\002\003SPX\252\002\033Sift.PanelConfigurations.V1\312\002\033Sift\\PanelConfigurations\\V1\342\002\'Sift\\PanelConfigurations\\V1\\GPBMetadata\352\002\035Sift::PanelConfigurations::V1\222A\037\022\035\n\033Panel Configuration Service' + _globals['_PLOTTEDCHANNELTYPE'].values_by_name["PLOTTED_CHANNEL_TYPE_UNSPECIFIED"]._loaded_options = None + _globals['_PLOTTEDCHANNELTYPE'].values_by_name["PLOTTED_CHANNEL_TYPE_UNSPECIFIED"]._serialized_options = b'\010\001' + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['name']._loaded_options = None + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['type']._loaded_options = None + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['type']._serialized_options = b'\340A\002' + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['color']._loaded_options = None + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['color']._serialized_options = b'\340A\002' + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['channel_settings']._loaded_options = None + _globals['_CHANNELCONFIGURATIONS'].fields_by_name['channel_settings']._serialized_options = b'\340A\002' + _globals['_GETPANELCONFIGURATIONREQUEST'].fields_by_name['panel_configuration_id']._loaded_options = None + _globals['_GETPANELCONFIGURATIONREQUEST'].fields_by_name['panel_configuration_id']._serialized_options = b'\340A\002' + _globals['_LISTPANELCONFIGURATIONSREQUEST'].fields_by_name['order_by']._loaded_options = None + _globals['_LISTPANELCONFIGURATIONSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' + _globals['_LISTPANELCONFIGURATIONSREQUEST'].fields_by_name['run_ids']._loaded_options = None + _globals['_LISTPANELCONFIGURATIONSREQUEST'].fields_by_name['run_ids']._serialized_options = b'\340A\001' + _globals['_LISTPANELCONFIGURATIONSREQUEST'].fields_by_name['asset_ids']._loaded_options = None + _globals['_LISTPANELCONFIGURATIONSREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\001' + _globals['_CREATEPANELCONFIGURATIONREQUEST'].fields_by_name['name']._loaded_options = None + _globals['_CREATEPANELCONFIGURATIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' + _globals['_CREATEPANELCONFIGURATIONREQUEST'].fields_by_name['channel_configurations']._loaded_options = None + _globals['_CREATEPANELCONFIGURATIONREQUEST'].fields_by_name['channel_configurations']._serialized_options = b'\340A\002' + _globals['_UPDATEPANELCONFIGURATIONREQUEST'].fields_by_name['panel_configuration']._loaded_options = None + _globals['_UPDATEPANELCONFIGURATIONREQUEST'].fields_by_name['panel_configuration']._serialized_options = b'\340A\002' + _globals['_UPDATEPANELCONFIGURATIONREQUEST'].fields_by_name['update_mask']._loaded_options = None + _globals['_UPDATEPANELCONFIGURATIONREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' + _globals['_PANELCONFIGURATIONSERVICE']._loaded_options = None + _globals['_PANELCONFIGURATIONSERVICE']._serialized_options = b'\222AA\022?Service to programmatically interact with panel configurations.' + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['GetPanelConfiguration']._loaded_options = None + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['GetPanelConfiguration']._serialized_options = b'\222A9\022\025GetPanelConfiguration\032 Retrieves a panel configuration.\202\323\344\223\0027\0225/api/v1/panel-configurations/{panel_configuration_id}' + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['ListPanelConfigurations']._loaded_options = None + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['ListPanelConfigurations']._serialized_options = b'\222AS\022\027ListPanelConfigurations\0328Retrieves panel configurations using an optional filter.\202\323\344\223\002\036\022\034/api/v1/panel-configurations' + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['CreatePanelConfiguration']._loaded_options = None + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['CreatePanelConfiguration']._serialized_options = b'\222A:\022\030CreatePanelConfiguration\032\036Creates a panel configuration.\202\323\344\223\002!\"\034/api/v1/panel-configurations:\001*' + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['UpdatePanelConfiguration']._loaded_options = None + _globals['_PANELCONFIGURATIONSERVICE'].methods_by_name['UpdatePanelConfiguration']._serialized_options = b'\222A~\022\030UpdatePanelConfiguration\032bUpdates an existing panel configuration using using the list of fields specified in `update_mask`.\202\323\344\223\002N2I/api/v1/panel-configurations/{panel_configuration.panel_configuration_id}:\001*' + _globals['_PLOTTEDCHANNELTYPE']._serialized_start=3199 + _globals['_PLOTTEDCHANNELTYPE']._serialized_end=3415 + _globals['_PANELCONFIGURATION']._serialized_start=450 + _globals['_PANELCONFIGURATION']._serialized_end=1154 + _globals['_CHANNELCONFIGURATIONS']._serialized_start=1157 + _globals['_CHANNELCONFIGURATIONS']._serialized_end=1840 + _globals['_GETPANELCONFIGURATIONREQUEST']._serialized_start=1842 + _globals['_GETPANELCONFIGURATIONREQUEST']._serialized_end=1931 + _globals['_GETPANELCONFIGURATIONRESPONSE']._serialized_start=1934 + _globals['_GETPANELCONFIGURATIONRESPONSE']._serialized_end=2064 + _globals['_LISTPANELCONFIGURATIONSREQUEST']._serialized_start=2067 + _globals['_LISTPANELCONFIGURATIONSREQUEST']._serialized_end=2279 + _globals['_LISTPANELCONFIGURATIONSRESPONSE']._serialized_start=2282 + _globals['_LISTPANELCONFIGURATIONSRESPONSE']._serialized_end=2456 + _globals['_CREATEPANELCONFIGURATIONREQUEST']._serialized_start=2459 + _globals['_CREATEPANELCONFIGURATIONREQUEST']._serialized_end=2718 + _globals['_CREATEPANELCONFIGURATIONRESPONSE']._serialized_start=2721 + _globals['_CREATEPANELCONFIGURATIONRESPONSE']._serialized_end=2854 + _globals['_UPDATEPANELCONFIGURATIONREQUEST']._serialized_start=2857 + _globals['_UPDATEPANELCONFIGURATIONREQUEST']._serialized_end=3060 + _globals['_UPDATEPANELCONFIGURATIONRESPONSE']._serialized_start=3063 + _globals['_UPDATEPANELCONFIGURATIONRESPONSE']._serialized_end=3196 + _globals['_PANELCONFIGURATIONSERVICE']._serialized_start=3418 + _globals['_PANELCONFIGURATIONSERVICE']._serialized_end=4692 +# @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/panel_configurations/v1/panel_configuration_pb2.pyi b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2.pyi new file mode 100644 index 000000000..57806406b --- /dev/null +++ b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2.pyi @@ -0,0 +1,355 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.field_mask_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.struct_pb2 +import google.protobuf.timestamp_pb2 +import sift.calculated_channels.v2.calculated_channels_pb2 +import sift.common.type.v1.channel_bit_field_element_pb2 +import sift.common.type.v1.channel_data_type_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _PlottedChannelType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _PlottedChannelTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PlottedChannelType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + PLOTTED_CHANNEL_TYPE_UNSPECIFIED: _PlottedChannelType.ValueType # 0 + PLOTTED_CHANNEL_TYPE_REGULAR: _PlottedChannelType.ValueType # 1 + PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL: _PlottedChannelType.ValueType # 2 + PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT: _PlottedChannelType.ValueType # 3 + PLOTTED_CHANNEL_TYPE_ENUM: _PlottedChannelType.ValueType # 4 + +class PlottedChannelType(_PlottedChannelType, metaclass=_PlottedChannelTypeEnumTypeWrapper): ... + +PLOTTED_CHANNEL_TYPE_UNSPECIFIED: PlottedChannelType.ValueType # 0 +PLOTTED_CHANNEL_TYPE_REGULAR: PlottedChannelType.ValueType # 1 +PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL: PlottedChannelType.ValueType # 2 +PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT: PlottedChannelType.ValueType # 3 +PLOTTED_CHANNEL_TYPE_ENUM: PlottedChannelType.ValueType # 4 +global___PlottedChannelType = PlottedChannelType + +@typing.final +class PanelConfiguration(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATION_ID_FIELD_NUMBER: builtins.int + VERSION_ID_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + CHANGE_MESSAGE_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + CHANNEL_CONFIGURATIONS_FIELD_NUMBER: builtins.int + CHART_SETTINGS_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + ARCHIVED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int + panel_configuration_id: builtins.str + version_id: builtins.str + version: builtins.int + change_message: builtins.str + name: builtins.str + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + is_archived: builtins.bool + @property + def channel_configurations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ChannelConfigurations]: ... + @property + def chart_settings(self) -> google.protobuf.struct_pb2.Struct: ... + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + panel_configuration_id: builtins.str = ..., + version_id: builtins.str = ..., + version: builtins.int = ..., + change_message: builtins.str = ..., + name: builtins.str = ..., + channel_configurations: collections.abc.Iterable[global___ChannelConfigurations] | None = ..., + chart_settings: google.protobuf.struct_pb2.Struct | None = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + is_archived: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_chart_settings", b"_chart_settings", "archived_date", b"archived_date", "chart_settings", b"chart_settings", "created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_chart_settings", b"_chart_settings", "archived_date", b"archived_date", "change_message", b"change_message", "channel_configurations", b"channel_configurations", "chart_settings", b"chart_settings", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "is_archived", b"is_archived", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "panel_configuration_id", b"panel_configuration_id", "version", b"version", "version_id", b"version_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_chart_settings", b"_chart_settings"]) -> typing.Literal["chart_settings"] | None: ... + +global___PanelConfiguration = PanelConfiguration + +@typing.final +class ChannelConfigurations(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + COLOR_FIELD_NUMBER: builtins.int + CHANNEL_SETTINGS_FIELD_NUMBER: builtins.int + BIT_FIELD_INDEX_FIELD_NUMBER: builtins.int + BIT_FIELD_ELEMENT_FIELD_NUMBER: builtins.int + EXPRESSION_FIELD_NUMBER: builtins.int + EXPRESSION_CHANNEL_REFERENCES_FIELD_NUMBER: builtins.int + DATA_TYPE_FIELD_NUMBER: builtins.int + name: builtins.str + type: global___PlottedChannelType.ValueType + color: builtins.str + bit_field_index: builtins.int + """bitfield""" + expression: builtins.str + """temporary calculated channel""" + data_type: sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType + @property + def channel_settings(self) -> google.protobuf.struct_pb2.Struct: ... + @property + def bit_field_element(self) -> sift.common.type.v1.channel_bit_field_element_pb2.ChannelBitFieldElement: ... + @property + def expression_channel_references(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.calculated_channels.v2.calculated_channels_pb2.CalculatedChannelAbstractChannelReference]: ... + def __init__( + self, + *, + name: builtins.str = ..., + type: global___PlottedChannelType.ValueType = ..., + color: builtins.str = ..., + channel_settings: google.protobuf.struct_pb2.Struct | None = ..., + bit_field_index: builtins.int | None = ..., + bit_field_element: sift.common.type.v1.channel_bit_field_element_pb2.ChannelBitFieldElement | None = ..., + expression: builtins.str | None = ..., + expression_channel_references: collections.abc.Iterable[sift.calculated_channels.v2.calculated_channels_pb2.CalculatedChannelAbstractChannelReference] | None = ..., + data_type: sift.common.type.v1.channel_data_type_pb2.ChannelDataType.ValueType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_bit_field_element", b"_bit_field_element", "_bit_field_index", b"_bit_field_index", "_data_type", b"_data_type", "_expression", b"_expression", "bit_field_element", b"bit_field_element", "bit_field_index", b"bit_field_index", "channel_settings", b"channel_settings", "data_type", b"data_type", "expression", b"expression"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_bit_field_element", b"_bit_field_element", "_bit_field_index", b"_bit_field_index", "_data_type", b"_data_type", "_expression", b"_expression", "bit_field_element", b"bit_field_element", "bit_field_index", b"bit_field_index", "channel_settings", b"channel_settings", "color", b"color", "data_type", b"data_type", "expression", b"expression", "expression_channel_references", b"expression_channel_references", "name", b"name", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_bit_field_element", b"_bit_field_element"]) -> typing.Literal["bit_field_element"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_bit_field_index", b"_bit_field_index"]) -> typing.Literal["bit_field_index"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_data_type", b"_data_type"]) -> typing.Literal["data_type"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_expression", b"_expression"]) -> typing.Literal["expression"] | None: ... + +global___ChannelConfigurations = ChannelConfigurations + +@typing.final +class GetPanelConfigurationRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATION_ID_FIELD_NUMBER: builtins.int + panel_configuration_id: builtins.str + def __init__( + self, + *, + panel_configuration_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["panel_configuration_id", b"panel_configuration_id"]) -> None: ... + +global___GetPanelConfigurationRequest = GetPanelConfigurationRequest + +@typing.final +class GetPanelConfigurationResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATION_FIELD_NUMBER: builtins.int + @property + def panel_configuration(self) -> global___PanelConfiguration: ... + def __init__( + self, + *, + panel_configuration: global___PanelConfiguration | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration"]) -> None: ... + +global___GetPanelConfigurationResponse = GetPanelConfigurationResponse + +@typing.final +class ListPanelConfigurationsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + RUN_IDS_FIELD_NUMBER: builtins.int + ASSET_IDS_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of panel configurations to return. + The service may return fewer than this value. + If unspecified, at most 50 panel configurations will be returned. + The maximum value is 1000; values above 1000 will be coerced to 1000. + """ + page_token: builtins.str + """A page token, received from a previous `ListPanelConfigurations` call. + Provide this to retrieve the subsequent page. + When paginating, all other parameters provided to `ListPanelConfigurations` must match + the call that provided the page token. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string + Available fields to filter by are 'name', 'created_date', 'modified_date', and 'is_archived'. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + order_by: builtins.str + """How to order the retrieved panel configurations. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available fields to order_by are `name`. + If left empty, items are ordered by `name` in ascending order (alphabetical). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "name" + """ + @property + def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def asset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + run_ids: collections.abc.Iterable[builtins.str] | None = ..., + asset_ids: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["asset_ids", b"asset_ids", "filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token", "run_ids", b"run_ids"]) -> None: ... + +global___ListPanelConfigurationsRequest = ListPanelConfigurationsRequest + +@typing.final +class ListPanelConfigurationsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATIONS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + """A token, which can be sent as `page_token` to retrieve the next page. + If this field is omitted, there are no subsequent pages. + """ + @property + def panel_configurations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PanelConfiguration]: ... + def __init__( + self, + *, + panel_configurations: collections.abc.Iterable[global___PanelConfiguration] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "panel_configurations", b"panel_configurations"]) -> None: ... + +global___ListPanelConfigurationsResponse = ListPanelConfigurationsResponse + +@typing.final +class CreatePanelConfigurationRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + CHANNEL_CONFIGURATIONS_FIELD_NUMBER: builtins.int + CHART_SETTINGS_FIELD_NUMBER: builtins.int + name: builtins.str + @property + def channel_configurations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ChannelConfigurations]: ... + @property + def chart_settings(self) -> google.protobuf.struct_pb2.Struct: ... + def __init__( + self, + *, + name: builtins.str = ..., + channel_configurations: collections.abc.Iterable[global___ChannelConfigurations] | None = ..., + chart_settings: google.protobuf.struct_pb2.Struct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_chart_settings", b"_chart_settings", "chart_settings", b"chart_settings"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_chart_settings", b"_chart_settings", "channel_configurations", b"channel_configurations", "chart_settings", b"chart_settings", "name", b"name"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_chart_settings", b"_chart_settings"]) -> typing.Literal["chart_settings"] | None: ... + +global___CreatePanelConfigurationRequest = CreatePanelConfigurationRequest + +@typing.final +class CreatePanelConfigurationResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATION_FIELD_NUMBER: builtins.int + @property + def panel_configuration(self) -> global___PanelConfiguration: ... + def __init__( + self, + *, + panel_configuration: global___PanelConfiguration | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration"]) -> None: ... + +global___CreatePanelConfigurationResponse = CreatePanelConfigurationResponse + +@typing.final +class UpdatePanelConfigurationRequest(google.protobuf.message.Message): + """The request for a call to `PanelConfigurationService_UpdatePanelConfiguration` to update a panel configuration. Updating a panel + configuration creates a new version of the panel configuration, leaving the previous untouched. If no update is deemed necessary, then the + the current version is returned. Use `is_archived` to archive/unarchive a panel configuration. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATION_FIELD_NUMBER: builtins.int + UPDATE_MASK_FIELD_NUMBER: builtins.int + @property + def panel_configuration(self) -> global___PanelConfiguration: + """The panel configuration to update.""" + + @property + def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: + """The list of fields to be updated. The fields available to be updated are `name`, `channel_configurations`, + `chart_settings`, and `is_archived`. + """ + + def __init__( + self, + *, + panel_configuration: global___PanelConfiguration | None = ..., + update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration", "update_mask", b"update_mask"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration", "update_mask", b"update_mask"]) -> None: ... + +global___UpdatePanelConfigurationRequest = UpdatePanelConfigurationRequest + +@typing.final +class UpdatePanelConfigurationResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PANEL_CONFIGURATION_FIELD_NUMBER: builtins.int + @property + def panel_configuration(self) -> global___PanelConfiguration: ... + def __init__( + self, + *, + panel_configuration: global___PanelConfiguration | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["panel_configuration", b"panel_configuration"]) -> None: ... + +global___UpdatePanelConfigurationResponse = UpdatePanelConfigurationResponse diff --git a/python/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.py b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.py new file mode 100644 index 000000000..4ac400ed6 --- /dev/null +++ b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.py @@ -0,0 +1,169 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from sift.panel_configurations.v1 import panel_configuration_pb2 as sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2 + + +class PanelConfigurationServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetPanelConfiguration = channel.unary_unary( + '/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration', + request_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.GetPanelConfigurationRequest.SerializeToString, + response_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.GetPanelConfigurationResponse.FromString, + ) + self.ListPanelConfigurations = channel.unary_unary( + '/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations', + request_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.ListPanelConfigurationsRequest.SerializeToString, + response_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.ListPanelConfigurationsResponse.FromString, + ) + self.CreatePanelConfiguration = channel.unary_unary( + '/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration', + request_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.CreatePanelConfigurationRequest.SerializeToString, + response_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.CreatePanelConfigurationResponse.FromString, + ) + self.UpdatePanelConfiguration = channel.unary_unary( + '/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration', + request_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.UpdatePanelConfigurationRequest.SerializeToString, + response_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.UpdatePanelConfigurationResponse.FromString, + ) + + +class PanelConfigurationServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetPanelConfiguration(self, request, context): + """Retrieves a panel configuration. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListPanelConfigurations(self, request, context): + """Retrieves panel configurations using an optional filter. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreatePanelConfiguration(self, request, context): + """Creates a panel configuration. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdatePanelConfiguration(self, request, context): + """Updates an existing panel configuration using using the list of fields specified in `update_mask`. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_PanelConfigurationServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetPanelConfiguration': grpc.unary_unary_rpc_method_handler( + servicer.GetPanelConfiguration, + request_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.GetPanelConfigurationRequest.FromString, + response_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.GetPanelConfigurationResponse.SerializeToString, + ), + 'ListPanelConfigurations': grpc.unary_unary_rpc_method_handler( + servicer.ListPanelConfigurations, + request_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.ListPanelConfigurationsRequest.FromString, + response_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.ListPanelConfigurationsResponse.SerializeToString, + ), + 'CreatePanelConfiguration': grpc.unary_unary_rpc_method_handler( + servicer.CreatePanelConfiguration, + request_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.CreatePanelConfigurationRequest.FromString, + response_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.CreatePanelConfigurationResponse.SerializeToString, + ), + 'UpdatePanelConfiguration': grpc.unary_unary_rpc_method_handler( + servicer.UpdatePanelConfiguration, + request_deserializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.UpdatePanelConfigurationRequest.FromString, + response_serializer=sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.UpdatePanelConfigurationResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sift.panel_configurations.v1.PanelConfigurationService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class PanelConfigurationService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetPanelConfiguration(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration', + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.GetPanelConfigurationRequest.SerializeToString, + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.GetPanelConfigurationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListPanelConfigurations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations', + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.ListPanelConfigurationsRequest.SerializeToString, + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.ListPanelConfigurationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreatePanelConfiguration(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration', + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.CreatePanelConfigurationRequest.SerializeToString, + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.CreatePanelConfigurationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdatePanelConfiguration(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration', + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.UpdatePanelConfigurationRequest.SerializeToString, + sift_dot_panel__configurations_dot_v1_dot_panel__configuration__pb2.UpdatePanelConfigurationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.pyi b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.pyi new file mode 100644 index 000000000..c6e0eee6e --- /dev/null +++ b/python/lib/sift/panel_configurations/v1/panel_configuration_pb2_grpc.pyi @@ -0,0 +1,104 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sift.panel_configurations.v1.panel_configuration_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class PanelConfigurationServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + GetPanelConfiguration: grpc.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationRequest, + sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationResponse, + ] + """Retrieves a panel configuration.""" + + ListPanelConfigurations: grpc.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsRequest, + sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsResponse, + ] + """Retrieves panel configurations using an optional filter.""" + + CreatePanelConfiguration: grpc.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationRequest, + sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationResponse, + ] + """Creates a panel configuration.""" + + UpdatePanelConfiguration: grpc.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationRequest, + sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationResponse, + ] + """Updates an existing panel configuration using using the list of fields specified in `update_mask`.""" + +class PanelConfigurationServiceAsyncStub: + GetPanelConfiguration: grpc.aio.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationRequest, + sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationResponse, + ] + """Retrieves a panel configuration.""" + + ListPanelConfigurations: grpc.aio.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsRequest, + sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsResponse, + ] + """Retrieves panel configurations using an optional filter.""" + + CreatePanelConfiguration: grpc.aio.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationRequest, + sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationResponse, + ] + """Creates a panel configuration.""" + + UpdatePanelConfiguration: grpc.aio.UnaryUnaryMultiCallable[ + sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationRequest, + sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationResponse, + ] + """Updates an existing panel configuration using using the list of fields specified in `update_mask`.""" + +class PanelConfigurationServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def GetPanelConfiguration( + self, + request: sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationResponse, collections.abc.Awaitable[sift.panel_configurations.v1.panel_configuration_pb2.GetPanelConfigurationResponse]]: + """Retrieves a panel configuration.""" + + @abc.abstractmethod + def ListPanelConfigurations( + self, + request: sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsResponse, collections.abc.Awaitable[sift.panel_configurations.v1.panel_configuration_pb2.ListPanelConfigurationsResponse]]: + """Retrieves panel configurations using an optional filter.""" + + @abc.abstractmethod + def CreatePanelConfiguration( + self, + request: sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationResponse, collections.abc.Awaitable[sift.panel_configurations.v1.panel_configuration_pb2.CreatePanelConfigurationResponse]]: + """Creates a panel configuration.""" + + @abc.abstractmethod + def UpdatePanelConfiguration( + self, + request: sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationRequest, + context: _ServicerContext, + ) -> typing.Union[sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationResponse, collections.abc.Awaitable[sift.panel_configurations.v1.panel_configuration_pb2.UpdatePanelConfigurationResponse]]: + """Updates an existing panel configuration using using the list of fields specified in `update_mask`.""" + +def add_PanelConfigurationServiceServicer_to_server(servicer: PanelConfigurationServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/rust/crates/sift_rs/src/gen/mod.rs b/rust/crates/sift_rs/src/gen/mod.rs index 67fd6f6b4..627bd804e 100644 --- a/rust/crates/sift_rs/src/gen/mod.rs +++ b/rust/crates/sift_rs/src/gen/mod.rs @@ -172,6 +172,13 @@ pub mod sift { // @@protoc_insertion_point(sift.notifications.v1) } } + pub mod panel_configurations { + // @@protoc_insertion_point(attribute:sift.panel_configurations.v1) + pub mod v1 { + include!("sift/panel_configurations/v1/sift.panel_configurations.v1.rs"); + // @@protoc_insertion_point(sift.panel_configurations.v1) + } + } pub mod ping { // @@protoc_insertion_point(attribute:sift.ping.v1) pub mod v1 { diff --git a/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.rs b/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.rs new file mode 100644 index 000000000..b153d171f --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.rs @@ -0,0 +1,862 @@ +// @generated +// This file is @generated by prost-build. +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PanelConfiguration { + #[prost(string, tag="1")] + pub panel_configuration_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub version_id: ::prost::alloc::string::String, + #[prost(uint32, tag="3")] + pub version: u32, + #[prost(string, tag="4")] + pub change_message: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub name: ::prost::alloc::string::String, + #[prost(message, repeated, tag="6")] + pub channel_configurations: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="7")] + pub chart_settings: ::core::option::Option<::pbjson_types::Struct>, + #[prost(message, optional, tag="8")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="9")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="10")] + pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="11")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="12")] + pub modified_by_user_id: ::prost::alloc::string::String, + #[prost(bool, tag="13")] + pub is_archived: bool, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannelConfigurations { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(enumeration="PlottedChannelType", tag="2")] + pub r#type: i32, + #[prost(string, tag="3")] + pub color: ::prost::alloc::string::String, + #[prost(message, optional, tag="4")] + pub channel_settings: ::core::option::Option<::pbjson_types::Struct>, + #[prost(int32, optional, tag="5")] + pub bit_field_index: ::core::option::Option, + #[prost(message, optional, tag="6")] + pub bit_field_element: ::core::option::Option, + #[prost(string, optional, tag="7")] + pub expression: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, repeated, tag="8")] + pub expression_channel_references: ::prost::alloc::vec::Vec, + #[prost(enumeration="super::super::common::r#type::v1::ChannelDataType", optional, tag="9")] + pub data_type: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetPanelConfigurationRequest { + #[prost(string, tag="1")] + pub panel_configuration_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetPanelConfigurationResponse { + #[prost(message, optional, tag="1")] + pub panel_configuration: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListPanelConfigurationsRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, + #[prost(string, repeated, tag="5")] + pub run_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="6")] + pub asset_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListPanelConfigurationsResponse { + #[prost(message, repeated, tag="1")] + pub panel_configurations: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreatePanelConfigurationRequest { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(message, repeated, tag="2")] + pub channel_configurations: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="3")] + pub chart_settings: ::core::option::Option<::pbjson_types::Struct>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreatePanelConfigurationResponse { + #[prost(message, optional, tag="1")] + pub panel_configuration: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UpdatePanelConfigurationRequest { + #[prost(message, optional, tag="1")] + pub panel_configuration: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub update_mask: ::core::option::Option<::pbjson_types::FieldMask>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UpdatePanelConfigurationResponse { + #[prost(message, optional, tag="1")] + pub panel_configuration: ::core::option::Option, +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum PlottedChannelType { + Unspecified = 0, + Regular = 1, + CalculatedChannel = 2, + BitFieldElement = 3, + Enum = 4, +} +impl PlottedChannelType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::Unspecified => "PLOTTED_CHANNEL_TYPE_UNSPECIFIED", + Self::Regular => "PLOTTED_CHANNEL_TYPE_REGULAR", + Self::CalculatedChannel => "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL", + Self::BitFieldElement => "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT", + Self::Enum => "PLOTTED_CHANNEL_TYPE_ENUM", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PLOTTED_CHANNEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "PLOTTED_CHANNEL_TYPE_REGULAR" => Some(Self::Regular), + "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL" => Some(Self::CalculatedChannel), + "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT" => Some(Self::BitFieldElement), + "PLOTTED_CHANNEL_TYPE_ENUM" => Some(Self::Enum), + _ => None, + } + } +} +/// Encoded file descriptor set for the `sift.panel_configurations.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xe6, 0x58, 0x0a, 0x36, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x33, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x62, 0x69, + 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xc0, 0x05, 0x0a, 0x12, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x6a, 0x0a, 0x16, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x43, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x48, 0x00, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xab, 0x05, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x47, + 0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x62, 0x69, 0x74, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x0d, 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x11, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x69, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0f, + 0x62, 0x69, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x8a, 0x01, 0x0a, 0x1d, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x46, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x1b, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, + 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x16, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x82, + 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x61, 0x0a, 0x13, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x12, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xd4, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, + 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x06, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x1f, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, + 0x0a, 0x14, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x83, 0x02, 0x0a, 0x1f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x22, 0x85, 0x01, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x13, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x01, 0x0a, 0x1f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, + 0x13, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x12, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x85, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x13, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, + 0xd8, 0x01, 0x0a, 0x12, 0x50, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x20, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, + 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, + 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, + 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, + 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x43, 0x55, + 0x4c, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x02, 0x12, + 0x2a, 0x0a, 0x26, 0x50, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x50, + 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x04, 0x32, 0xfa, 0x09, 0x0a, 0x19, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8b, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x39, + 0x12, 0x15, 0x47, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, + 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x92, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x3c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x7a, 0x92, 0x41, 0x53, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x38, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xff, 0x01, 0x0a, 0x18, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x92, 0x41, 0x3a, 0x12, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, + 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf1, 0x02, + 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd5, 0x01, 0x92, 0x41, 0x7e, 0x12, + 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x32, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x7d, 0x1a, 0x44, 0x92, 0x41, 0x41, 0x12, 0x3f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0xeb, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x1d, 0x0a, + 0x1b, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x20, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x17, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, 0x50, 0x58, 0xaa, + 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1b, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x27, 0x53, 0x69, + 0x66, 0x74, 0x5c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x99, 0x32, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xae, 0x01, + 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, + 0x12, 0x03, 0x02, 0x00, 0x25, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, + 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, + 0x02, 0x12, 0x03, 0x06, 0x00, 0x2a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, 0x12, 0x03, 0x07, 0x00, + 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x05, 0x12, 0x03, 0x09, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x06, 0x12, 0x03, 0x0a, + 0x00, 0x3f, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, 0x0b, 0x00, 0x3d, 0x0a, 0x09, 0x0a, + 0x02, 0x03, 0x08, 0x12, 0x03, 0x0c, 0x00, 0x35, 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x0e, + 0x00, 0x10, 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, 0x0e, 0x00, 0x10, 0x02, + 0x0a, 0x0b, 0x0a, 0x04, 0x08, 0x92, 0x08, 0x02, 0x12, 0x03, 0x0f, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, + 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x0f, 0x09, 0x2d, 0x0a, 0x0a, 0x0a, 0x02, 0x06, + 0x00, 0x12, 0x04, 0x12, 0x00, 0x3e, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, + 0x12, 0x08, 0x21, 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x00, 0x03, 0x12, 0x04, 0x13, 0x02, 0x96, 0x01, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x03, 0x92, 0x08, 0x12, 0x04, 0x13, 0x02, 0x96, 0x01, 0x0a, + 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x03, 0x92, 0x08, 0x02, 0x12, 0x04, 0x13, 0x46, 0x94, 0x01, 0x0a, + 0x30, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x16, 0x02, 0x1c, 0x03, 0x1a, 0x22, 0x20, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x06, 0x1b, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x16, 0x1c, 0x38, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x16, 0x43, 0x60, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x17, 0x04, 0x5e, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, + 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x17, 0x04, 0x5e, 0x0a, 0x11, 0x0a, 0x0a, 0x06, + 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x17, 0x20, 0x5c, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x18, 0x04, 0x1b, 0x06, 0x0a, 0x0f, 0x0a, + 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x18, 0x04, 0x1b, 0x06, 0x0a, 0x0f, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x19, 0x06, 0x26, 0x0a, + 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x1a, 0x06, 0x35, + 0x0a, 0x48, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x1f, 0x02, 0x25, 0x03, 0x1a, 0x3a, + 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x1f, 0x06, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x02, 0x12, 0x03, 0x1f, 0x1e, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x1f, 0x47, 0x66, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x20, + 0x04, 0x45, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, + 0x03, 0x20, 0x04, 0x45, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x02, 0x12, 0x03, 0x20, 0x20, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, + 0x12, 0x04, 0x21, 0x04, 0x24, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, + 0x08, 0x12, 0x04, 0x21, 0x04, 0x24, 0x06, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, + 0x92, 0x08, 0x02, 0x12, 0x03, 0x22, 0x06, 0x28, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x23, 0x06, 0x4d, 0x0a, 0x2e, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x02, 0x12, 0x04, 0x28, 0x02, 0x31, 0x03, 0x1a, 0x20, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x28, 0x06, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, + 0x12, 0x03, 0x28, 0x1f, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x28, 0x49, 0x69, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x29, 0x04, + 0x2c, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, + 0x04, 0x29, 0x04, 0x2c, 0x06, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x04, 0x12, 0x03, 0x2a, 0x06, 0x2a, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x2b, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x2d, 0x04, 0x30, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, + 0x02, 0x02, 0x04, 0x92, 0x08, 0x12, 0x04, 0x2d, 0x04, 0x30, 0x06, 0x0a, 0x0f, 0x0a, 0x08, 0x06, + 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x2e, 0x06, 0x29, 0x0a, 0x0f, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x2f, 0x06, 0x33, 0x0a, 0x72, 0x0a, + 0x04, 0x06, 0x00, 0x02, 0x03, 0x12, 0x04, 0x34, 0x02, 0x3d, 0x03, 0x1a, 0x64, 0x20, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x34, 0x06, 0x1e, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x34, 0x1f, 0x3e, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x34, 0x49, 0x69, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x03, 0x04, 0x12, 0x04, 0x35, 0x04, 0x38, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x35, 0x04, 0x38, 0x06, 0x0a, 0x11, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x06, 0x12, 0x03, 0x36, 0x06, 0x58, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, + 0x37, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, 0x12, 0x04, 0x39, 0x04, + 0x3c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x12, 0x04, 0x39, + 0x04, 0x3c, 0x06, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x03, 0x3a, 0x06, 0x29, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x03, 0x3b, 0x06, 0x77, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x40, 0x00, 0x46, + 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x40, 0x05, 0x17, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x41, 0x02, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x41, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, + 0x02, 0x12, 0x03, 0x41, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x41, 0x27, 0x3a, 0x0a, 0x0d, 0x0a, 0x06, 0x05, 0x00, 0x02, 0x00, 0x03, 0x01, 0x12, 0x03, + 0x41, 0x28, 0x39, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x42, 0x02, 0x23, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x42, 0x02, 0x1e, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x42, 0x21, 0x22, 0x0a, 0x0b, 0x0a, 0x04, + 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x43, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x43, 0x02, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, + 0x12, 0x03, 0x43, 0x2c, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x44, + 0x02, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x44, 0x02, 0x28, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x44, 0x2b, 0x2c, 0x0a, 0x0b, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, 0x12, 0x03, 0x45, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x45, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x04, 0x02, 0x12, 0x03, 0x45, 0x1e, 0x1f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x48, + 0x00, 0x58, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x48, 0x08, 0x1a, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x49, 0x02, 0x24, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x49, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x49, 0x09, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x49, 0x22, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, + 0x4a, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x4a, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4a, 0x09, 0x13, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4a, 0x16, 0x17, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x4b, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x02, 0x05, 0x12, 0x03, 0x4b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x4b, 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, + 0x03, 0x4b, 0x13, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x4c, 0x02, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x4c, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x4c, 0x09, 0x17, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x4c, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x04, 0x12, 0x03, 0x4e, 0x02, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, + 0x05, 0x12, 0x03, 0x4e, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, + 0x03, 0x4e, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x4e, + 0x10, 0x11, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x4f, 0x02, 0x3c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x4f, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x03, 0x4f, 0x0b, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x4f, 0x21, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x05, 0x03, 0x12, 0x03, 0x4f, 0x3a, 0x3b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, + 0x03, 0x50, 0x02, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x50, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x06, 0x12, 0x03, 0x50, 0x0b, 0x21, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x50, 0x22, 0x30, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x50, 0x33, 0x34, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x52, 0x02, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x06, 0x12, 0x03, 0x52, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, + 0x12, 0x03, 0x52, 0x1c, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, + 0x52, 0x2b, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x53, 0x02, 0x2e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x06, 0x12, 0x03, 0x53, 0x02, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x53, 0x1c, 0x29, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x53, 0x2c, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x09, 0x12, 0x03, 0x54, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x06, + 0x12, 0x03, 0x54, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, + 0x54, 0x1c, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x54, 0x2c, + 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x55, 0x02, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x55, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x55, 0x09, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0a, 0x03, 0x12, 0x03, 0x55, 0x1e, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, + 0x12, 0x03, 0x56, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x05, 0x12, 0x03, + 0x56, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x56, 0x09, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x56, 0x1f, 0x21, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x57, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x57, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0c, 0x01, 0x12, 0x03, 0x57, 0x07, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, + 0x03, 0x12, 0x03, 0x57, 0x15, 0x17, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x5a, 0x00, + 0x68, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x5a, 0x08, 0x1d, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x5b, 0x02, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x5b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x5b, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x5b, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x03, + 0x5b, 0x12, 0x3a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x03, 0x5b, 0x13, 0x39, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x5c, 0x02, + 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, 0x5c, 0x02, 0x14, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x5c, 0x15, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x5c, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x5c, 0x1e, 0x46, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x5c, 0x1f, 0x45, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x02, 0x12, 0x03, 0x5d, 0x02, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, + 0x12, 0x03, 0x5d, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, + 0x5d, 0x09, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x5d, 0x11, + 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x03, 0x5d, 0x13, 0x3b, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x5d, 0x14, 0x3a, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x5e, 0x02, 0x57, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, 0x03, 0x5e, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x5e, 0x19, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x5e, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, + 0x12, 0x03, 0x5e, 0x2e, 0x56, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x03, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x5e, 0x2f, 0x55, 0x0a, 0x17, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x03, + 0x61, 0x02, 0x25, 0x1a, 0x0a, 0x20, 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x04, 0x12, 0x03, 0x61, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x04, 0x05, 0x12, 0x03, 0x61, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x61, 0x11, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x04, 0x03, 0x12, 0x03, 0x61, 0x23, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, + 0x03, 0x62, 0x02, 0x4c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x04, 0x12, 0x03, 0x62, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x06, 0x12, 0x03, 0x62, 0x0b, 0x35, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x62, 0x36, 0x47, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x62, 0x4a, 0x4b, 0x0a, 0x2b, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x06, 0x12, 0x03, 0x65, 0x02, 0x21, 0x1a, 0x1e, 0x20, 0x74, 0x65, 0x6d, 0x70, + 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x06, 0x04, 0x12, 0x03, 0x65, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, + 0x12, 0x03, 0x65, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, + 0x65, 0x12, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x65, 0x1f, + 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x66, 0x02, 0x73, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x04, 0x12, 0x03, 0x66, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x07, 0x06, 0x12, 0x03, 0x66, 0x0b, 0x50, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x07, 0x01, 0x12, 0x03, 0x66, 0x51, 0x6e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, + 0x03, 0x12, 0x03, 0x66, 0x71, 0x72, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, 0x12, 0x03, + 0x67, 0x02, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x04, 0x12, 0x03, 0x67, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x03, 0x67, 0x0b, 0x2e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x67, 0x2f, 0x38, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x67, 0x3b, 0x3c, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x02, 0x12, 0x04, 0x6a, 0x00, 0x6c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, + 0x6a, 0x08, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x6b, 0x02, 0x4d, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x6b, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6b, 0x09, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x6b, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x00, 0x08, 0x12, 0x03, 0x6b, 0x24, 0x4c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6b, 0x25, 0x4b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, + 0x04, 0x6e, 0x00, 0x70, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x6e, 0x08, + 0x25, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x6f, 0x02, 0x2d, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x6f, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6f, 0x15, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x6f, 0x2b, 0x2c, 0x0a, 0x0b, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x05, + 0x71, 0x00, 0x8c, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x71, 0x08, + 0x26, 0x0a, 0xfe, 0x01, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x76, 0x02, 0x17, 0x1a, + 0xf0, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x35, 0x30, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, + 0x6f, 0x76, 0x65, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x03, 0x76, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x76, 0x09, 0x12, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x76, 0x15, 0x16, 0x0a, 0x85, 0x02, 0x0a, + 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x7c, 0x02, 0x18, 0x1a, 0xf7, 0x01, 0x20, 0x41, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x60, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x05, 0x12, 0x03, 0x7c, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x7c, 0x09, 0x13, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x7c, 0x16, 0x17, 0x0a, 0xe8, + 0x02, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, 0x04, 0x81, 0x01, 0x02, 0x14, 0x1a, 0xd9, 0x02, + 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, + 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x27, 0x6e, 0x61, 0x6d, 0x65, + 0x27, 0x2c, 0x20, 0x27, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x27, 0x2c, 0x20, 0x27, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x27, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x27, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x27, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, + 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, + 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, + 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x02, 0x05, 0x12, 0x04, 0x81, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x12, 0x04, 0x81, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, + 0x12, 0x04, 0x81, 0x01, 0x12, 0x13, 0x0a, 0xf6, 0x02, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, + 0x04, 0x88, 0x01, 0x02, 0x3f, 0x1a, 0xe7, 0x02, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x64, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, + 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, + 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x6e, 0x61, + 0x6d, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, 0x2f, + 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x45, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x05, 0x12, 0x04, 0x88, 0x01, 0x02, 0x08, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x04, 0x88, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x04, 0x88, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x03, 0x08, 0x12, 0x04, 0x88, 0x01, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x04, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x01, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x04, 0x02, 0x04, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x04, 0x04, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x04, 0x05, 0x12, 0x04, 0x8a, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x04, 0x01, 0x12, 0x04, 0x8a, 0x01, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, + 0x03, 0x12, 0x04, 0x8a, 0x01, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x08, + 0x12, 0x04, 0x8a, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x04, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x8a, 0x01, 0x1f, 0x45, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x05, + 0x12, 0x04, 0x8b, 0x01, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x04, 0x12, + 0x04, 0x8b, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x05, 0x12, 0x04, + 0x8b, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x01, 0x12, 0x04, 0x8b, + 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, 0x12, 0x04, 0x8b, 0x01, + 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x08, 0x12, 0x04, 0x8b, 0x01, 0x20, + 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8b, + 0x01, 0x21, 0x47, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x06, 0x8e, 0x01, 0x00, 0x94, 0x01, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x04, 0x8e, 0x01, 0x08, 0x27, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x04, 0x8f, 0x01, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8f, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x00, 0x06, 0x12, 0x04, 0x8f, 0x01, 0x0b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x1e, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x8f, 0x01, 0x35, 0x36, 0x0a, 0x90, 0x01, 0x0a, 0x04, 0x04, 0x05, 0x02, + 0x01, 0x12, 0x04, 0x93, 0x01, 0x02, 0x1d, 0x1a, 0x81, 0x01, 0x20, 0x41, 0x20, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x60, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, + 0x0a, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x6f, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x01, 0x05, 0x12, 0x04, 0x93, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x01, 0x01, 0x12, 0x04, 0x93, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x01, 0x03, 0x12, 0x04, 0x93, 0x01, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, + 0x96, 0x01, 0x00, 0x9a, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0x96, + 0x01, 0x08, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0x97, 0x01, 0x02, + 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x04, 0x97, 0x01, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0x97, 0x01, 0x09, 0x0d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0x97, 0x01, 0x10, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x08, 0x12, 0x04, 0x97, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x06, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x97, 0x01, 0x13, 0x39, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x04, 0x98, 0x01, 0x02, 0x65, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x01, 0x04, 0x12, 0x04, 0x98, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x01, 0x06, 0x12, 0x04, 0x98, 0x01, 0x0b, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0x98, 0x01, 0x21, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, + 0x02, 0x01, 0x03, 0x12, 0x04, 0x98, 0x01, 0x3a, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x01, 0x08, 0x12, 0x04, 0x98, 0x01, 0x3c, 0x64, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x98, 0x01, 0x3d, 0x63, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x02, 0x12, 0x04, 0x99, 0x01, 0x02, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, + 0x04, 0x12, 0x04, 0x99, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, + 0x12, 0x04, 0x99, 0x01, 0x0b, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, + 0x04, 0x99, 0x01, 0x22, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x04, + 0x99, 0x01, 0x33, 0x34, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0x9c, 0x01, 0x00, 0x9e, + 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0x9c, 0x01, 0x08, 0x28, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x04, 0x9d, 0x01, 0x02, 0x2d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9d, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9d, 0x01, 0x15, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9d, 0x01, 0x2b, 0x2c, 0x0a, 0xfd, 0x02, 0x0a, 0x02, 0x04, + 0x08, 0x12, 0x06, 0xa3, 0x01, 0x00, 0xaa, 0x01, 0x01, 0x1a, 0xee, 0x02, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x0a, 0x20, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6c, + 0x65, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x20, 0x75, 0x6e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x64, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x64, + 0x65, 0x65, 0x6d, 0x65, 0x64, 0x20, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x79, 0x2c, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, + 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x20, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, + 0x01, 0x12, 0x04, 0xa3, 0x01, 0x08, 0x27, 0x0a, 0x32, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, + 0x04, 0xa5, 0x01, 0x02, 0x56, 0x1a, 0x24, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa5, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x15, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xa5, 0x01, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xa5, 0x01, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x01, 0x2e, 0x54, 0x0a, 0xa1, 0x01, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x02, 0x55, 0x1a, 0x92, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x69, + 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa9, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x1c, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa9, 0x01, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x01, 0x08, 0x12, 0x04, 0xa9, 0x01, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa9, 0x01, 0x2d, 0x53, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x09, 0x12, 0x06, 0xac, 0x01, 0x00, 0xae, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, + 0x12, 0x04, 0xac, 0x01, 0x08, 0x28, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, + 0xad, 0x01, 0x02, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0xad, + 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0xad, 0x01, + 0x15, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0xad, 0x01, 0x2b, + 0x2c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("sift.panel_configurations.v1.tonic.rs"); +include!("sift.panel_configurations.v1.serde.rs"); +// @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.serde.rs new file mode 100644 index 000000000..67a4f308f --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.serde.rs @@ -0,0 +1,1525 @@ +// @generated +impl serde::Serialize for ChannelConfigurations { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if self.r#type != 0 { + len += 1; + } + if !self.color.is_empty() { + len += 1; + } + if self.channel_settings.is_some() { + len += 1; + } + if self.bit_field_index.is_some() { + len += 1; + } + if self.bit_field_element.is_some() { + len += 1; + } + if self.expression.is_some() { + len += 1; + } + if !self.expression_channel_references.is_empty() { + len += 1; + } + if self.data_type.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.ChannelConfigurations", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if self.r#type != 0 { + let v = PlottedChannelType::try_from(self.r#type) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if !self.color.is_empty() { + struct_ser.serialize_field("color", &self.color)?; + } + if let Some(v) = self.channel_settings.as_ref() { + struct_ser.serialize_field("channelSettings", v)?; + } + if let Some(v) = self.bit_field_index.as_ref() { + struct_ser.serialize_field("bitFieldIndex", v)?; + } + if let Some(v) = self.bit_field_element.as_ref() { + struct_ser.serialize_field("bitFieldElement", v)?; + } + if let Some(v) = self.expression.as_ref() { + struct_ser.serialize_field("expression", v)?; + } + if !self.expression_channel_references.is_empty() { + struct_ser.serialize_field("expressionChannelReferences", &self.expression_channel_references)?; + } + if let Some(v) = self.data_type.as_ref() { + let v = super::super::common::r#type::v1::ChannelDataType::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("dataType", &v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ChannelConfigurations { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "type", + "color", + "channel_settings", + "channelSettings", + "bit_field_index", + "bitFieldIndex", + "bit_field_element", + "bitFieldElement", + "expression", + "expression_channel_references", + "expressionChannelReferences", + "data_type", + "dataType", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + Type, + Color, + ChannelSettings, + BitFieldIndex, + BitFieldElement, + Expression, + ExpressionChannelReferences, + DataType, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "type" => Ok(GeneratedField::Type), + "color" => Ok(GeneratedField::Color), + "channelSettings" | "channel_settings" => Ok(GeneratedField::ChannelSettings), + "bitFieldIndex" | "bit_field_index" => Ok(GeneratedField::BitFieldIndex), + "bitFieldElement" | "bit_field_element" => Ok(GeneratedField::BitFieldElement), + "expression" => Ok(GeneratedField::Expression), + "expressionChannelReferences" | "expression_channel_references" => Ok(GeneratedField::ExpressionChannelReferences), + "dataType" | "data_type" => Ok(GeneratedField::DataType), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ChannelConfigurations; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.ChannelConfigurations") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut r#type__ = None; + let mut color__ = None; + let mut channel_settings__ = None; + let mut bit_field_index__ = None; + let mut bit_field_element__ = None; + let mut expression__ = None; + let mut expression_channel_references__ = None; + let mut data_type__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Color => { + if color__.is_some() { + return Err(serde::de::Error::duplicate_field("color")); + } + color__ = Some(map_.next_value()?); + } + GeneratedField::ChannelSettings => { + if channel_settings__.is_some() { + return Err(serde::de::Error::duplicate_field("channelSettings")); + } + channel_settings__ = map_.next_value()?; + } + GeneratedField::BitFieldIndex => { + if bit_field_index__.is_some() { + return Err(serde::de::Error::duplicate_field("bitFieldIndex")); + } + bit_field_index__ = + map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::BitFieldElement => { + if bit_field_element__.is_some() { + return Err(serde::de::Error::duplicate_field("bitFieldElement")); + } + bit_field_element__ = map_.next_value()?; + } + GeneratedField::Expression => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("expression")); + } + expression__ = map_.next_value()?; + } + GeneratedField::ExpressionChannelReferences => { + if expression_channel_references__.is_some() { + return Err(serde::de::Error::duplicate_field("expressionChannelReferences")); + } + expression_channel_references__ = Some(map_.next_value()?); + } + GeneratedField::DataType => { + if data_type__.is_some() { + return Err(serde::de::Error::duplicate_field("dataType")); + } + data_type__ = map_.next_value::<::std::option::Option>()?.map(|x| x as i32); + } + } + } + Ok(ChannelConfigurations { + name: name__.unwrap_or_default(), + r#type: r#type__.unwrap_or_default(), + color: color__.unwrap_or_default(), + channel_settings: channel_settings__, + bit_field_index: bit_field_index__, + bit_field_element: bit_field_element__, + expression: expression__, + expression_channel_references: expression_channel_references__.unwrap_or_default(), + data_type: data_type__, + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.ChannelConfigurations", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreatePanelConfigurationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if !self.channel_configurations.is_empty() { + len += 1; + } + if self.chart_settings.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.CreatePanelConfigurationRequest", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.channel_configurations.is_empty() { + struct_ser.serialize_field("channelConfigurations", &self.channel_configurations)?; + } + if let Some(v) = self.chart_settings.as_ref() { + struct_ser.serialize_field("chartSettings", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreatePanelConfigurationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "channel_configurations", + "channelConfigurations", + "chart_settings", + "chartSettings", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + ChannelConfigurations, + ChartSettings, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "channelConfigurations" | "channel_configurations" => Ok(GeneratedField::ChannelConfigurations), + "chartSettings" | "chart_settings" => Ok(GeneratedField::ChartSettings), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreatePanelConfigurationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.CreatePanelConfigurationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut channel_configurations__ = None; + let mut chart_settings__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::ChannelConfigurations => { + if channel_configurations__.is_some() { + return Err(serde::de::Error::duplicate_field("channelConfigurations")); + } + channel_configurations__ = Some(map_.next_value()?); + } + GeneratedField::ChartSettings => { + if chart_settings__.is_some() { + return Err(serde::de::Error::duplicate_field("chartSettings")); + } + chart_settings__ = map_.next_value()?; + } + } + } + Ok(CreatePanelConfigurationRequest { + name: name__.unwrap_or_default(), + channel_configurations: channel_configurations__.unwrap_or_default(), + chart_settings: chart_settings__, + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.CreatePanelConfigurationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreatePanelConfigurationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.panel_configuration.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.CreatePanelConfigurationResponse", len)?; + if let Some(v) = self.panel_configuration.as_ref() { + struct_ser.serialize_field("panelConfiguration", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreatePanelConfigurationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configuration", + "panelConfiguration", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfiguration, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfiguration" | "panel_configuration" => Ok(GeneratedField::PanelConfiguration), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreatePanelConfigurationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.CreatePanelConfigurationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configuration__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfiguration => { + if panel_configuration__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfiguration")); + } + panel_configuration__ = map_.next_value()?; + } + } + } + Ok(CreatePanelConfigurationResponse { + panel_configuration: panel_configuration__, + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.CreatePanelConfigurationResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetPanelConfigurationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.panel_configuration_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.GetPanelConfigurationRequest", len)?; + if !self.panel_configuration_id.is_empty() { + struct_ser.serialize_field("panelConfigurationId", &self.panel_configuration_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetPanelConfigurationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configuration_id", + "panelConfigurationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfigurationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfigurationId" | "panel_configuration_id" => Ok(GeneratedField::PanelConfigurationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetPanelConfigurationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.GetPanelConfigurationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configuration_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfigurationId => { + if panel_configuration_id__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfigurationId")); + } + panel_configuration_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetPanelConfigurationRequest { + panel_configuration_id: panel_configuration_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.GetPanelConfigurationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetPanelConfigurationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.panel_configuration.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.GetPanelConfigurationResponse", len)?; + if let Some(v) = self.panel_configuration.as_ref() { + struct_ser.serialize_field("panelConfiguration", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetPanelConfigurationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configuration", + "panelConfiguration", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfiguration, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfiguration" | "panel_configuration" => Ok(GeneratedField::PanelConfiguration), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetPanelConfigurationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.GetPanelConfigurationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configuration__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfiguration => { + if panel_configuration__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfiguration")); + } + panel_configuration__ = map_.next_value()?; + } + } + } + Ok(GetPanelConfigurationResponse { + panel_configuration: panel_configuration__, + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.GetPanelConfigurationResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListPanelConfigurationsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + if !self.run_ids.is_empty() { + len += 1; + } + if !self.asset_ids.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.ListPanelConfigurationsRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + if !self.run_ids.is_empty() { + struct_ser.serialize_field("runIds", &self.run_ids)?; + } + if !self.asset_ids.is_empty() { + struct_ser.serialize_field("assetIds", &self.asset_ids)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListPanelConfigurationsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + "run_ids", + "runIds", + "asset_ids", + "assetIds", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + RunIds, + AssetIds, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + "runIds" | "run_ids" => Ok(GeneratedField::RunIds), + "assetIds" | "asset_ids" => Ok(GeneratedField::AssetIds), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListPanelConfigurationsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.ListPanelConfigurationsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + let mut run_ids__ = None; + let mut asset_ids__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + GeneratedField::RunIds => { + if run_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("runIds")); + } + run_ids__ = Some(map_.next_value()?); + } + GeneratedField::AssetIds => { + if asset_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("assetIds")); + } + asset_ids__ = Some(map_.next_value()?); + } + } + } + Ok(ListPanelConfigurationsRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + run_ids: run_ids__.unwrap_or_default(), + asset_ids: asset_ids__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.ListPanelConfigurationsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListPanelConfigurationsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.panel_configurations.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.ListPanelConfigurationsResponse", len)?; + if !self.panel_configurations.is_empty() { + struct_ser.serialize_field("panelConfigurations", &self.panel_configurations)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListPanelConfigurationsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configurations", + "panelConfigurations", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfigurations, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfigurations" | "panel_configurations" => Ok(GeneratedField::PanelConfigurations), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListPanelConfigurationsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.ListPanelConfigurationsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configurations__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfigurations => { + if panel_configurations__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfigurations")); + } + panel_configurations__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListPanelConfigurationsResponse { + panel_configurations: panel_configurations__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.ListPanelConfigurationsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for PanelConfiguration { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.panel_configuration_id.is_empty() { + len += 1; + } + if !self.version_id.is_empty() { + len += 1; + } + if self.version != 0 { + len += 1; + } + if !self.change_message.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.channel_configurations.is_empty() { + len += 1; + } + if self.chart_settings.is_some() { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if self.archived_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + if self.is_archived { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.PanelConfiguration", len)?; + if !self.panel_configuration_id.is_empty() { + struct_ser.serialize_field("panelConfigurationId", &self.panel_configuration_id)?; + } + if !self.version_id.is_empty() { + struct_ser.serialize_field("versionId", &self.version_id)?; + } + if self.version != 0 { + struct_ser.serialize_field("version", &self.version)?; + } + if !self.change_message.is_empty() { + struct_ser.serialize_field("changeMessage", &self.change_message)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.channel_configurations.is_empty() { + struct_ser.serialize_field("channelConfigurations", &self.channel_configurations)?; + } + if let Some(v) = self.chart_settings.as_ref() { + struct_ser.serialize_field("chartSettings", v)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if let Some(v) = self.archived_date.as_ref() { + struct_ser.serialize_field("archivedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for PanelConfiguration { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configuration_id", + "panelConfigurationId", + "version_id", + "versionId", + "version", + "change_message", + "changeMessage", + "name", + "channel_configurations", + "channelConfigurations", + "chart_settings", + "chartSettings", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "archived_date", + "archivedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + "is_archived", + "isArchived", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfigurationId, + VersionId, + Version, + ChangeMessage, + Name, + ChannelConfigurations, + ChartSettings, + CreatedDate, + ModifiedDate, + ArchivedDate, + CreatedByUserId, + ModifiedByUserId, + IsArchived, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfigurationId" | "panel_configuration_id" => Ok(GeneratedField::PanelConfigurationId), + "versionId" | "version_id" => Ok(GeneratedField::VersionId), + "version" => Ok(GeneratedField::Version), + "changeMessage" | "change_message" => Ok(GeneratedField::ChangeMessage), + "name" => Ok(GeneratedField::Name), + "channelConfigurations" | "channel_configurations" => Ok(GeneratedField::ChannelConfigurations), + "chartSettings" | "chart_settings" => Ok(GeneratedField::ChartSettings), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = PanelConfiguration; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.PanelConfiguration") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configuration_id__ = None; + let mut version_id__ = None; + let mut version__ = None; + let mut change_message__ = None; + let mut name__ = None; + let mut channel_configurations__ = None; + let mut chart_settings__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut archived_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + let mut is_archived__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfigurationId => { + if panel_configuration_id__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfigurationId")); + } + panel_configuration_id__ = Some(map_.next_value()?); + } + GeneratedField::VersionId => { + if version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("versionId")); + } + version_id__ = Some(map_.next_value()?); + } + GeneratedField::Version => { + if version__.is_some() { + return Err(serde::de::Error::duplicate_field("version")); + } + version__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::ChangeMessage => { + if change_message__.is_some() { + return Err(serde::de::Error::duplicate_field("changeMessage")); + } + change_message__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::ChannelConfigurations => { + if channel_configurations__.is_some() { + return Err(serde::de::Error::duplicate_field("channelConfigurations")); + } + channel_configurations__ = Some(map_.next_value()?); + } + GeneratedField::ChartSettings => { + if chart_settings__.is_some() { + return Err(serde::de::Error::duplicate_field("chartSettings")); + } + chart_settings__ = map_.next_value()?; + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::ArchivedDate => { + if archived_date__.is_some() { + return Err(serde::de::Error::duplicate_field("archivedDate")); + } + archived_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } + } + } + Ok(PanelConfiguration { + panel_configuration_id: panel_configuration_id__.unwrap_or_default(), + version_id: version_id__.unwrap_or_default(), + version: version__.unwrap_or_default(), + change_message: change_message__.unwrap_or_default(), + name: name__.unwrap_or_default(), + channel_configurations: channel_configurations__.unwrap_or_default(), + chart_settings: chart_settings__, + created_date: created_date__, + modified_date: modified_date__, + archived_date: archived_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.PanelConfiguration", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for PlottedChannelType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "PLOTTED_CHANNEL_TYPE_UNSPECIFIED", + Self::Regular => "PLOTTED_CHANNEL_TYPE_REGULAR", + Self::CalculatedChannel => "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL", + Self::BitFieldElement => "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT", + Self::Enum => "PLOTTED_CHANNEL_TYPE_ENUM", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for PlottedChannelType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "PLOTTED_CHANNEL_TYPE_UNSPECIFIED", + "PLOTTED_CHANNEL_TYPE_REGULAR", + "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL", + "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT", + "PLOTTED_CHANNEL_TYPE_ENUM", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = PlottedChannelType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "PLOTTED_CHANNEL_TYPE_UNSPECIFIED" => Ok(PlottedChannelType::Unspecified), + "PLOTTED_CHANNEL_TYPE_REGULAR" => Ok(PlottedChannelType::Regular), + "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL" => Ok(PlottedChannelType::CalculatedChannel), + "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT" => Ok(PlottedChannelType::BitFieldElement), + "PLOTTED_CHANNEL_TYPE_ENUM" => Ok(PlottedChannelType::Enum), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for UpdatePanelConfigurationRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.panel_configuration.is_some() { + len += 1; + } + if self.update_mask.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.UpdatePanelConfigurationRequest", len)?; + if let Some(v) = self.panel_configuration.as_ref() { + struct_ser.serialize_field("panelConfiguration", v)?; + } + if let Some(v) = self.update_mask.as_ref() { + struct_ser.serialize_field("updateMask", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UpdatePanelConfigurationRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configuration", + "panelConfiguration", + "update_mask", + "updateMask", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfiguration, + UpdateMask, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfiguration" | "panel_configuration" => Ok(GeneratedField::PanelConfiguration), + "updateMask" | "update_mask" => Ok(GeneratedField::UpdateMask), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UpdatePanelConfigurationRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.UpdatePanelConfigurationRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configuration__ = None; + let mut update_mask__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfiguration => { + if panel_configuration__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfiguration")); + } + panel_configuration__ = map_.next_value()?; + } + GeneratedField::UpdateMask => { + if update_mask__.is_some() { + return Err(serde::de::Error::duplicate_field("updateMask")); + } + update_mask__ = map_.next_value()?; + } + } + } + Ok(UpdatePanelConfigurationRequest { + panel_configuration: panel_configuration__, + update_mask: update_mask__, + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.UpdatePanelConfigurationRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UpdatePanelConfigurationResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.panel_configuration.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.panel_configurations.v1.UpdatePanelConfigurationResponse", len)?; + if let Some(v) = self.panel_configuration.as_ref() { + struct_ser.serialize_field("panelConfiguration", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UpdatePanelConfigurationResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "panel_configuration", + "panelConfiguration", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PanelConfiguration, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "panelConfiguration" | "panel_configuration" => Ok(GeneratedField::PanelConfiguration), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UpdatePanelConfigurationResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.panel_configurations.v1.UpdatePanelConfigurationResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut panel_configuration__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PanelConfiguration => { + if panel_configuration__.is_some() { + return Err(serde::de::Error::duplicate_field("panelConfiguration")); + } + panel_configuration__ = map_.next_value()?; + } + } + } + Ok(UpdatePanelConfigurationResponse { + panel_configuration: panel_configuration__, + }) + } + } + deserializer.deserialize_struct("sift.panel_configurations.v1.UpdatePanelConfigurationResponse", FIELDS, GeneratedVisitor) + } +} diff --git a/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.tonic.rs new file mode 100644 index 000000000..b531b81d4 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift/panel_configurations/v1/sift.panel_configurations.v1.tonic.rs @@ -0,0 +1,581 @@ +// @generated +/// Generated client implementations. +pub mod panel_configuration_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct PanelConfigurationServiceClient { + inner: tonic::client::Grpc, + } + impl PanelConfigurationServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl PanelConfigurationServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> PanelConfigurationServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + std::marker::Send + std::marker::Sync, + { + PanelConfigurationServiceClient::new( + InterceptedService::new(inner, interceptor), + ) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn get_panel_configuration( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.panel_configurations.v1.PanelConfigurationService", + "GetPanelConfiguration", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_panel_configurations( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.panel_configurations.v1.PanelConfigurationService", + "ListPanelConfigurations", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn create_panel_configuration( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.panel_configurations.v1.PanelConfigurationService", + "CreatePanelConfiguration", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn update_panel_configuration( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.panel_configurations.v1.PanelConfigurationService", + "UpdatePanelConfiguration", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod panel_configuration_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with PanelConfigurationServiceServer. + #[async_trait] + pub trait PanelConfigurationService: std::marker::Send + std::marker::Sync + 'static { + async fn get_panel_configuration( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_panel_configurations( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn create_panel_configuration( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn update_panel_configuration( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + #[derive(Debug)] + pub struct PanelConfigurationServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl PanelConfigurationServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> + for PanelConfigurationServiceServer + where + T: PanelConfigurationService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/sift.panel_configurations.v1.PanelConfigurationService/GetPanelConfiguration" => { + #[allow(non_camel_case_types)] + struct GetPanelConfigurationSvc( + pub Arc, + ); + impl< + T: PanelConfigurationService, + > tonic::server::UnaryService + for GetPanelConfigurationSvc { + type Response = super::GetPanelConfigurationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_panel_configuration( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetPanelConfigurationSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.panel_configurations.v1.PanelConfigurationService/ListPanelConfigurations" => { + #[allow(non_camel_case_types)] + struct ListPanelConfigurationsSvc( + pub Arc, + ); + impl< + T: PanelConfigurationService, + > tonic::server::UnaryService + for ListPanelConfigurationsSvc { + type Response = super::ListPanelConfigurationsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::ListPanelConfigurationsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_panel_configurations( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListPanelConfigurationsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.panel_configurations.v1.PanelConfigurationService/CreatePanelConfiguration" => { + #[allow(non_camel_case_types)] + struct CreatePanelConfigurationSvc( + pub Arc, + ); + impl< + T: PanelConfigurationService, + > tonic::server::UnaryService + for CreatePanelConfigurationSvc { + type Response = super::CreatePanelConfigurationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::CreatePanelConfigurationRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_panel_configuration( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreatePanelConfigurationSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.panel_configurations.v1.PanelConfigurationService/UpdatePanelConfiguration" => { + #[allow(non_camel_case_types)] + struct UpdatePanelConfigurationSvc( + pub Arc, + ); + impl< + T: PanelConfigurationService, + > tonic::server::UnaryService + for UpdatePanelConfigurationSvc { + type Response = super::UpdatePanelConfigurationResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::UpdatePanelConfigurationRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::update_panel_configuration( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = UpdatePanelConfigurationSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + let mut response = http::Response::new( + tonic::body::Body::default(), + ); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }) + } + } + } + } + impl Clone for PanelConfigurationServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "sift.panel_configurations.v1.PanelConfigurationService"; + impl tonic::server::NamedService for PanelConfigurationServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +}