| // Copyright 2022 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.26.0 |
| // protoc v3.12.2 |
| // source: google/cloud/timeseriesinsights/v1/timeseries_insights.proto |
| |
| package timeseriesinsights |
| |
| import ( |
| context "context" |
| reflect "reflect" |
| sync "sync" |
| |
| _ "google.golang.org/genproto/googleapis/api/annotations" |
| status "google.golang.org/genproto/googleapis/rpc/status" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status1 "google.golang.org/grpc/status" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| durationpb "google.golang.org/protobuf/types/known/durationpb" |
| emptypb "google.golang.org/protobuf/types/known/emptypb" |
| timestamppb "google.golang.org/protobuf/types/known/timestamppb" |
| ) |
| |
| 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) |
| ) |
| |
| // DataSet state. |
| type DataSet_State int32 |
| |
| const ( |
| // Unspecified / undefined state. |
| DataSet_STATE_UNSPECIFIED DataSet_State = 0 |
| // Dataset is unknown to the system; we have never seen this dataset before |
| // or we have seen this dataset but have fully GC-ed it. |
| DataSet_UNKNOWN DataSet_State = 1 |
| // Dataset processing is pending. |
| DataSet_PENDING DataSet_State = 2 |
| // Dataset is loading. |
| DataSet_LOADING DataSet_State = 3 |
| // Dataset is loaded and can be queried. |
| DataSet_LOADED DataSet_State = 4 |
| // Dataset is unloading. |
| DataSet_UNLOADING DataSet_State = 5 |
| // Dataset is unloaded and is removed from the system. |
| DataSet_UNLOADED DataSet_State = 6 |
| // Dataset processing failed. |
| DataSet_FAILED DataSet_State = 7 |
| ) |
| |
| // Enum value maps for DataSet_State. |
| var ( |
| DataSet_State_name = map[int32]string{ |
| 0: "STATE_UNSPECIFIED", |
| 1: "UNKNOWN", |
| 2: "PENDING", |
| 3: "LOADING", |
| 4: "LOADED", |
| 5: "UNLOADING", |
| 6: "UNLOADED", |
| 7: "FAILED", |
| } |
| DataSet_State_value = map[string]int32{ |
| "STATE_UNSPECIFIED": 0, |
| "UNKNOWN": 1, |
| "PENDING": 2, |
| "LOADING": 3, |
| "LOADED": 4, |
| "UNLOADING": 5, |
| "UNLOADED": 6, |
| "FAILED": 7, |
| } |
| ) |
| |
| func (x DataSet_State) Enum() *DataSet_State { |
| p := new(DataSet_State) |
| *p = x |
| return p |
| } |
| |
| func (x DataSet_State) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (DataSet_State) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (DataSet_State) Type() protoreflect.EnumType { |
| return &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes[0] |
| } |
| |
| func (x DataSet_State) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use DataSet_State.Descriptor instead. |
| func (DataSet_State) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| // A time period of a fixed interval. |
| type ForecastParams_Period int32 |
| |
| const ( |
| // Unknown or simply not given. |
| ForecastParams_PERIOD_UNSPECIFIED ForecastParams_Period = 0 |
| // 1 hour |
| ForecastParams_HOURLY ForecastParams_Period = 5 |
| // 24 hours |
| ForecastParams_DAILY ForecastParams_Period = 1 |
| // 7 days |
| ForecastParams_WEEKLY ForecastParams_Period = 2 |
| // 30 days |
| ForecastParams_MONTHLY ForecastParams_Period = 3 |
| // 365 days |
| ForecastParams_YEARLY ForecastParams_Period = 4 |
| ) |
| |
| // Enum value maps for ForecastParams_Period. |
| var ( |
| ForecastParams_Period_name = map[int32]string{ |
| 0: "PERIOD_UNSPECIFIED", |
| 5: "HOURLY", |
| 1: "DAILY", |
| 2: "WEEKLY", |
| 3: "MONTHLY", |
| 4: "YEARLY", |
| } |
| ForecastParams_Period_value = map[string]int32{ |
| "PERIOD_UNSPECIFIED": 0, |
| "HOURLY": 5, |
| "DAILY": 1, |
| "WEEKLY": 2, |
| "MONTHLY": 3, |
| "YEARLY": 4, |
| } |
| ) |
| |
| func (x ForecastParams_Period) Enum() *ForecastParams_Period { |
| p := new(ForecastParams_Period) |
| *p = x |
| return p |
| } |
| |
| func (x ForecastParams_Period) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (ForecastParams_Period) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (ForecastParams_Period) Type() protoreflect.EnumType { |
| return &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes[1] |
| } |
| |
| func (x ForecastParams_Period) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use ForecastParams_Period.Descriptor instead. |
| func (ForecastParams_Period) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{12, 0} |
| } |
| |
| // Methods by which we can aggregate multiple events by a given |
| // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric]. |
| type TimeseriesParams_AggregationMethod int32 |
| |
| const ( |
| // Unspecified. |
| TimeseriesParams_AGGREGATION_METHOD_UNSPECIFIED TimeseriesParams_AggregationMethod = 0 |
| // Aggregate multiple events by summing up the values found in the |
| // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] dimension. |
| TimeseriesParams_SUM TimeseriesParams_AggregationMethod = 1 |
| // Aggregate multiple events by averaging out the values found in the |
| // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] dimension. |
| TimeseriesParams_AVERAGE TimeseriesParams_AggregationMethod = 2 |
| ) |
| |
| // Enum value maps for TimeseriesParams_AggregationMethod. |
| var ( |
| TimeseriesParams_AggregationMethod_name = map[int32]string{ |
| 0: "AGGREGATION_METHOD_UNSPECIFIED", |
| 1: "SUM", |
| 2: "AVERAGE", |
| } |
| TimeseriesParams_AggregationMethod_value = map[string]int32{ |
| "AGGREGATION_METHOD_UNSPECIFIED": 0, |
| "SUM": 1, |
| "AVERAGE": 2, |
| } |
| ) |
| |
| func (x TimeseriesParams_AggregationMethod) Enum() *TimeseriesParams_AggregationMethod { |
| p := new(TimeseriesParams_AggregationMethod) |
| *p = x |
| return p |
| } |
| |
| func (x TimeseriesParams_AggregationMethod) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (TimeseriesParams_AggregationMethod) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (TimeseriesParams_AggregationMethod) Type() protoreflect.EnumType { |
| return &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes[2] |
| } |
| |
| func (x TimeseriesParams_AggregationMethod) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use TimeseriesParams_AggregationMethod.Descriptor instead. |
| func (TimeseriesParams_AggregationMethod) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{17, 0} |
| } |
| |
| // Mapping of BigQuery columns to timestamp, group_id and dimensions. |
| type BigqueryMapping struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The column which should be used as the event timestamps. If not specified |
| // 'Timestamp' is used by default. The column may have TIMESTAMP or INT64 |
| // type (the latter is interpreted as microseconds since the Unix epoch). |
| TimestampColumn string `protobuf:"bytes,1,opt,name=timestamp_column,json=timestampColumn,proto3" json:"timestamp_column,omitempty"` |
| // The column which should be used as the group ID (grouping events into |
| // sessions). If not specified 'GroupId' is used by default, if the input |
| // table does not have such a column, random unique group IDs are |
| // generated automatically (different group ID per input row). |
| GroupIdColumn string `protobuf:"bytes,2,opt,name=group_id_column,json=groupIdColumn,proto3" json:"group_id_column,omitempty"` |
| // The list of columns that should be translated to dimensions. If empty, |
| // all columns are translated to dimensions. The timestamp and group_id |
| // columns should not be listed here again. Columns are expected to have |
| // primitive types (STRING, INT64, FLOAT64 or NUMERIC). |
| DimensionColumn []string `protobuf:"bytes,3,rep,name=dimension_column,json=dimensionColumn,proto3" json:"dimension_column,omitempty"` |
| } |
| |
| func (x *BigqueryMapping) Reset() { |
| *x = BigqueryMapping{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BigqueryMapping) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BigqueryMapping) ProtoMessage() {} |
| |
| func (x *BigqueryMapping) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 BigqueryMapping.ProtoReflect.Descriptor instead. |
| func (*BigqueryMapping) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *BigqueryMapping) GetTimestampColumn() string { |
| if x != nil { |
| return x.TimestampColumn |
| } |
| return "" |
| } |
| |
| func (x *BigqueryMapping) GetGroupIdColumn() string { |
| if x != nil { |
| return x.GroupIdColumn |
| } |
| return "" |
| } |
| |
| func (x *BigqueryMapping) GetDimensionColumn() []string { |
| if x != nil { |
| return x.DimensionColumn |
| } |
| return nil |
| } |
| |
| // A data source consists of multiple [Event][google.cloud.timeseriesinsights.v1.Event] objects stored on |
| // Cloud Storage. Each Event should be in JSON format, with one Event |
| // per line, also known as JSON Lines format. |
| type DataSource struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Data source URI. |
| // |
| // 1) Google Cloud Storage files (JSON) are defined in the following form. |
| // `gs://bucket_name/object_name`. For more information on Cloud Storage URIs, |
| // please see https://cloud.google.com/storage/docs/reference-uris. |
| Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` |
| // For BigQuery inputs defines the columns that should be used for dimensions |
| // (including time and group ID). |
| BqMapping *BigqueryMapping `protobuf:"bytes,2,opt,name=bq_mapping,json=bqMapping,proto3" json:"bq_mapping,omitempty"` |
| } |
| |
| func (x *DataSource) Reset() { |
| *x = DataSource{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DataSource) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DataSource) ProtoMessage() {} |
| |
| func (x *DataSource) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 DataSource.ProtoReflect.Descriptor instead. |
| func (*DataSource) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *DataSource) GetUri() string { |
| if x != nil { |
| return x.Uri |
| } |
| return "" |
| } |
| |
| func (x *DataSource) GetBqMapping() *BigqueryMapping { |
| if x != nil { |
| return x.BqMapping |
| } |
| return nil |
| } |
| |
| // A collection of data sources sent for processing. |
| type DataSet struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The dataset name, which will be used for querying, status and unload |
| // requests. This must be unique within a project. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // [Data dimension names][google.cloud.timeseriesinsights.v1.EventDimension.name] allowed for this `DataSet`. |
| // |
| // If left empty, all dimension names are included. This field works as a |
| // filter to avoid regenerating the data. |
| DataNames []string `protobuf:"bytes,2,rep,name=data_names,json=dataNames,proto3" json:"data_names,omitempty"` |
| // Input data. |
| DataSources []*DataSource `protobuf:"bytes,3,rep,name=data_sources,json=dataSources,proto3" json:"data_sources,omitempty"` |
| // Dataset state in the system. |
| State DataSet_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.timeseriesinsights.v1.DataSet_State" json:"state,omitempty"` |
| // Dataset processing status. |
| Status *status.Status `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` |
| // Periodically we discard dataset [Event][google.cloud.timeseriesinsights.v1.Event] objects that have |
| // timestamps older than 'ttl'. Omitting this field or a zero value means no |
| // events are discarded. |
| Ttl *durationpb.Duration `protobuf:"bytes,6,opt,name=ttl,proto3" json:"ttl,omitempty"` |
| } |
| |
| func (x *DataSet) Reset() { |
| *x = DataSet{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DataSet) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DataSet) ProtoMessage() {} |
| |
| func (x *DataSet) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 DataSet.ProtoReflect.Descriptor instead. |
| func (*DataSet) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *DataSet) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *DataSet) GetDataNames() []string { |
| if x != nil { |
| return x.DataNames |
| } |
| return nil |
| } |
| |
| func (x *DataSet) GetDataSources() []*DataSource { |
| if x != nil { |
| return x.DataSources |
| } |
| return nil |
| } |
| |
| func (x *DataSet) GetState() DataSet_State { |
| if x != nil { |
| return x.State |
| } |
| return DataSet_STATE_UNSPECIFIED |
| } |
| |
| func (x *DataSet) GetStatus() *status.Status { |
| if x != nil { |
| return x.Status |
| } |
| return nil |
| } |
| |
| func (x *DataSet) GetTtl() *durationpb.Duration { |
| if x != nil { |
| return x.Ttl |
| } |
| return nil |
| } |
| |
| // Represents an event dimension. |
| type EventDimension struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Dimension name. |
| // |
| // **NOTE**: `EventDimension` names must be composed of alphanumeric |
| // characters only, and are case insensitive. Unicode characters are *not* |
| // supported. The underscore '_' is also allowed. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Dimension value. |
| // |
| // **NOTE**: All entries of the dimension `name` must have the same `value` |
| // type. |
| // |
| // Types that are assignable to Value: |
| // |
| // *EventDimension_StringVal |
| // *EventDimension_LongVal |
| // *EventDimension_BoolVal |
| // *EventDimension_DoubleVal |
| Value isEventDimension_Value `protobuf_oneof:"value"` |
| } |
| |
| func (x *EventDimension) Reset() { |
| *x = EventDimension{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EventDimension) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EventDimension) ProtoMessage() {} |
| |
| func (x *EventDimension) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 EventDimension.ProtoReflect.Descriptor instead. |
| func (*EventDimension) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *EventDimension) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (m *EventDimension) GetValue() isEventDimension_Value { |
| if m != nil { |
| return m.Value |
| } |
| return nil |
| } |
| |
| func (x *EventDimension) GetStringVal() string { |
| if x, ok := x.GetValue().(*EventDimension_StringVal); ok { |
| return x.StringVal |
| } |
| return "" |
| } |
| |
| func (x *EventDimension) GetLongVal() int64 { |
| if x, ok := x.GetValue().(*EventDimension_LongVal); ok { |
| return x.LongVal |
| } |
| return 0 |
| } |
| |
| func (x *EventDimension) GetBoolVal() bool { |
| if x, ok := x.GetValue().(*EventDimension_BoolVal); ok { |
| return x.BoolVal |
| } |
| return false |
| } |
| |
| func (x *EventDimension) GetDoubleVal() float64 { |
| if x, ok := x.GetValue().(*EventDimension_DoubleVal); ok { |
| return x.DoubleVal |
| } |
| return 0 |
| } |
| |
| type isEventDimension_Value interface { |
| isEventDimension_Value() |
| } |
| |
| type EventDimension_StringVal struct { |
| // String representation. |
| // |
| // **NOTE**: String values are case insensitive. Unicode characters are |
| // supported. |
| StringVal string `protobuf:"bytes,2,opt,name=string_val,json=stringVal,proto3,oneof"` |
| } |
| |
| type EventDimension_LongVal struct { |
| // Long representation. |
| LongVal int64 `protobuf:"varint,3,opt,name=long_val,json=longVal,proto3,oneof"` |
| } |
| |
| type EventDimension_BoolVal struct { |
| // Bool representation. |
| BoolVal bool `protobuf:"varint,4,opt,name=bool_val,json=boolVal,proto3,oneof"` |
| } |
| |
| type EventDimension_DoubleVal struct { |
| // Double representation. |
| DoubleVal float64 `protobuf:"fixed64,5,opt,name=double_val,json=doubleVal,proto3,oneof"` |
| } |
| |
| func (*EventDimension_StringVal) isEventDimension_Value() {} |
| |
| func (*EventDimension_LongVal) isEventDimension_Value() {} |
| |
| func (*EventDimension_BoolVal) isEventDimension_Value() {} |
| |
| func (*EventDimension_DoubleVal) isEventDimension_Value() {} |
| |
| // Represents an entry in a data source. |
| // |
| // Each Event has: |
| // |
| // - A timestamp at which the event occurs. |
| // - One or multiple dimensions. |
| // - Optionally, a group ID that allows clients to group logically related |
| // events (for example, all events representing payments transactions done by |
| // a user in a day have the same group ID). If a group ID is not provided, an |
| // internal one will be generated based on the content and `eventTime`. |
| // |
| // **NOTE**: |
| // |
| // - Internally, we discretize time in equal-sized chunks and we assume an |
| // event has a 0 |
| // [TimeseriesPoint.value][google.cloud.timeseriesinsights.v1.TimeseriesPoint.value] |
| // in a chunk that does not contain any occurrences of an event in the input. |
| // - The number of Events with the same group ID should be limited. |
| // - Group ID *cannot* be queried. |
| // - Group ID does *not* correspond to a user ID or the like. If a user ID is of |
| // interest to be queried, use a user ID `dimension` instead. |
| type Event struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Event dimensions. |
| Dimensions []*EventDimension `protobuf:"bytes,1,rep,name=dimensions,proto3" json:"dimensions,omitempty"` |
| // Event group ID. |
| // |
| // **NOTE**: JSON encoding should use a string to hold a 64-bit integer value, |
| // because a native JSON number holds only 53 binary bits for an integer. |
| GroupId int64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` |
| // Event timestamp. |
| EventTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` |
| } |
| |
| func (x *Event) Reset() { |
| *x = Event{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Event) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Event) ProtoMessage() {} |
| |
| func (x *Event) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 Event.ProtoReflect.Descriptor instead. |
| func (*Event) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *Event) GetDimensions() []*EventDimension { |
| if x != nil { |
| return x.Dimensions |
| } |
| return nil |
| } |
| |
| func (x *Event) GetGroupId() int64 { |
| if x != nil { |
| return x.GroupId |
| } |
| return 0 |
| } |
| |
| func (x *Event) GetEventTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EventTime |
| } |
| return nil |
| } |
| |
| // Appends events to an existing DataSet. |
| type AppendEventsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Events to be appended. |
| // |
| // Note: |
| // |
| // 0. The [DataSet][google.cloud.timeseriesinsights.v1.DataSet] must be shown in a `LOADED` state |
| // in the results of `list` method; otherwise, all events from |
| // the append request will be dropped, and a `NOT_FOUND` status will be |
| // returned. |
| // 0. All events in a single request must have the same |
| // [groupId][google.cloud.timeseriesinsights.v1.Event.group_id] if set; otherwise, an |
| // `INVALID_ARGUMENT` status will be returned. |
| // 0. If [groupId][google.cloud.timeseriesinsights.v1.Event.group_id] is not set (or 0), there |
| // should be only 1 event; otherwise, an `INVALID_ARGUMENT` status will be |
| // returned. |
| // 0. The events must be newer than the current time minus |
| // [DataSet TTL][google.cloud.timeseriesinsights.v1.DataSet.ttl] or they will be dropped. |
| Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` |
| // Required. The DataSet to which we want to append to in the format of |
| // "projects/{project}/datasets/{dataset}" |
| Dataset string `protobuf:"bytes,2,opt,name=dataset,proto3" json:"dataset,omitempty"` |
| } |
| |
| func (x *AppendEventsRequest) Reset() { |
| *x = AppendEventsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AppendEventsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AppendEventsRequest) ProtoMessage() {} |
| |
| func (x *AppendEventsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 AppendEventsRequest.ProtoReflect.Descriptor instead. |
| func (*AppendEventsRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *AppendEventsRequest) GetEvents() []*Event { |
| if x != nil { |
| return x.Events |
| } |
| return nil |
| } |
| |
| func (x *AppendEventsRequest) GetDataset() string { |
| if x != nil { |
| return x.Dataset |
| } |
| return "" |
| } |
| |
| // Response for an AppendEvents RPC. |
| type AppendEventsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Dropped events; empty if all events are successfully added. |
| DroppedEvents []*Event `protobuf:"bytes,1,rep,name=dropped_events,json=droppedEvents,proto3" json:"dropped_events,omitempty"` |
| } |
| |
| func (x *AppendEventsResponse) Reset() { |
| *x = AppendEventsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AppendEventsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AppendEventsResponse) ProtoMessage() {} |
| |
| func (x *AppendEventsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 AppendEventsResponse.ProtoReflect.Descriptor instead. |
| func (*AppendEventsResponse) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *AppendEventsResponse) GetDroppedEvents() []*Event { |
| if x != nil { |
| return x.DroppedEvents |
| } |
| return nil |
| } |
| |
| // Create a DataSet request. |
| type CreateDataSetRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Client project name which will own this DataSet in the format of |
| // 'projects/{project}'. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Required. Dataset to be loaded. |
| Dataset *DataSet `protobuf:"bytes,2,opt,name=dataset,proto3" json:"dataset,omitempty"` |
| } |
| |
| func (x *CreateDataSetRequest) Reset() { |
| *x = CreateDataSetRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CreateDataSetRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CreateDataSetRequest) ProtoMessage() {} |
| |
| func (x *CreateDataSetRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 CreateDataSetRequest.ProtoReflect.Descriptor instead. |
| func (*CreateDataSetRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *CreateDataSetRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *CreateDataSetRequest) GetDataset() *DataSet { |
| if x != nil { |
| return x.Dataset |
| } |
| return nil |
| } |
| |
| // Unload DataSet request from the serving system. |
| type DeleteDataSetRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Dataset name in the format of "projects/{project}/datasets/{dataset}" |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| } |
| |
| func (x *DeleteDataSetRequest) Reset() { |
| *x = DeleteDataSetRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DeleteDataSetRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DeleteDataSetRequest) ProtoMessage() {} |
| |
| func (x *DeleteDataSetRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 DeleteDataSetRequest.ProtoReflect.Descriptor instead. |
| func (*DeleteDataSetRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *DeleteDataSetRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| // List the DataSets created by the current project. |
| type ListDataSetsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Project owning the DataSet in the format of "projects/{project}". |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Number of results to return in the list. |
| PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // Token to provide to skip to a particular spot in the list. |
| PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| } |
| |
| func (x *ListDataSetsRequest) Reset() { |
| *x = ListDataSetsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListDataSetsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListDataSetsRequest) ProtoMessage() {} |
| |
| func (x *ListDataSetsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_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 ListDataSetsRequest.ProtoReflect.Descriptor instead. |
| func (*ListDataSetsRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *ListDataSetsRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *ListDataSetsRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *ListDataSetsRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| // Created DataSets list response. |
| type ListDataSetsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of created DataSets. |
| Datasets []*DataSet `protobuf:"bytes,1,rep,name=datasets,proto3" json:"datasets,omitempty"` |
| // Token to receive the next page of results. |
| NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *ListDataSetsResponse) Reset() { |
| *x = ListDataSetsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListDataSetsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListDataSetsResponse) ProtoMessage() {} |
| |
| func (x *ListDataSetsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[10] |
| 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 ListDataSetsResponse.ProtoReflect.Descriptor instead. |
| func (*ListDataSetsResponse) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (x *ListDataSetsResponse) GetDatasets() []*DataSet { |
| if x != nil { |
| return x.Datasets |
| } |
| return nil |
| } |
| |
| func (x *ListDataSetsResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| // A categorical dimension fixed to a certain value. |
| type PinnedDimension struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The name of the dimension for which we are fixing its value. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Dimension value. |
| // |
| // **NOTE**: The `value` type must match that in the data with the same |
| // `dimension` as name. |
| // |
| // Types that are assignable to Value: |
| // |
| // *PinnedDimension_StringVal |
| // *PinnedDimension_BoolVal |
| Value isPinnedDimension_Value `protobuf_oneof:"value"` |
| } |
| |
| func (x *PinnedDimension) Reset() { |
| *x = PinnedDimension{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PinnedDimension) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PinnedDimension) ProtoMessage() {} |
| |
| func (x *PinnedDimension) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[11] |
| 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 PinnedDimension.ProtoReflect.Descriptor instead. |
| func (*PinnedDimension) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *PinnedDimension) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (m *PinnedDimension) GetValue() isPinnedDimension_Value { |
| if m != nil { |
| return m.Value |
| } |
| return nil |
| } |
| |
| func (x *PinnedDimension) GetStringVal() string { |
| if x, ok := x.GetValue().(*PinnedDimension_StringVal); ok { |
| return x.StringVal |
| } |
| return "" |
| } |
| |
| func (x *PinnedDimension) GetBoolVal() bool { |
| if x, ok := x.GetValue().(*PinnedDimension_BoolVal); ok { |
| return x.BoolVal |
| } |
| return false |
| } |
| |
| type isPinnedDimension_Value interface { |
| isPinnedDimension_Value() |
| } |
| |
| type PinnedDimension_StringVal struct { |
| // A string value. This can be used for [dimensions][google.cloud.timeseriesinsights.v1.EventDimension], which |
| // have their value field set to [string_val][google.cloud.timeseriesinsights.v1.EventDimension.string_val]. |
| StringVal string `protobuf:"bytes,2,opt,name=string_val,json=stringVal,proto3,oneof"` |
| } |
| |
| type PinnedDimension_BoolVal struct { |
| // A bool value. This can be used for [dimensions][google.cloud.timeseriesinsights.v1.EventDimension], which |
| // have their value field set to [bool_val][google.cloud.timeseriesinsights.v1.EventDimension.bool_val]. |
| BoolVal bool `protobuf:"varint,3,opt,name=bool_val,json=boolVal,proto3,oneof"` |
| } |
| |
| func (*PinnedDimension_StringVal) isPinnedDimension_Value() {} |
| |
| func (*PinnedDimension_BoolVal) isPinnedDimension_Value() {} |
| |
| // Parameters that control the sensitivity and other options for the time series |
| // forecast. |
| type ForecastParams struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Optional. Penalize variations between the actual and forecasted values smaller than |
| // this. For more information about how this parameter affects the score, see |
| // the [anomalyScore](EvaluatedSlice.anomaly_score) formula. |
| // |
| // Intuitively, anomaly scores summarize how statistically significant the |
| // change between the actual and forecasted value is compared with what we |
| // expect the change to be (see |
| // [expectedDeviation](EvaluatedSlice.expected_deviation)). However, in |
| // practice, depending on the application, changes smaller than certain |
| // absolute values, while statistically significant, may not be important. |
| // |
| // This parameter allows us to penalize such low absolute value changes. |
| // |
| // Must be in the (0.0, inf) range. |
| // |
| // If unspecified, it defaults to 0.000001. |
| NoiseThreshold *float64 `protobuf:"fixed64,12,opt,name=noise_threshold,json=noiseThreshold,proto3,oneof" json:"noise_threshold,omitempty"` |
| // Optional. Specifying any known seasonality/periodicity in the time series |
| // for the slices we will analyze can improve the quality of the results. |
| // |
| // If unsure, simply leave it unspecified by not setting a value for this |
| // field. |
| // |
| // If your time series has multiple seasonal patterns, then set it to the most |
| // granular one (e.g. if it has daily and weekly patterns, set this to DAILY). |
| SeasonalityHint ForecastParams_Period `protobuf:"varint,10,opt,name=seasonality_hint,json=seasonalityHint,proto3,enum=google.cloud.timeseriesinsights.v1.ForecastParams_Period" json:"seasonality_hint,omitempty"` |
| // Optional. The length of the returned [forecasted |
| // timeseries][EvaluatedSlice.forecast]. |
| // |
| // This duration is currently capped at 100 x |
| // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity]. |
| // |
| // Example: If the detection point is set to "2020-12-27T00:00:00Z", the |
| // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity] to "3600s" and the |
| // horizon_duration to "10800s", then we will generate 3 time |
| // series points (from "2020-12-27T01:00:00Z" to "2020-12-27T04:00:00Z"), for |
| // which we will return their forecasted values. |
| // |
| // Note: The horizon time is only used for forecasting not for anormaly |
| // detection. To detect anomalies for multiple points of time, |
| // simply send multiple queries with those as |
| // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time]. |
| HorizonDuration *durationpb.Duration `protobuf:"bytes,13,opt,name=horizon_duration,json=horizonDuration,proto3" json:"horizon_duration,omitempty"` |
| } |
| |
| func (x *ForecastParams) Reset() { |
| *x = ForecastParams{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ForecastParams) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ForecastParams) ProtoMessage() {} |
| |
| func (x *ForecastParams) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[12] |
| 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 ForecastParams.ProtoReflect.Descriptor instead. |
| func (*ForecastParams) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *ForecastParams) GetNoiseThreshold() float64 { |
| if x != nil && x.NoiseThreshold != nil { |
| return *x.NoiseThreshold |
| } |
| return 0 |
| } |
| |
| func (x *ForecastParams) GetSeasonalityHint() ForecastParams_Period { |
| if x != nil { |
| return x.SeasonalityHint |
| } |
| return ForecastParams_PERIOD_UNSPECIFIED |
| } |
| |
| func (x *ForecastParams) GetHorizonDuration() *durationpb.Duration { |
| if x != nil { |
| return x.HorizonDuration |
| } |
| return nil |
| } |
| |
| // A point in a time series. |
| type TimeseriesPoint struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The timestamp of this point. |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| // The value for this point. |
| // |
| // It is computed by aggregating all events in the associated slice that are |
| // in the `[time, time + granularity]` range (see |
| // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity]) using the specified |
| // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric]. |
| Value *float64 `protobuf:"fixed64,2,opt,name=value,proto3,oneof" json:"value,omitempty"` |
| } |
| |
| func (x *TimeseriesPoint) Reset() { |
| *x = TimeseriesPoint{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TimeseriesPoint) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TimeseriesPoint) ProtoMessage() {} |
| |
| func (x *TimeseriesPoint) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[13] |
| 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 TimeseriesPoint.ProtoReflect.Descriptor instead. |
| func (*TimeseriesPoint) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *TimeseriesPoint) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| func (x *TimeseriesPoint) GetValue() float64 { |
| if x != nil && x.Value != nil { |
| return *x.Value |
| } |
| return 0 |
| } |
| |
| // A time series. |
| type Timeseries struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The points in this time series, ordered by their timestamp. |
| Point []*TimeseriesPoint `protobuf:"bytes,1,rep,name=point,proto3" json:"point,omitempty"` |
| } |
| |
| func (x *Timeseries) Reset() { |
| *x = Timeseries{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Timeseries) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Timeseries) ProtoMessage() {} |
| |
| func (x *Timeseries) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[14] |
| 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 Timeseries.ProtoReflect.Descriptor instead. |
| func (*Timeseries) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{14} |
| } |
| |
| func (x *Timeseries) GetPoint() []*TimeseriesPoint { |
| if x != nil { |
| return x.Point |
| } |
| return nil |
| } |
| |
| // Forecast result for a given slice. |
| type EvaluatedSlice struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Values for all categorical dimensions that uniquely identify this slice. |
| Dimensions []*PinnedDimension `protobuf:"bytes,1,rep,name=dimensions,proto3" json:"dimensions,omitempty"` |
| // The actual value at the detection time (see |
| // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time]). |
| // |
| // **NOTE**: This value can be an estimate, so it should not be used as a |
| // source of truth. |
| DetectionPointActual *float64 `protobuf:"fixed64,11,opt,name=detection_point_actual,json=detectionPointActual,proto3,oneof" json:"detection_point_actual,omitempty"` |
| // The expected value at the detection time, which is obtained by forecasting |
| // on the historical time series. |
| DetectionPointForecast *float64 `protobuf:"fixed64,12,opt,name=detection_point_forecast,json=detectionPointForecast,proto3,oneof" json:"detection_point_forecast,omitempty"` |
| // How much our forecast model expects the detection point actual will |
| // deviate from its forecasted value based on how well it fit the input time |
| // series. |
| // |
| // In general, we expect the `detectionPointActual` to |
| // be in the `[detectionPointForecast - expectedDeviation, |
| // detectionPointForecast + expectedDeviation]` range. The more the actual |
| // value is outside this range, the more statistically significant the |
| // anomaly is. |
| // |
| // The expected deviation is always positive. |
| ExpectedDeviation *float64 `protobuf:"fixed64,16,opt,name=expected_deviation,json=expectedDeviation,proto3,oneof" json:"expected_deviation,omitempty"` |
| // Summarizes how significant the change between the actual and forecasted |
| // detection points are compared with the historical patterns observed on the |
| // [history][google.cloud.timeseriesinsights.v1.EvaluatedSlice.history] time series. |
| // |
| // Defined as *|a - f| / (e + nt)*, where: |
| // |
| // - *a* is the [detectionPointActual][google.cloud.timeseriesinsights.v1.EvaluatedSlice.detection_point_actual]. |
| // - *f* is the [detectionPointForecast][google.cloud.timeseriesinsights.v1.EvaluatedSlice.detection_point_forecast]. |
| // - *e* is the [expectedDeviation][google.cloud.timeseriesinsights.v1.EvaluatedSlice.expected_deviation]. |
| // - *nt` is the [noiseThreshold][google.cloud.timeseriesinsights.v1.ForecastParams.noise_threshold]. |
| // |
| // Anomaly scores between different requests and datasets are comparable. As |
| // a guideline, the risk of a slice being an anomaly based on the anomaly |
| // score is: |
| // |
| // - **Very High** if `anomalyScore` > 5. |
| // - **High** if the `anomalyScore` is in the [2, 5] range. |
| // - **Medium** if the `anomalyScore` is in the [1, 2) range. |
| // - **Low** if the `anomalyScore` is < 1. |
| // |
| // If there were issues evaluating this slice, then the anomaly score will be |
| // set to -1.0 and the [status][google.cloud.timeseriesinsights.v1.EvaluatedSlice.status] field will contain details on what |
| // went wrong. |
| AnomalyScore *float64 `protobuf:"fixed64,17,opt,name=anomaly_score,json=anomalyScore,proto3,oneof" json:"anomaly_score,omitempty"` |
| // The actual values in the `[` |
| // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] `-` |
| // [forecastHistory][google.cloud.timeseriesinsights.v1.TimeseriesParams.forecast_history]`,` |
| // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] `]` time |
| // range. |
| // |
| // **NOTE**: This field is only populated if |
| // [returnTimeseries][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.return_timeseries] is true. |
| History *Timeseries `protobuf:"bytes,5,opt,name=history,proto3" json:"history,omitempty"` |
| // The forecasted values in the `[` |
| // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] `+` |
| // [granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity]`,` |
| // [forecastParams.horizonTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.forecast_params] `]` time |
| // range. |
| // |
| // **NOTE**: This field is only populated if |
| // [returnTimeseries][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.return_timeseries] is true. |
| Forecast *Timeseries `protobuf:"bytes,10,opt,name=forecast,proto3" json:"forecast,omitempty"` |
| // Evaluation status. Contains an error message if the `anomalyScore` is < 0. |
| // |
| // Possible error messages: |
| // |
| // - **"Time series too sparse"**: The returned time series for this slice did |
| // not contain enough data points (we require a minimum of 10). |
| // - **"Not enough recent time series points"**: The time series contains the |
| // minimum of 10 points, but there are not enough close in time to the |
| // detection point. |
| // - **"Missing detection point data"**: There were not events to be |
| // aggregated within the `[detectionTime, detectionTime + granularity]` time |
| // interval, so we don't have an actual value with which we can compare our |
| // prediction. |
| // - **"Data retrieval error"**: We failed to retrieve the time series data |
| // for this slice and could not evaluate it successfully. Should be a |
| // transient error. |
| // - **"Internal server error"**: Internal unexpected error. |
| Status *status.Status `protobuf:"bytes,18,opt,name=status,proto3" json:"status,omitempty"` |
| } |
| |
| func (x *EvaluatedSlice) Reset() { |
| *x = EvaluatedSlice{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EvaluatedSlice) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EvaluatedSlice) ProtoMessage() {} |
| |
| func (x *EvaluatedSlice) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[15] |
| 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 EvaluatedSlice.ProtoReflect.Descriptor instead. |
| func (*EvaluatedSlice) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{15} |
| } |
| |
| func (x *EvaluatedSlice) GetDimensions() []*PinnedDimension { |
| if x != nil { |
| return x.Dimensions |
| } |
| return nil |
| } |
| |
| func (x *EvaluatedSlice) GetDetectionPointActual() float64 { |
| if x != nil && x.DetectionPointActual != nil { |
| return *x.DetectionPointActual |
| } |
| return 0 |
| } |
| |
| func (x *EvaluatedSlice) GetDetectionPointForecast() float64 { |
| if x != nil && x.DetectionPointForecast != nil { |
| return *x.DetectionPointForecast |
| } |
| return 0 |
| } |
| |
| func (x *EvaluatedSlice) GetExpectedDeviation() float64 { |
| if x != nil && x.ExpectedDeviation != nil { |
| return *x.ExpectedDeviation |
| } |
| return 0 |
| } |
| |
| func (x *EvaluatedSlice) GetAnomalyScore() float64 { |
| if x != nil && x.AnomalyScore != nil { |
| return *x.AnomalyScore |
| } |
| return 0 |
| } |
| |
| func (x *EvaluatedSlice) GetHistory() *Timeseries { |
| if x != nil { |
| return x.History |
| } |
| return nil |
| } |
| |
| func (x *EvaluatedSlice) GetForecast() *Timeseries { |
| if x != nil { |
| return x.Forecast |
| } |
| return nil |
| } |
| |
| func (x *EvaluatedSlice) GetStatus() *status.Status { |
| if x != nil { |
| return x.Status |
| } |
| return nil |
| } |
| |
| // Parameters that control how we slice the dataset and, optionally, filter |
| // slices that have some specific values on some dimensions (pinned dimensions). |
| type SlicingParams struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Dimensions over which we will group the events in slices. The names |
| // specified here come from the |
| // [EventDimension.name][google.cloud.timeseriesinsights.v1.EventDimension.name] field. At least |
| // one dimension name must be specified. All dimension names that do not exist |
| // in the queried `DataSet` will be ignored. |
| // |
| // Currently only dimensions that hold string values can be specified here. |
| DimensionNames []string `protobuf:"bytes,1,rep,name=dimension_names,json=dimensionNames,proto3" json:"dimension_names,omitempty"` |
| // Optional. We will only analyze slices for which |
| // [EvaluatedSlice.dimensions][google.cloud.timeseriesinsights.v1.EvaluatedSlice.dimensions] contain all of the |
| // following pinned dimensions. A query with a pinned dimension `{ name: "d3" |
| // stringVal: "v3" }` will only analyze events which contain the dimension `{ |
| // name: "d3" stringVal: "v3" }`. |
| // The [pinnedDimensions][google.cloud.timeseriesinsights.v1.SlicingParams.pinned_dimensions] and |
| // [dimensionNames][google.cloud.timeseriesinsights.v1.SlicingParams.dimension_names] fields can **not** |
| // share the same dimension names. |
| // |
| // Example a valid specification: |
| // |
| // ```json |
| // |
| // { |
| // dimensionNames: ["d1", "d2"], |
| // pinnedDimensions: [ |
| // { name: "d3" stringVal: "v3" }, |
| // { name: "d4" stringVal: "v4" } |
| // ] |
| // } |
| // |
| // ``` |
| // |
| // In the previous example we will slice the dataset by dimensions "d1", |
| // "d2", "d3" and "d4", but we will only analyze slices for which "d3=v3" and |
| // "d4=v4". |
| // |
| // The following example is **invalid** as "d2" is present in both |
| // dimensionNames and pinnedDimensions: |
| // |
| // ```json |
| // |
| // { |
| // dimensionNames: ["d1", "d2"], |
| // pinnedDimensions: [ |
| // { name: "d2" stringVal: "v2" }, |
| // { name: "d4" stringVal: "v4" } |
| // ] |
| // } |
| // |
| // ``` |
| PinnedDimensions []*PinnedDimension `protobuf:"bytes,2,rep,name=pinned_dimensions,json=pinnedDimensions,proto3" json:"pinned_dimensions,omitempty"` |
| } |
| |
| func (x *SlicingParams) Reset() { |
| *x = SlicingParams{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SlicingParams) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SlicingParams) ProtoMessage() {} |
| |
| func (x *SlicingParams) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[16] |
| 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 SlicingParams.ProtoReflect.Descriptor instead. |
| func (*SlicingParams) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{16} |
| } |
| |
| func (x *SlicingParams) GetDimensionNames() []string { |
| if x != nil { |
| return x.DimensionNames |
| } |
| return nil |
| } |
| |
| func (x *SlicingParams) GetPinnedDimensions() []*PinnedDimension { |
| if x != nil { |
| return x.PinnedDimensions |
| } |
| return nil |
| } |
| |
| // Parameters that control how we construct the time series for each slice. |
| type TimeseriesParams struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. How long should we go in the past when fetching the timeline used for |
| // forecasting each slice. |
| // |
| // This is used in combination with the |
| // [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] parameter. |
| // The time series we construct will have the following time range: |
| // `[detectionTime - forecastHistory, detectionTime + granularity]`. |
| // |
| // The forecast history might be rounded up, so that a multiple of |
| // `granularity` is used to process the query. |
| // |
| // Note: If there are not enough events in the |
| // `[detectionTime - forecastHistory, detectionTime + granularity]` time |
| // interval, the slice evaluation can fail. For more information, see |
| // [EvaluatedSlice.status][google.cloud.timeseriesinsights.v1.EvaluatedSlice.status]. |
| ForecastHistory *durationpb.Duration `protobuf:"bytes,1,opt,name=forecast_history,json=forecastHistory,proto3" json:"forecast_history,omitempty"` |
| // Required. The time granularity of the time series (on the x-axis). Each time series |
| // point starting at time T will aggregate all events for a particular slice |
| // in *[T, T + granularity)* time windows. |
| // |
| // Note: The aggregation is decided based on the |
| // [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] parameter. |
| // |
| // This granularity defines the query-time aggregation windows and is not |
| // necessarily related to any event time granularity in the raw data (though |
| // we do recommend that the query-time granularity is not finer than the |
| // ingestion-time one). |
| // |
| // Currently, the minimal supported granularity is 10 seconds. |
| Granularity *durationpb.Duration `protobuf:"bytes,2,opt,name=granularity,proto3" json:"granularity,omitempty"` |
| // Optional. Denotes the [name][google.cloud.timeseriesinsights.v1.EventDimension.name] of a numerical |
| // dimension that will have its values aggregated to compute the y-axis of the |
| // time series. |
| // |
| // The aggregation method must also be specified by setting the |
| // [metricAggregationMethod][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric_aggregation_method] |
| // field. |
| // |
| // Note: Currently, if the aggregation method is unspecified, we will |
| // default to SUM for backward compatibility reasons, but new implementations |
| // should set the |
| // [metricAggregationMethod][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric_aggregation_method] |
| // explicitly. |
| // |
| // If the metric is unspecified, we will use the number of events that each |
| // time series point contains as the point value. |
| // |
| // Example: Let's assume we have the following three events in our dataset: |
| // ```json |
| // |
| // { |
| // eventTime: "2020-12-27T00:00:00Z", |
| // dimensions: [ |
| // { name: "d1" stringVal: "v1" }, |
| // { name: "d2" stringVal: "v2" } |
| // { name: "m1" longVal: 100 } |
| // { name: "m2" longVal: 11 } |
| // ] |
| // }, |
| // |
| // { |
| // eventTime: "2020-12-27T00:10:00Z", |
| // dimensions: [ |
| // { name: "d1" stringVal: "v1" }, |
| // { name: "d2" stringVal: "v2" } |
| // { name: "m1" longVal: 200 } |
| // { name: "m2" longVal: 22 } |
| // ] |
| // }, |
| // |
| // { |
| // eventTime: "2020-12-27T00:20:00Z", |
| // dimensions: [ |
| // { name: "d1" stringVal: "v1" }, |
| // { name: "d2" stringVal: "v2" } |
| // { name: "m1" longVal: 300 } |
| // { name: "m2" longVal: 33 } |
| // ] |
| // } |
| // |
| // ``` |
| // |
| // These events are all within the same hour, spaced 10 minutes between each |
| // of them. Assuming our [QueryDataSetRequest][google.cloud.timeseriesinsights.v1.QueryDataSetRequest] had set |
| // [slicingParams.dimensionNames][google.cloud.timeseriesinsights.v1.SlicingParams.dimension_names] to ["d1", |
| // "d2"] and [timeseries_params.granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity] to |
| // "3600s", then all the previous events will be aggregated into the same |
| // [timeseries point][google.cloud.timeseriesinsights.v1.TimeseriesPoint]. |
| // |
| // The time series point that they're all part of will have the |
| // [time][google.cloud.timeseriesinsights.v1.TimeseriesPoint.time] set to "2020-12-27T00:00:00Z" and the |
| // [value][google.cloud.timeseriesinsights.v1.TimeseriesPoint.value] populated based on this metric field: |
| // |
| // - If the metric is set to "m1" and metric_aggregation_method to SUM, then |
| // the value of the point will be 600. |
| // - If the metric is set to "m2" and metric_aggregation_method to SUM, then |
| // the value of the point will be 66. |
| // - If the metric is set to "m1" and metric_aggregation_method to AVERAGE, |
| // then the value of the point will be 200. |
| // - If the metric is set to "m2" and metric_aggregation_method to AVERAGE, |
| // then the value of the point will be 22. |
| // - If the metric field is "" or unspecified, then the value of the point |
| // will be 3, as we will simply count the events. |
| Metric *string `protobuf:"bytes,4,opt,name=metric,proto3,oneof" json:"metric,omitempty"` |
| // Optional. Together with the [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] field, specifies how |
| // we will aggregate multiple events to obtain the value of a time series |
| // point. See the [metric][google.cloud.timeseriesinsights.v1.TimeseriesParams.metric] documentation for more |
| // details. |
| // |
| // If the metric is not specified or "", then this field will be ignored. |
| MetricAggregationMethod TimeseriesParams_AggregationMethod `protobuf:"varint,5,opt,name=metric_aggregation_method,json=metricAggregationMethod,proto3,enum=google.cloud.timeseriesinsights.v1.TimeseriesParams_AggregationMethod" json:"metric_aggregation_method,omitempty"` |
| } |
| |
| func (x *TimeseriesParams) Reset() { |
| *x = TimeseriesParams{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TimeseriesParams) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TimeseriesParams) ProtoMessage() {} |
| |
| func (x *TimeseriesParams) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[17] |
| 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 TimeseriesParams.ProtoReflect.Descriptor instead. |
| func (*TimeseriesParams) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{17} |
| } |
| |
| func (x *TimeseriesParams) GetForecastHistory() *durationpb.Duration { |
| if x != nil { |
| return x.ForecastHistory |
| } |
| return nil |
| } |
| |
| func (x *TimeseriesParams) GetGranularity() *durationpb.Duration { |
| if x != nil { |
| return x.Granularity |
| } |
| return nil |
| } |
| |
| func (x *TimeseriesParams) GetMetric() string { |
| if x != nil && x.Metric != nil { |
| return *x.Metric |
| } |
| return "" |
| } |
| |
| func (x *TimeseriesParams) GetMetricAggregationMethod() TimeseriesParams_AggregationMethod { |
| if x != nil { |
| return x.MetricAggregationMethod |
| } |
| return TimeseriesParams_AGGREGATION_METHOD_UNSPECIFIED |
| } |
| |
| // Request for performing a query against a loaded DataSet. |
| type QueryDataSetRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Loaded DataSet to be queried in the format of |
| // "projects/{project}/datasets/{dataset}" |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Required. This is the point in time that we want to probe for anomalies. |
| // |
| // The corresponding [TimeseriesPoint][google.cloud.timeseriesinsights.v1.TimeseriesPoint] is referred to as the |
| // detection point. |
| // |
| // **NOTE**: As with any other time series point, the value is given by |
| // aggregating all events in the slice that are in the |
| // [detectionTime, detectionTime + granularity) time interval, where |
| // the granularity is specified in the |
| // [timeseriesParams.granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity] field. |
| DetectionTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=detection_time,json=detectionTime,proto3" json:"detection_time,omitempty"` |
| // How many slices are returned in |
| // [QueryDataSetResponse.slices][google.cloud.timeseriesinsights.v1.QueryDataSetResponse.slices]. |
| // |
| // The returned slices are tentatively the ones with the highest |
| // [anomaly scores][google.cloud.timeseriesinsights.v1.EvaluatedSlice.anomaly_score] in the dataset that match |
| // the query, but it is not guaranteed. |
| // |
| // Reducing this number will improve query performance, both in terms of |
| // latency and resource usage. |
| // |
| // Defaults to 50. |
| NumReturnedSlices *int32 `protobuf:"varint,13,opt,name=num_returned_slices,json=numReturnedSlices,proto3,oneof" json:"num_returned_slices,omitempty"` |
| // Parameters controlling how we will split the dataset into the slices that |
| // we will analyze. |
| SlicingParams *SlicingParams `protobuf:"bytes,9,opt,name=slicing_params,json=slicingParams,proto3" json:"slicing_params,omitempty"` |
| // Parameters controlling how we will build the time series used to predict |
| // the [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] value for each slice. |
| TimeseriesParams *TimeseriesParams `protobuf:"bytes,10,opt,name=timeseries_params,json=timeseriesParams,proto3" json:"timeseries_params,omitempty"` |
| // Parameters that control the time series forecasting models, such as the |
| // sensitivity of the anomaly detection. |
| ForecastParams *ForecastParams `protobuf:"bytes,5,opt,name=forecast_params,json=forecastParams,proto3" json:"forecast_params,omitempty"` |
| // If specified, we will return the actual and forecasted time for all |
| // returned slices. |
| // |
| // The time series are returned in the |
| // [EvaluatedSlice.history][google.cloud.timeseriesinsights.v1.EvaluatedSlice.history] and |
| // [EvaluatedSlice.forecast][google.cloud.timeseriesinsights.v1.EvaluatedSlice.forecast] fields. |
| ReturnTimeseries bool `protobuf:"varint,8,opt,name=return_timeseries,json=returnTimeseries,proto3" json:"return_timeseries,omitempty"` |
| } |
| |
| func (x *QueryDataSetRequest) Reset() { |
| *x = QueryDataSetRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QueryDataSetRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QueryDataSetRequest) ProtoMessage() {} |
| |
| func (x *QueryDataSetRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[18] |
| 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 QueryDataSetRequest.ProtoReflect.Descriptor instead. |
| func (*QueryDataSetRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{18} |
| } |
| |
| func (x *QueryDataSetRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *QueryDataSetRequest) GetDetectionTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.DetectionTime |
| } |
| return nil |
| } |
| |
| func (x *QueryDataSetRequest) GetNumReturnedSlices() int32 { |
| if x != nil && x.NumReturnedSlices != nil { |
| return *x.NumReturnedSlices |
| } |
| return 0 |
| } |
| |
| func (x *QueryDataSetRequest) GetSlicingParams() *SlicingParams { |
| if x != nil { |
| return x.SlicingParams |
| } |
| return nil |
| } |
| |
| func (x *QueryDataSetRequest) GetTimeseriesParams() *TimeseriesParams { |
| if x != nil { |
| return x.TimeseriesParams |
| } |
| return nil |
| } |
| |
| func (x *QueryDataSetRequest) GetForecastParams() *ForecastParams { |
| if x != nil { |
| return x.ForecastParams |
| } |
| return nil |
| } |
| |
| func (x *QueryDataSetRequest) GetReturnTimeseries() bool { |
| if x != nil { |
| return x.ReturnTimeseries |
| } |
| return false |
| } |
| |
| // Response for a query executed by the system. |
| type QueryDataSetResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Loaded DataSet that was queried. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Slices sorted in descending order by their |
| // [anomalyScore][google.cloud.timeseriesinsights.v1.EvaluatedSlice.anomaly_score]. |
| // |
| // At most [numReturnedSlices][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.num_returned_slices] |
| // slices are present in this field. |
| Slices []*EvaluatedSlice `protobuf:"bytes,3,rep,name=slices,proto3" json:"slices,omitempty"` |
| } |
| |
| func (x *QueryDataSetResponse) Reset() { |
| *x = QueryDataSetResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QueryDataSetResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QueryDataSetResponse) ProtoMessage() {} |
| |
| func (x *QueryDataSetResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[19] |
| 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 QueryDataSetResponse.ProtoReflect.Descriptor instead. |
| func (*QueryDataSetResponse) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{19} |
| } |
| |
| func (x *QueryDataSetResponse) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *QueryDataSetResponse) GetSlices() []*EvaluatedSlice { |
| if x != nil { |
| return x.Slices |
| } |
| return nil |
| } |
| |
| // Request for evaluateSlice. |
| type EvaluateSliceRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Loaded DataSet to be queried in the format of |
| // "projects/{project}/datasets/{dataset}" |
| Dataset string `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"` |
| // Required. Dimensions with pinned values that specify the slice for which we will |
| // fetch the time series. |
| PinnedDimensions []*PinnedDimension `protobuf:"bytes,2,rep,name=pinned_dimensions,json=pinnedDimensions,proto3" json:"pinned_dimensions,omitempty"` |
| // Required. This is the point in time that we want to probe for anomalies. |
| // |
| // See documentation for |
| // [QueryDataSetRequest.detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time]. |
| DetectionTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=detection_time,json=detectionTime,proto3" json:"detection_time,omitempty"` |
| // Parameters controlling how we will build the time series used to predict |
| // the [detectionTime][google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.detection_time] value for this slice. |
| TimeseriesParams *TimeseriesParams `protobuf:"bytes,4,opt,name=timeseries_params,json=timeseriesParams,proto3" json:"timeseries_params,omitempty"` |
| // Parameters that control the time series forecasting models, such as the |
| // sensitivity of the anomaly detection. |
| ForecastParams *ForecastParams `protobuf:"bytes,5,opt,name=forecast_params,json=forecastParams,proto3" json:"forecast_params,omitempty"` |
| } |
| |
| func (x *EvaluateSliceRequest) Reset() { |
| *x = EvaluateSliceRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EvaluateSliceRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EvaluateSliceRequest) ProtoMessage() {} |
| |
| func (x *EvaluateSliceRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[20] |
| 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 EvaluateSliceRequest.ProtoReflect.Descriptor instead. |
| func (*EvaluateSliceRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{20} |
| } |
| |
| func (x *EvaluateSliceRequest) GetDataset() string { |
| if x != nil { |
| return x.Dataset |
| } |
| return "" |
| } |
| |
| func (x *EvaluateSliceRequest) GetPinnedDimensions() []*PinnedDimension { |
| if x != nil { |
| return x.PinnedDimensions |
| } |
| return nil |
| } |
| |
| func (x *EvaluateSliceRequest) GetDetectionTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.DetectionTime |
| } |
| return nil |
| } |
| |
| func (x *EvaluateSliceRequest) GetTimeseriesParams() *TimeseriesParams { |
| if x != nil { |
| return x.TimeseriesParams |
| } |
| return nil |
| } |
| |
| func (x *EvaluateSliceRequest) GetForecastParams() *ForecastParams { |
| if x != nil { |
| return x.ForecastParams |
| } |
| return nil |
| } |
| |
| // Request for evaluateTimeseries. |
| type EvaluateTimeseriesRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Client project name in the format of 'projects/{project}'. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Evaluate this time series without requiring it was previously loaded in |
| // a data set. |
| // |
| // The evaluated time series point is the last one, analogous to calling |
| // evaluateSlice or query with |
| // [detectionTime][google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.detection_time] set to |
| // `timeseries.point(timeseries.point_size() - 1).time`. |
| // |
| // The length of the time series must be at least 10. |
| // |
| // All points must have the same time offset relative to the granularity. For |
| // example, if the [granularity][google.cloud.timeseriesinsights.v1.EvaluateTimeseriesRequest.granularity] is "5s", then the following |
| // point.time sequences are valid: |
| // - "100s", "105s", "120s", "125s" (no offset) |
| // - "102s", "107s", "122s", "127s" (offset is "2s") |
| // However, the following sequence is invalid as it has inconsistent offsets: |
| // - "100s", "105s", "122s", "127s" (offsets are either "0s" or "2s") |
| Timeseries *Timeseries `protobuf:"bytes,2,opt,name=timeseries,proto3" json:"timeseries,omitempty"` |
| // The granularity of the time series (time distance between two consecutive |
| // points). |
| Granularity *durationpb.Duration `protobuf:"bytes,3,opt,name=granularity,proto3" json:"granularity,omitempty"` |
| // The forecast parameters. |
| ForecastParams *ForecastParams `protobuf:"bytes,4,opt,name=forecast_params,json=forecastParams,proto3" json:"forecast_params,omitempty"` |
| } |
| |
| func (x *EvaluateTimeseriesRequest) Reset() { |
| *x = EvaluateTimeseriesRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EvaluateTimeseriesRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EvaluateTimeseriesRequest) ProtoMessage() {} |
| |
| func (x *EvaluateTimeseriesRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[21] |
| 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 EvaluateTimeseriesRequest.ProtoReflect.Descriptor instead. |
| func (*EvaluateTimeseriesRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP(), []int{21} |
| } |
| |
| func (x *EvaluateTimeseriesRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *EvaluateTimeseriesRequest) GetTimeseries() *Timeseries { |
| if x != nil { |
| return x.Timeseries |
| } |
| return nil |
| } |
| |
| func (x *EvaluateTimeseriesRequest) GetGranularity() *durationpb.Duration { |
| if x != nil { |
| return x.Granularity |
| } |
| return nil |
| } |
| |
| func (x *EvaluateTimeseriesRequest) GetForecastParams() *ForecastParams { |
| if x != nil { |
| return x.ForecastParams |
| } |
| return nil |
| } |
| |
| var File_google_cloud_timeseriesinsights_v1_timeseries_insights_proto protoreflect.FileDescriptor |
| |
| var file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDesc = []byte{ |
| 0x0a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, |
| 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x5f, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 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, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, |
| 0x65, 0x6e, 0x74, 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, 0x19, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 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, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, |
| 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x01, 0x0a, |
| 0x0f, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, |
| 0x12, 0x29, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, 0x6f, |
| 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, |
| 0x73, 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x67, |
| 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x43, 0x6f, 0x6c, |
| 0x75, 0x6d, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, |
| 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x72, |
| 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, |
| 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x52, |
| 0x0a, 0x0a, 0x62, 0x71, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, |
| 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x62, 0x71, 0x4d, 0x61, 0x70, 0x70, 0x69, |
| 0x6e, 0x67, 0x22, 0xc2, 0x04, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x12, |
| 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, |
| 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, |
| 0x73, 0x12, 0x51, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, |
| 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, |
| 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, |
| 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, |
| 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, |
| 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, |
| 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, |
| 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0x7a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, |
| 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, |
| 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, |
| 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, |
| 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, |
| 0x06, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x4c, |
| 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x4e, 0x4c, 0x4f, |
| 0x41, 0x44, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, |
| 0x10, 0x07, 0x3a, 0x92, 0x01, 0xea, 0x41, 0x8e, 0x01, 0x0a, 0x29, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, |
| 0x61, 0x73, 0x65, 0x74, 0x12, 0x25, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, |
| 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, |
| 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x7d, 0x12, 0x3a, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, |
| 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x64, |
| 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x7d, 0x22, 0xa9, 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, |
| 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, |
| 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, |
| 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, |
| 0x1b, 0x0a, 0x08, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x03, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x08, |
| 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, |
| 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x64, 0x6f, 0x75, |
| 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, |
| 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, |
| 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x6d, 0x65, |
| 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, |
| 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x09, 0x65, 0x76, |
| 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x65, |
| 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, |
| 0x41, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, |
| 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, |
| 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x74, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, |
| 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x22, |
| 0x68, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, |
| 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x70, |
| 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, |
| 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x64, 0x72, 0x6f, 0x70, |
| 0x70, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x14, 0x43, 0x72, |
| 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, |
| 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, |
| 0x4a, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x22, 0x5d, 0x0a, 0x14, 0x44, |
| 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, |
| 0x61, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x13, 0x4c, |
| 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, |
| 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, |
| 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x05, 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, 0x03, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x14, |
| 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, |
| 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, |
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, |
| 0x53, 0x65, 0x74, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 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, 0x6c, 0x0a, 0x0f, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x44, |
| 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, |
| 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, |
| 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, |
| 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, |
| 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x22, 0xeb, 0x02, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, |
| 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x0f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, |
| 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x42, |
| 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x54, 0x68, 0x72, |
| 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x69, 0x0a, 0x10, 0x73, 0x65, 0x61, |
| 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x0a, 0x20, |
| 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, |
| 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x03, |
| 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, |
| 0x48, 0x69, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, |
| 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, |
| 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, |
| 0x5c, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x52, |
| 0x49, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, |
| 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4f, 0x55, 0x52, 0x4c, 0x59, 0x10, 0x05, 0x12, 0x09, 0x0a, |
| 0x05, 0x44, 0x41, 0x49, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x45, 0x45, 0x4b, |
| 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x4c, 0x59, 0x10, |
| 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x04, 0x42, 0x12, 0x0a, |
| 0x10, 0x5f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, |
| 0x64, 0x22, 0x66, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, |
| 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, |
| 0x74, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, |
| 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x0a, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, |
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, |
| 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x69, |
| 0x6e, 0x74, 0x22, 0xe0, 0x04, 0x0a, 0x0e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, |
| 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, |
| 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, |
| 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, |
| 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, |
| 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x16, 0x64, 0x65, |
| 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x63, |
| 0x74, 0x75, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, |
| 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x75, |
| 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, |
| 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x16, 0x64, 0x65, 0x74, 0x65, 0x63, |
| 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, |
| 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, |
| 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, |
| 0x48, 0x02, 0x52, 0x11, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6f, 0x6d, |
| 0x61, 0x6c, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x48, |
| 0x03, 0x52, 0x0c, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, |
| 0x01, 0x01, 0x12, 0x48, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, |
| 0x69, 0x65, 0x73, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x08, |
| 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, |
| 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x08, |
| 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x42, |
| 0x1b, 0x0a, 0x19, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, |
| 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x42, 0x15, 0x0a, 0x13, |
| 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, |
| 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x0d, 0x53, 0x6c, 0x69, 0x63, 0x69, 0x6e, |
| 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x64, 0x69, 0x6d, 0x65, 0x6e, |
| 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, |
| 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x11, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, |
| 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, |
| 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x70, 0x69, 0x6e, 0x6e, |
| 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa5, 0x03, 0x0a, |
| 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, |
| 0x73, 0x12, 0x49, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, |
| 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x6f, 0x72, |
| 0x65, 0x63, 0x61, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x0b, |
| 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, |
| 0x02, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, |
| 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, |
| 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, |
| 0x12, 0x87, 0x01, 0x0a, 0x19, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, |
| 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, |
| 0x72, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, |
| 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x03, 0xe0, 0x41, |
| 0x01, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x41, 0x67, |
| 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, |
| 0x22, 0x0a, 0x1e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, |
| 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, |
| 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, |
| 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, |
| 0x74, 0x72, 0x69, 0x63, 0x22, 0xb8, 0x04, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, |
| 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, |
| 0x41, 0x2b, 0x0a, 0x29, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x64, 0x65, |
| 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x6e, |
| 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x69, 0x63, |
| 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x52, |
| 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, |
| 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x6c, 0x69, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, |
| 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, |
| 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6c, |
| 0x69, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0d, 0x73, 0x6c, 0x69, |
| 0x63, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x61, 0x0a, 0x11, 0x74, 0x69, |
| 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, |
| 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x10, 0x74, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5b, 0x0a, |
| 0x0f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, |
| 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x65, |
| 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x65, |
| 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, |
| 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, |
| 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, |
| 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x22, |
| 0x76, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, |
| 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x73, |
| 0x6c, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, |
| 0x06, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x22, 0xd2, 0x03, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, |
| 0x75, 0x61, 0x74, 0x65, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x12, 0x4b, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, |
| 0x61, 0x73, 0x65, 0x74, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x65, 0x0a, |
| 0x11, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, |
| 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, |
| 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, |
| 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x10, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, |
| 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x64, |
| 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x11, |
| 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, |
| 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, |
| 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x10, 0x74, |
| 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, |
| 0x5b, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, |
| 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, |
| 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, |
| 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x66, 0x6f, |
| 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xd2, 0x02, 0x0a, |
| 0x19, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, |
| 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, |
| 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, |
| 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, |
| 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, |
| 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, |
| 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x74, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, |
| 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, |
| 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, |
| 0x72, 0x69, 0x74, 0x79, 0x12, 0x5b, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, |
| 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, |
| 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, |
| 0x73, 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, |
| 0x73, 0x32, 0xb1, 0x0e, 0x0a, 0x1c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, |
| 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, |
| 0x65, 0x72, 0x12, 0xe4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, |
| 0x65, 0x74, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, |
| 0x61, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, |
| 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, |
| 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, |
| 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x12, 0x2c, |
| 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x5a, 0x22, 0x12, 0x20, |
| 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, |
| 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xf3, 0x01, 0x0a, 0x0d, 0x43, 0x72, |
| 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, |
| 0x65, 0x74, 0x22, 0x7b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x22, 0x2c, 0x2f, 0x76, 0x31, 0x2f, |
| 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, |
| 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, |
| 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, |
| 0x74, 0x5a, 0x2b, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, |
| 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, |
| 0x61, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0xda, 0x41, |
| 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, |
| 0xc2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, |
| 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, |
| 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, |
| 0x70, 0x74, 0x79, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x2a, 0x2c, 0x2f, 0x76, 0x31, |
| 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, |
| 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, |
| 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x22, 0x2a, 0x20, 0x2f, 0x76, 0x31, |
| 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, |
| 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x93, 0x02, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, |
| 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, |
| 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, |
| 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, |
| 0x78, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x3d, |
| 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, |
| 0x2a, 0x7d, 0x3a, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, |
| 0x01, 0x2a, 0x5a, 0x35, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, |
| 0x65, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, |
| 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, |
| 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0e, 0x64, 0x61, 0x74, 0x61, |
| 0x73, 0x65, 0x74, 0x2c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xed, 0x01, 0x0a, 0x0c, 0x51, |
| 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, |
| 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, |
| 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, |
| 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, |
| 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x2b, 0x22, |
| 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, |
| 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, |
| 0x7d, 0x3a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x02, 0x0a, 0x0d, 0x45, |
| 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x38, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, |
| 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, |
| 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, |
| 0x75, 0x61, 0x74, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, |
| 0x93, 0x02, 0x7a, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, |
| 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, |
| 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x6c, 0x69, |
| 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x36, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, |
| 0x74, 0x61, 0x73, 0x65, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, |
| 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x76, 0x61, |
| 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8e, 0x02, |
| 0x0a, 0x12, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, |
| 0x72, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, |
| 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, |
| 0x65, 0x64, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7e, |
| 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, |
| 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x65, |
| 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, |
| 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x38, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, |
| 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, |
| 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, |
| 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x1a, 0x55, |
| 0xca, 0x41, 0x21, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, |
| 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, |
| 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, |
| 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, |
| 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x9c, 0x01, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, |
| 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x42, 0x17, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x49, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x54, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, |
| 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, |
| 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, |
| 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x74, |
| 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescOnce sync.Once |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescData = file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDesc |
| ) |
| |
| func file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescGZIP() []byte { |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescOnce.Do(func() { |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescData) |
| }) |
| return file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDescData |
| } |
| |
| var file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes = make([]protoimpl.EnumInfo, 3) |
| var file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes = make([]protoimpl.MessageInfo, 22) |
| var file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_goTypes = []interface{}{ |
| (DataSet_State)(0), // 0: google.cloud.timeseriesinsights.v1.DataSet.State |
| (ForecastParams_Period)(0), // 1: google.cloud.timeseriesinsights.v1.ForecastParams.Period |
| (TimeseriesParams_AggregationMethod)(0), // 2: google.cloud.timeseriesinsights.v1.TimeseriesParams.AggregationMethod |
| (*BigqueryMapping)(nil), // 3: google.cloud.timeseriesinsights.v1.BigqueryMapping |
| (*DataSource)(nil), // 4: google.cloud.timeseriesinsights.v1.DataSource |
| (*DataSet)(nil), // 5: google.cloud.timeseriesinsights.v1.DataSet |
| (*EventDimension)(nil), // 6: google.cloud.timeseriesinsights.v1.EventDimension |
| (*Event)(nil), // 7: google.cloud.timeseriesinsights.v1.Event |
| (*AppendEventsRequest)(nil), // 8: google.cloud.timeseriesinsights.v1.AppendEventsRequest |
| (*AppendEventsResponse)(nil), // 9: google.cloud.timeseriesinsights.v1.AppendEventsResponse |
| (*CreateDataSetRequest)(nil), // 10: google.cloud.timeseriesinsights.v1.CreateDataSetRequest |
| (*DeleteDataSetRequest)(nil), // 11: google.cloud.timeseriesinsights.v1.DeleteDataSetRequest |
| (*ListDataSetsRequest)(nil), // 12: google.cloud.timeseriesinsights.v1.ListDataSetsRequest |
| (*ListDataSetsResponse)(nil), // 13: google.cloud.timeseriesinsights.v1.ListDataSetsResponse |
| (*PinnedDimension)(nil), // 14: google.cloud.timeseriesinsights.v1.PinnedDimension |
| (*ForecastParams)(nil), // 15: google.cloud.timeseriesinsights.v1.ForecastParams |
| (*TimeseriesPoint)(nil), // 16: google.cloud.timeseriesinsights.v1.TimeseriesPoint |
| (*Timeseries)(nil), // 17: google.cloud.timeseriesinsights.v1.Timeseries |
| (*EvaluatedSlice)(nil), // 18: google.cloud.timeseriesinsights.v1.EvaluatedSlice |
| (*SlicingParams)(nil), // 19: google.cloud.timeseriesinsights.v1.SlicingParams |
| (*TimeseriesParams)(nil), // 20: google.cloud.timeseriesinsights.v1.TimeseriesParams |
| (*QueryDataSetRequest)(nil), // 21: google.cloud.timeseriesinsights.v1.QueryDataSetRequest |
| (*QueryDataSetResponse)(nil), // 22: google.cloud.timeseriesinsights.v1.QueryDataSetResponse |
| (*EvaluateSliceRequest)(nil), // 23: google.cloud.timeseriesinsights.v1.EvaluateSliceRequest |
| (*EvaluateTimeseriesRequest)(nil), // 24: google.cloud.timeseriesinsights.v1.EvaluateTimeseriesRequest |
| (*status.Status)(nil), // 25: google.rpc.Status |
| (*durationpb.Duration)(nil), // 26: google.protobuf.Duration |
| (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp |
| (*emptypb.Empty)(nil), // 28: google.protobuf.Empty |
| } |
| var file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_depIdxs = []int32{ |
| 3, // 0: google.cloud.timeseriesinsights.v1.DataSource.bq_mapping:type_name -> google.cloud.timeseriesinsights.v1.BigqueryMapping |
| 4, // 1: google.cloud.timeseriesinsights.v1.DataSet.data_sources:type_name -> google.cloud.timeseriesinsights.v1.DataSource |
| 0, // 2: google.cloud.timeseriesinsights.v1.DataSet.state:type_name -> google.cloud.timeseriesinsights.v1.DataSet.State |
| 25, // 3: google.cloud.timeseriesinsights.v1.DataSet.status:type_name -> google.rpc.Status |
| 26, // 4: google.cloud.timeseriesinsights.v1.DataSet.ttl:type_name -> google.protobuf.Duration |
| 6, // 5: google.cloud.timeseriesinsights.v1.Event.dimensions:type_name -> google.cloud.timeseriesinsights.v1.EventDimension |
| 27, // 6: google.cloud.timeseriesinsights.v1.Event.event_time:type_name -> google.protobuf.Timestamp |
| 7, // 7: google.cloud.timeseriesinsights.v1.AppendEventsRequest.events:type_name -> google.cloud.timeseriesinsights.v1.Event |
| 7, // 8: google.cloud.timeseriesinsights.v1.AppendEventsResponse.dropped_events:type_name -> google.cloud.timeseriesinsights.v1.Event |
| 5, // 9: google.cloud.timeseriesinsights.v1.CreateDataSetRequest.dataset:type_name -> google.cloud.timeseriesinsights.v1.DataSet |
| 5, // 10: google.cloud.timeseriesinsights.v1.ListDataSetsResponse.datasets:type_name -> google.cloud.timeseriesinsights.v1.DataSet |
| 1, // 11: google.cloud.timeseriesinsights.v1.ForecastParams.seasonality_hint:type_name -> google.cloud.timeseriesinsights.v1.ForecastParams.Period |
| 26, // 12: google.cloud.timeseriesinsights.v1.ForecastParams.horizon_duration:type_name -> google.protobuf.Duration |
| 27, // 13: google.cloud.timeseriesinsights.v1.TimeseriesPoint.time:type_name -> google.protobuf.Timestamp |
| 16, // 14: google.cloud.timeseriesinsights.v1.Timeseries.point:type_name -> google.cloud.timeseriesinsights.v1.TimeseriesPoint |
| 14, // 15: google.cloud.timeseriesinsights.v1.EvaluatedSlice.dimensions:type_name -> google.cloud.timeseriesinsights.v1.PinnedDimension |
| 17, // 16: google.cloud.timeseriesinsights.v1.EvaluatedSlice.history:type_name -> google.cloud.timeseriesinsights.v1.Timeseries |
| 17, // 17: google.cloud.timeseriesinsights.v1.EvaluatedSlice.forecast:type_name -> google.cloud.timeseriesinsights.v1.Timeseries |
| 25, // 18: google.cloud.timeseriesinsights.v1.EvaluatedSlice.status:type_name -> google.rpc.Status |
| 14, // 19: google.cloud.timeseriesinsights.v1.SlicingParams.pinned_dimensions:type_name -> google.cloud.timeseriesinsights.v1.PinnedDimension |
| 26, // 20: google.cloud.timeseriesinsights.v1.TimeseriesParams.forecast_history:type_name -> google.protobuf.Duration |
| 26, // 21: google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity:type_name -> google.protobuf.Duration |
| 2, // 22: google.cloud.timeseriesinsights.v1.TimeseriesParams.metric_aggregation_method:type_name -> google.cloud.timeseriesinsights.v1.TimeseriesParams.AggregationMethod |
| 27, // 23: google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time:type_name -> google.protobuf.Timestamp |
| 19, // 24: google.cloud.timeseriesinsights.v1.QueryDataSetRequest.slicing_params:type_name -> google.cloud.timeseriesinsights.v1.SlicingParams |
| 20, // 25: google.cloud.timeseriesinsights.v1.QueryDataSetRequest.timeseries_params:type_name -> google.cloud.timeseriesinsights.v1.TimeseriesParams |
| 15, // 26: google.cloud.timeseriesinsights.v1.QueryDataSetRequest.forecast_params:type_name -> google.cloud.timeseriesinsights.v1.ForecastParams |
| 18, // 27: google.cloud.timeseriesinsights.v1.QueryDataSetResponse.slices:type_name -> google.cloud.timeseriesinsights.v1.EvaluatedSlice |
| 14, // 28: google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.pinned_dimensions:type_name -> google.cloud.timeseriesinsights.v1.PinnedDimension |
| 27, // 29: google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.detection_time:type_name -> google.protobuf.Timestamp |
| 20, // 30: google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.timeseries_params:type_name -> google.cloud.timeseriesinsights.v1.TimeseriesParams |
| 15, // 31: google.cloud.timeseriesinsights.v1.EvaluateSliceRequest.forecast_params:type_name -> google.cloud.timeseriesinsights.v1.ForecastParams |
| 17, // 32: google.cloud.timeseriesinsights.v1.EvaluateTimeseriesRequest.timeseries:type_name -> google.cloud.timeseriesinsights.v1.Timeseries |
| 26, // 33: google.cloud.timeseriesinsights.v1.EvaluateTimeseriesRequest.granularity:type_name -> google.protobuf.Duration |
| 15, // 34: google.cloud.timeseriesinsights.v1.EvaluateTimeseriesRequest.forecast_params:type_name -> google.cloud.timeseriesinsights.v1.ForecastParams |
| 12, // 35: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.ListDataSets:input_type -> google.cloud.timeseriesinsights.v1.ListDataSetsRequest |
| 10, // 36: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.CreateDataSet:input_type -> google.cloud.timeseriesinsights.v1.CreateDataSetRequest |
| 11, // 37: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.DeleteDataSet:input_type -> google.cloud.timeseriesinsights.v1.DeleteDataSetRequest |
| 8, // 38: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.AppendEvents:input_type -> google.cloud.timeseriesinsights.v1.AppendEventsRequest |
| 21, // 39: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.QueryDataSet:input_type -> google.cloud.timeseriesinsights.v1.QueryDataSetRequest |
| 23, // 40: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.EvaluateSlice:input_type -> google.cloud.timeseriesinsights.v1.EvaluateSliceRequest |
| 24, // 41: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.EvaluateTimeseries:input_type -> google.cloud.timeseriesinsights.v1.EvaluateTimeseriesRequest |
| 13, // 42: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.ListDataSets:output_type -> google.cloud.timeseriesinsights.v1.ListDataSetsResponse |
| 5, // 43: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.CreateDataSet:output_type -> google.cloud.timeseriesinsights.v1.DataSet |
| 28, // 44: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.DeleteDataSet:output_type -> google.protobuf.Empty |
| 9, // 45: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.AppendEvents:output_type -> google.cloud.timeseriesinsights.v1.AppendEventsResponse |
| 22, // 46: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.QueryDataSet:output_type -> google.cloud.timeseriesinsights.v1.QueryDataSetResponse |
| 18, // 47: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.EvaluateSlice:output_type -> google.cloud.timeseriesinsights.v1.EvaluatedSlice |
| 18, // 48: google.cloud.timeseriesinsights.v1.TimeseriesInsightsController.EvaluateTimeseries:output_type -> google.cloud.timeseriesinsights.v1.EvaluatedSlice |
| 42, // [42:49] is the sub-list for method output_type |
| 35, // [35:42] is the sub-list for method input_type |
| 35, // [35:35] is the sub-list for extension type_name |
| 35, // [35:35] is the sub-list for extension extendee |
| 0, // [0:35] is the sub-list for field type_name |
| } |
| |
| func init() { file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_init() } |
| func file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_init() { |
| if File_google_cloud_timeseriesinsights_v1_timeseries_insights_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BigqueryMapping); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DataSource); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DataSet); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EventDimension); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Event); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AppendEventsRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AppendEventsResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CreateDataSetRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DeleteDataSetRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListDataSetsRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListDataSetsResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PinnedDimension); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ForecastParams); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TimeseriesPoint); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Timeseries); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EvaluatedSlice); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SlicingParams); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TimeseriesParams); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QueryDataSetRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QueryDataSetResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EvaluateSliceRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EvaluateTimeseriesRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[3].OneofWrappers = []interface{}{ |
| (*EventDimension_StringVal)(nil), |
| (*EventDimension_LongVal)(nil), |
| (*EventDimension_BoolVal)(nil), |
| (*EventDimension_DoubleVal)(nil), |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[11].OneofWrappers = []interface{}{ |
| (*PinnedDimension_StringVal)(nil), |
| (*PinnedDimension_BoolVal)(nil), |
| } |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[12].OneofWrappers = []interface{}{} |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[13].OneofWrappers = []interface{}{} |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[15].OneofWrappers = []interface{}{} |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[17].OneofWrappers = []interface{}{} |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes[18].OneofWrappers = []interface{}{} |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDesc, |
| NumEnums: 3, |
| NumMessages: 22, |
| NumExtensions: 0, |
| NumServices: 1, |
| }, |
| GoTypes: file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_goTypes, |
| DependencyIndexes: file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_depIdxs, |
| EnumInfos: file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_enumTypes, |
| MessageInfos: file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_msgTypes, |
| }.Build() |
| File_google_cloud_timeseriesinsights_v1_timeseries_insights_proto = out.File |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_rawDesc = nil |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_goTypes = nil |
| file_google_cloud_timeseriesinsights_v1_timeseries_insights_proto_depIdxs = nil |
| } |
| |
| // Reference imports to suppress errors if they are not otherwise used. |
| var _ context.Context |
| var _ grpc.ClientConnInterface |
| |
| // This is a compile-time assertion to ensure that this generated file |
| // is compatible with the grpc package it is being compiled against. |
| const _ = grpc.SupportPackageIsVersion6 |
| |
| // TimeseriesInsightsControllerClient is the client API for TimeseriesInsightsController service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type TimeseriesInsightsControllerClient interface { |
| // Lists [DataSets][google.cloud.timeseriesinsights.v1.DataSet] under the project. |
| // |
| // The order of the results is unspecified but deterministic. Newly created |
| // [DataSets][google.cloud.timeseriesinsights.v1.DataSet] will not necessarily be added to the end |
| // of this list. |
| ListDataSets(ctx context.Context, in *ListDataSetsRequest, opts ...grpc.CallOption) (*ListDataSetsResponse, error) |
| // Create a [DataSet][google.cloud.timeseriesinsights.v1.DataSet] from data stored on Cloud |
| // Storage. |
| // |
| // The data must stay immutable while we process the |
| // [DataSet][google.cloud.timeseriesinsights.v1.DataSet] creation; otherwise, undefined outcomes |
| // might result. For more information, see [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| CreateDataSet(ctx context.Context, in *CreateDataSetRequest, opts ...grpc.CallOption) (*DataSet, error) |
| // Delete a [DataSet][google.cloud.timeseriesinsights.v1.DataSet] from the system. |
| // |
| // **NOTE**: If the [DataSet][google.cloud.timeseriesinsights.v1.DataSet] is still being |
| // processed, it will be aborted and deleted. |
| DeleteDataSet(ctx context.Context, in *DeleteDataSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) |
| // Append events to a `LOADED` [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| AppendEvents(ctx context.Context, in *AppendEventsRequest, opts ...grpc.CallOption) (*AppendEventsResponse, error) |
| // Execute a Timeseries Insights query over a loaded |
| // [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| QueryDataSet(ctx context.Context, in *QueryDataSetRequest, opts ...grpc.CallOption) (*QueryDataSetResponse, error) |
| // Evaluate an explicit slice from a loaded [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| EvaluateSlice(ctx context.Context, in *EvaluateSliceRequest, opts ...grpc.CallOption) (*EvaluatedSlice, error) |
| // Evaluate an explicit timeseries. |
| EvaluateTimeseries(ctx context.Context, in *EvaluateTimeseriesRequest, opts ...grpc.CallOption) (*EvaluatedSlice, error) |
| } |
| |
| type timeseriesInsightsControllerClient struct { |
| cc grpc.ClientConnInterface |
| } |
| |
| func NewTimeseriesInsightsControllerClient(cc grpc.ClientConnInterface) TimeseriesInsightsControllerClient { |
| return ×eriesInsightsControllerClient{cc} |
| } |
| |
| func (c *timeseriesInsightsControllerClient) ListDataSets(ctx context.Context, in *ListDataSetsRequest, opts ...grpc.CallOption) (*ListDataSetsResponse, error) { |
| out := new(ListDataSetsResponse) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/ListDataSets", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *timeseriesInsightsControllerClient) CreateDataSet(ctx context.Context, in *CreateDataSetRequest, opts ...grpc.CallOption) (*DataSet, error) { |
| out := new(DataSet) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/CreateDataSet", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *timeseriesInsightsControllerClient) DeleteDataSet(ctx context.Context, in *DeleteDataSetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { |
| out := new(emptypb.Empty) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/DeleteDataSet", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *timeseriesInsightsControllerClient) AppendEvents(ctx context.Context, in *AppendEventsRequest, opts ...grpc.CallOption) (*AppendEventsResponse, error) { |
| out := new(AppendEventsResponse) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/AppendEvents", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *timeseriesInsightsControllerClient) QueryDataSet(ctx context.Context, in *QueryDataSetRequest, opts ...grpc.CallOption) (*QueryDataSetResponse, error) { |
| out := new(QueryDataSetResponse) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/QueryDataSet", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *timeseriesInsightsControllerClient) EvaluateSlice(ctx context.Context, in *EvaluateSliceRequest, opts ...grpc.CallOption) (*EvaluatedSlice, error) { |
| out := new(EvaluatedSlice) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/EvaluateSlice", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *timeseriesInsightsControllerClient) EvaluateTimeseries(ctx context.Context, in *EvaluateTimeseriesRequest, opts ...grpc.CallOption) (*EvaluatedSlice, error) { |
| out := new(EvaluatedSlice) |
| err := c.cc.Invoke(ctx, "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/EvaluateTimeseries", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // TimeseriesInsightsControllerServer is the server API for TimeseriesInsightsController service. |
| type TimeseriesInsightsControllerServer interface { |
| // Lists [DataSets][google.cloud.timeseriesinsights.v1.DataSet] under the project. |
| // |
| // The order of the results is unspecified but deterministic. Newly created |
| // [DataSets][google.cloud.timeseriesinsights.v1.DataSet] will not necessarily be added to the end |
| // of this list. |
| ListDataSets(context.Context, *ListDataSetsRequest) (*ListDataSetsResponse, error) |
| // Create a [DataSet][google.cloud.timeseriesinsights.v1.DataSet] from data stored on Cloud |
| // Storage. |
| // |
| // The data must stay immutable while we process the |
| // [DataSet][google.cloud.timeseriesinsights.v1.DataSet] creation; otherwise, undefined outcomes |
| // might result. For more information, see [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| CreateDataSet(context.Context, *CreateDataSetRequest) (*DataSet, error) |
| // Delete a [DataSet][google.cloud.timeseriesinsights.v1.DataSet] from the system. |
| // |
| // **NOTE**: If the [DataSet][google.cloud.timeseriesinsights.v1.DataSet] is still being |
| // processed, it will be aborted and deleted. |
| DeleteDataSet(context.Context, *DeleteDataSetRequest) (*emptypb.Empty, error) |
| // Append events to a `LOADED` [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| AppendEvents(context.Context, *AppendEventsRequest) (*AppendEventsResponse, error) |
| // Execute a Timeseries Insights query over a loaded |
| // [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| QueryDataSet(context.Context, *QueryDataSetRequest) (*QueryDataSetResponse, error) |
| // Evaluate an explicit slice from a loaded [DataSet][google.cloud.timeseriesinsights.v1.DataSet]. |
| EvaluateSlice(context.Context, *EvaluateSliceRequest) (*EvaluatedSlice, error) |
| // Evaluate an explicit timeseries. |
| EvaluateTimeseries(context.Context, *EvaluateTimeseriesRequest) (*EvaluatedSlice, error) |
| } |
| |
| // UnimplementedTimeseriesInsightsControllerServer can be embedded to have forward compatible implementations. |
| type UnimplementedTimeseriesInsightsControllerServer struct { |
| } |
| |
| func (*UnimplementedTimeseriesInsightsControllerServer) ListDataSets(context.Context, *ListDataSetsRequest) (*ListDataSetsResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method ListDataSets not implemented") |
| } |
| func (*UnimplementedTimeseriesInsightsControllerServer) CreateDataSet(context.Context, *CreateDataSetRequest) (*DataSet, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method CreateDataSet not implemented") |
| } |
| func (*UnimplementedTimeseriesInsightsControllerServer) DeleteDataSet(context.Context, *DeleteDataSetRequest) (*emptypb.Empty, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method DeleteDataSet not implemented") |
| } |
| func (*UnimplementedTimeseriesInsightsControllerServer) AppendEvents(context.Context, *AppendEventsRequest) (*AppendEventsResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method AppendEvents not implemented") |
| } |
| func (*UnimplementedTimeseriesInsightsControllerServer) QueryDataSet(context.Context, *QueryDataSetRequest) (*QueryDataSetResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method QueryDataSet not implemented") |
| } |
| func (*UnimplementedTimeseriesInsightsControllerServer) EvaluateSlice(context.Context, *EvaluateSliceRequest) (*EvaluatedSlice, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method EvaluateSlice not implemented") |
| } |
| func (*UnimplementedTimeseriesInsightsControllerServer) EvaluateTimeseries(context.Context, *EvaluateTimeseriesRequest) (*EvaluatedSlice, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method EvaluateTimeseries not implemented") |
| } |
| |
| func RegisterTimeseriesInsightsControllerServer(s *grpc.Server, srv TimeseriesInsightsControllerServer) { |
| s.RegisterService(&_TimeseriesInsightsController_serviceDesc, srv) |
| } |
| |
| func _TimeseriesInsightsController_ListDataSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ListDataSetsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).ListDataSets(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/ListDataSets", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).ListDataSets(ctx, req.(*ListDataSetsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _TimeseriesInsightsController_CreateDataSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CreateDataSetRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).CreateDataSet(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/CreateDataSet", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).CreateDataSet(ctx, req.(*CreateDataSetRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _TimeseriesInsightsController_DeleteDataSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(DeleteDataSetRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).DeleteDataSet(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/DeleteDataSet", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).DeleteDataSet(ctx, req.(*DeleteDataSetRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _TimeseriesInsightsController_AppendEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(AppendEventsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).AppendEvents(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/AppendEvents", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).AppendEvents(ctx, req.(*AppendEventsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _TimeseriesInsightsController_QueryDataSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(QueryDataSetRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).QueryDataSet(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/QueryDataSet", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).QueryDataSet(ctx, req.(*QueryDataSetRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _TimeseriesInsightsController_EvaluateSlice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(EvaluateSliceRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).EvaluateSlice(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/EvaluateSlice", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).EvaluateSlice(ctx, req.(*EvaluateSliceRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _TimeseriesInsightsController_EvaluateTimeseries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(EvaluateTimeseriesRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(TimeseriesInsightsControllerServer).EvaluateTimeseries(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.timeseriesinsights.v1.TimeseriesInsightsController/EvaluateTimeseries", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(TimeseriesInsightsControllerServer).EvaluateTimeseries(ctx, req.(*EvaluateTimeseriesRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _TimeseriesInsightsController_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "google.cloud.timeseriesinsights.v1.TimeseriesInsightsController", |
| HandlerType: (*TimeseriesInsightsControllerServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "ListDataSets", |
| Handler: _TimeseriesInsightsController_ListDataSets_Handler, |
| }, |
| { |
| MethodName: "CreateDataSet", |
| Handler: _TimeseriesInsightsController_CreateDataSet_Handler, |
| }, |
| { |
| MethodName: "DeleteDataSet", |
| Handler: _TimeseriesInsightsController_DeleteDataSet_Handler, |
| }, |
| { |
| MethodName: "AppendEvents", |
| Handler: _TimeseriesInsightsController_AppendEvents_Handler, |
| }, |
| { |
| MethodName: "QueryDataSet", |
| Handler: _TimeseriesInsightsController_QueryDataSet_Handler, |
| }, |
| { |
| MethodName: "EvaluateSlice", |
| Handler: _TimeseriesInsightsController_EvaluateSlice_Handler, |
| }, |
| { |
| MethodName: "EvaluateTimeseries", |
| Handler: _TimeseriesInsightsController_EvaluateTimeseries_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{}, |
| Metadata: "google/cloud/timeseriesinsights/v1/timeseries_insights.proto", |
| } |