1// Copyright 2020 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.22.0 18// protoc v3.11.2 19// source: google/monitoring/v3/service.proto 20 21package monitoring 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 duration "github.com/golang/protobuf/ptypes/duration" 29 _ "github.com/golang/protobuf/ptypes/timestamp" 30 _ "google.golang.org/genproto/googleapis/api/annotations" 31 _ "google.golang.org/genproto/googleapis/api/monitoredres" 32 calendarperiod "google.golang.org/genproto/googleapis/type/calendarperiod" 33 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 34 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 35) 36 37const ( 38 // Verify that this generated code is sufficiently up-to-date. 39 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 40 // Verify that runtime/protoimpl is sufficiently up-to-date. 41 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 42) 43 44// This is a compile-time assertion that a sufficiently up-to-date version 45// of the legacy proto package is being used. 46const _ = proto.ProtoPackageIsVersion4 47 48// `ServiceLevelObjective.View` determines what form of 49// `ServiceLevelObjective` is returned from `GetServiceLevelObjective`, 50// `ListServiceLevelObjectives`, and `ListServiceLevelObjectiveVersions` RPCs. 51type ServiceLevelObjective_View int32 52 53const ( 54 // Same as FULL. 55 ServiceLevelObjective_VIEW_UNSPECIFIED ServiceLevelObjective_View = 0 56 // Return the embedded `ServiceLevelIndicator` in the form in which it was 57 // defined. If it was defined using a `BasicSli`, return that `BasicSli`. 58 ServiceLevelObjective_FULL ServiceLevelObjective_View = 2 59 // For `ServiceLevelIndicator`s using `BasicSli` articulation, instead 60 // return the `ServiceLevelIndicator` with its mode of computation fully 61 // spelled out as a `RequestBasedSli`. For `ServiceLevelIndicator`s using 62 // `RequestBasedSli` or `WindowsBasedSli`, return the 63 // `ServiceLevelIndicator` as it was provided. 64 ServiceLevelObjective_EXPLICIT ServiceLevelObjective_View = 1 65) 66 67// Enum value maps for ServiceLevelObjective_View. 68var ( 69 ServiceLevelObjective_View_name = map[int32]string{ 70 0: "VIEW_UNSPECIFIED", 71 2: "FULL", 72 1: "EXPLICIT", 73 } 74 ServiceLevelObjective_View_value = map[string]int32{ 75 "VIEW_UNSPECIFIED": 0, 76 "FULL": 2, 77 "EXPLICIT": 1, 78 } 79) 80 81func (x ServiceLevelObjective_View) Enum() *ServiceLevelObjective_View { 82 p := new(ServiceLevelObjective_View) 83 *p = x 84 return p 85} 86 87func (x ServiceLevelObjective_View) String() string { 88 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 89} 90 91func (ServiceLevelObjective_View) Descriptor() protoreflect.EnumDescriptor { 92 return file_google_monitoring_v3_service_proto_enumTypes[0].Descriptor() 93} 94 95func (ServiceLevelObjective_View) Type() protoreflect.EnumType { 96 return &file_google_monitoring_v3_service_proto_enumTypes[0] 97} 98 99func (x ServiceLevelObjective_View) Number() protoreflect.EnumNumber { 100 return protoreflect.EnumNumber(x) 101} 102 103// Deprecated: Use ServiceLevelObjective_View.Descriptor instead. 104func (ServiceLevelObjective_View) EnumDescriptor() ([]byte, []int) { 105 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{1, 0} 106} 107 108// A `Service` is a discrete, autonomous, and network-accessible unit, designed 109// to solve an individual concern 110// ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In 111// Cloud Monitoring, a `Service` acts as the root resource under which 112// operational aspects of the service are accessible. 113type Service struct { 114 state protoimpl.MessageState 115 sizeCache protoimpl.SizeCache 116 unknownFields protoimpl.UnknownFields 117 118 // Resource name for this Service. The format is: 119 // 120 // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] 121 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 122 // Name used for UI elements listing this Service. 123 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 124 // REQUIRED. Service-identifying atoms specifying the underlying service. 125 // 126 // Types that are assignable to Identifier: 127 // *Service_Custom_ 128 // *Service_AppEngine_ 129 // *Service_CloudEndpoints_ 130 // *Service_ClusterIstio_ 131 // *Service_MeshIstio_ 132 Identifier isService_Identifier `protobuf_oneof:"identifier"` 133 // Configuration for how to query telemetry on a Service. 134 Telemetry *Service_Telemetry `protobuf:"bytes,13,opt,name=telemetry,proto3" json:"telemetry,omitempty"` 135} 136 137func (x *Service) Reset() { 138 *x = Service{} 139 if protoimpl.UnsafeEnabled { 140 mi := &file_google_monitoring_v3_service_proto_msgTypes[0] 141 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 142 ms.StoreMessageInfo(mi) 143 } 144} 145 146func (x *Service) String() string { 147 return protoimpl.X.MessageStringOf(x) 148} 149 150func (*Service) ProtoMessage() {} 151 152func (x *Service) ProtoReflect() protoreflect.Message { 153 mi := &file_google_monitoring_v3_service_proto_msgTypes[0] 154 if protoimpl.UnsafeEnabled && x != nil { 155 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 156 if ms.LoadMessageInfo() == nil { 157 ms.StoreMessageInfo(mi) 158 } 159 return ms 160 } 161 return mi.MessageOf(x) 162} 163 164// Deprecated: Use Service.ProtoReflect.Descriptor instead. 165func (*Service) Descriptor() ([]byte, []int) { 166 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0} 167} 168 169func (x *Service) GetName() string { 170 if x != nil { 171 return x.Name 172 } 173 return "" 174} 175 176func (x *Service) GetDisplayName() string { 177 if x != nil { 178 return x.DisplayName 179 } 180 return "" 181} 182 183func (m *Service) GetIdentifier() isService_Identifier { 184 if m != nil { 185 return m.Identifier 186 } 187 return nil 188} 189 190func (x *Service) GetCustom() *Service_Custom { 191 if x, ok := x.GetIdentifier().(*Service_Custom_); ok { 192 return x.Custom 193 } 194 return nil 195} 196 197func (x *Service) GetAppEngine() *Service_AppEngine { 198 if x, ok := x.GetIdentifier().(*Service_AppEngine_); ok { 199 return x.AppEngine 200 } 201 return nil 202} 203 204func (x *Service) GetCloudEndpoints() *Service_CloudEndpoints { 205 if x, ok := x.GetIdentifier().(*Service_CloudEndpoints_); ok { 206 return x.CloudEndpoints 207 } 208 return nil 209} 210 211// Deprecated: Do not use. 212func (x *Service) GetClusterIstio() *Service_ClusterIstio { 213 if x, ok := x.GetIdentifier().(*Service_ClusterIstio_); ok { 214 return x.ClusterIstio 215 } 216 return nil 217} 218 219func (x *Service) GetMeshIstio() *Service_MeshIstio { 220 if x, ok := x.GetIdentifier().(*Service_MeshIstio_); ok { 221 return x.MeshIstio 222 } 223 return nil 224} 225 226func (x *Service) GetTelemetry() *Service_Telemetry { 227 if x != nil { 228 return x.Telemetry 229 } 230 return nil 231} 232 233type isService_Identifier interface { 234 isService_Identifier() 235} 236 237type Service_Custom_ struct { 238 // Custom service type. 239 Custom *Service_Custom `protobuf:"bytes,6,opt,name=custom,proto3,oneof"` 240} 241 242type Service_AppEngine_ struct { 243 // Type used for App Engine services. 244 AppEngine *Service_AppEngine `protobuf:"bytes,7,opt,name=app_engine,json=appEngine,proto3,oneof"` 245} 246 247type Service_CloudEndpoints_ struct { 248 // Type used for Cloud Endpoints services. 249 CloudEndpoints *Service_CloudEndpoints `protobuf:"bytes,8,opt,name=cloud_endpoints,json=cloudEndpoints,proto3,oneof"` 250} 251 252type Service_ClusterIstio_ struct { 253 // Type used for Istio services that live in a Kubernetes cluster. 254 // 255 // Deprecated: Do not use. 256 ClusterIstio *Service_ClusterIstio `protobuf:"bytes,9,opt,name=cluster_istio,json=clusterIstio,proto3,oneof"` 257} 258 259type Service_MeshIstio_ struct { 260 // Type used for Istio services scoped to an Istio mesh. 261 MeshIstio *Service_MeshIstio `protobuf:"bytes,10,opt,name=mesh_istio,json=meshIstio,proto3,oneof"` 262} 263 264func (*Service_Custom_) isService_Identifier() {} 265 266func (*Service_AppEngine_) isService_Identifier() {} 267 268func (*Service_CloudEndpoints_) isService_Identifier() {} 269 270func (*Service_ClusterIstio_) isService_Identifier() {} 271 272func (*Service_MeshIstio_) isService_Identifier() {} 273 274// A Service-Level Objective (SLO) describes a level of desired good service. It 275// consists of a service-level indicator (SLI), a performance goal, and a period 276// over which the objective is to be evaluated against that goal. The SLO can 277// use SLIs defined in a number of different manners. Typical SLOs might include 278// "99% of requests in each rolling week have latency below 200 milliseconds" or 279// "99.5% of requests in each calendar month return successfully." 280type ServiceLevelObjective struct { 281 state protoimpl.MessageState 282 sizeCache protoimpl.SizeCache 283 unknownFields protoimpl.UnknownFields 284 285 // Resource name for this `ServiceLevelObjective`. The format is: 286 // 287 // projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] 288 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 289 // Name used for UI elements listing this SLO. 290 DisplayName string `protobuf:"bytes,11,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 291 // The definition of good service, used to measure and calculate the quality 292 // of the `Service`'s performance with respect to a single aspect of service 293 // quality. 294 ServiceLevelIndicator *ServiceLevelIndicator `protobuf:"bytes,3,opt,name=service_level_indicator,json=serviceLevelIndicator,proto3" json:"service_level_indicator,omitempty"` 295 // The fraction of service that must be good in order for this objective to be 296 // met. `0 < goal <= 0.999`. 297 Goal float64 `protobuf:"fixed64,4,opt,name=goal,proto3" json:"goal,omitempty"` 298 // The time period over which the objective will be evaluated. 299 // 300 // Types that are assignable to Period: 301 // *ServiceLevelObjective_RollingPeriod 302 // *ServiceLevelObjective_CalendarPeriod 303 Period isServiceLevelObjective_Period `protobuf_oneof:"period"` 304} 305 306func (x *ServiceLevelObjective) Reset() { 307 *x = ServiceLevelObjective{} 308 if protoimpl.UnsafeEnabled { 309 mi := &file_google_monitoring_v3_service_proto_msgTypes[1] 310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 311 ms.StoreMessageInfo(mi) 312 } 313} 314 315func (x *ServiceLevelObjective) String() string { 316 return protoimpl.X.MessageStringOf(x) 317} 318 319func (*ServiceLevelObjective) ProtoMessage() {} 320 321func (x *ServiceLevelObjective) ProtoReflect() protoreflect.Message { 322 mi := &file_google_monitoring_v3_service_proto_msgTypes[1] 323 if protoimpl.UnsafeEnabled && x != nil { 324 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 325 if ms.LoadMessageInfo() == nil { 326 ms.StoreMessageInfo(mi) 327 } 328 return ms 329 } 330 return mi.MessageOf(x) 331} 332 333// Deprecated: Use ServiceLevelObjective.ProtoReflect.Descriptor instead. 334func (*ServiceLevelObjective) Descriptor() ([]byte, []int) { 335 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{1} 336} 337 338func (x *ServiceLevelObjective) GetName() string { 339 if x != nil { 340 return x.Name 341 } 342 return "" 343} 344 345func (x *ServiceLevelObjective) GetDisplayName() string { 346 if x != nil { 347 return x.DisplayName 348 } 349 return "" 350} 351 352func (x *ServiceLevelObjective) GetServiceLevelIndicator() *ServiceLevelIndicator { 353 if x != nil { 354 return x.ServiceLevelIndicator 355 } 356 return nil 357} 358 359func (x *ServiceLevelObjective) GetGoal() float64 { 360 if x != nil { 361 return x.Goal 362 } 363 return 0 364} 365 366func (m *ServiceLevelObjective) GetPeriod() isServiceLevelObjective_Period { 367 if m != nil { 368 return m.Period 369 } 370 return nil 371} 372 373func (x *ServiceLevelObjective) GetRollingPeriod() *duration.Duration { 374 if x, ok := x.GetPeriod().(*ServiceLevelObjective_RollingPeriod); ok { 375 return x.RollingPeriod 376 } 377 return nil 378} 379 380func (x *ServiceLevelObjective) GetCalendarPeriod() calendarperiod.CalendarPeriod { 381 if x, ok := x.GetPeriod().(*ServiceLevelObjective_CalendarPeriod); ok { 382 return x.CalendarPeriod 383 } 384 return calendarperiod.CalendarPeriod_CALENDAR_PERIOD_UNSPECIFIED 385} 386 387type isServiceLevelObjective_Period interface { 388 isServiceLevelObjective_Period() 389} 390 391type ServiceLevelObjective_RollingPeriod struct { 392 // A rolling time period, semantically "in the past `<rolling_period>`". 393 // Must be an integer multiple of 1 day no larger than 30 days. 394 RollingPeriod *duration.Duration `protobuf:"bytes,5,opt,name=rolling_period,json=rollingPeriod,proto3,oneof"` 395} 396 397type ServiceLevelObjective_CalendarPeriod struct { 398 // A calendar period, semantically "since the start of the current 399 // `<calendar_period>`". At this time, only `DAY`, `WEEK`, `FORTNIGHT`, and 400 // `MONTH` are supported. 401 CalendarPeriod calendarperiod.CalendarPeriod `protobuf:"varint,6,opt,name=calendar_period,json=calendarPeriod,proto3,enum=google.type.CalendarPeriod,oneof"` 402} 403 404func (*ServiceLevelObjective_RollingPeriod) isServiceLevelObjective_Period() {} 405 406func (*ServiceLevelObjective_CalendarPeriod) isServiceLevelObjective_Period() {} 407 408// A Service-Level Indicator (SLI) describes the "performance" of a service. For 409// some services, the SLI is well-defined. In such cases, the SLI can be 410// described easily by referencing the well-known SLI and providing the needed 411// parameters. Alternatively, a "custom" SLI can be defined with a query to the 412// underlying metric store. An SLI is defined to be `good_service / 413// total_service` over any queried time interval. The value of performance 414// always falls into the range `0 <= performance <= 1`. A custom SLI describes 415// how to compute this ratio, whether this is by dividing values from a pair of 416// time series, cutting a `Distribution` into good and bad counts, or counting 417// time windows in which the service complies with a criterion. For separation 418// of concerns, a single Service-Level Indicator measures performance for only 419// one aspect of service quality, such as fraction of successful queries or 420// fast-enough queries. 421type ServiceLevelIndicator struct { 422 state protoimpl.MessageState 423 sizeCache protoimpl.SizeCache 424 unknownFields protoimpl.UnknownFields 425 426 // Service level indicators can be grouped by whether the "unit" of service 427 // being measured is based on counts of good requests or on counts of good 428 // time windows 429 // 430 // Types that are assignable to Type: 431 // *ServiceLevelIndicator_BasicSli 432 // *ServiceLevelIndicator_RequestBased 433 // *ServiceLevelIndicator_WindowsBased 434 Type isServiceLevelIndicator_Type `protobuf_oneof:"type"` 435} 436 437func (x *ServiceLevelIndicator) Reset() { 438 *x = ServiceLevelIndicator{} 439 if protoimpl.UnsafeEnabled { 440 mi := &file_google_monitoring_v3_service_proto_msgTypes[2] 441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 442 ms.StoreMessageInfo(mi) 443 } 444} 445 446func (x *ServiceLevelIndicator) String() string { 447 return protoimpl.X.MessageStringOf(x) 448} 449 450func (*ServiceLevelIndicator) ProtoMessage() {} 451 452func (x *ServiceLevelIndicator) ProtoReflect() protoreflect.Message { 453 mi := &file_google_monitoring_v3_service_proto_msgTypes[2] 454 if protoimpl.UnsafeEnabled && x != nil { 455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 456 if ms.LoadMessageInfo() == nil { 457 ms.StoreMessageInfo(mi) 458 } 459 return ms 460 } 461 return mi.MessageOf(x) 462} 463 464// Deprecated: Use ServiceLevelIndicator.ProtoReflect.Descriptor instead. 465func (*ServiceLevelIndicator) Descriptor() ([]byte, []int) { 466 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{2} 467} 468 469func (m *ServiceLevelIndicator) GetType() isServiceLevelIndicator_Type { 470 if m != nil { 471 return m.Type 472 } 473 return nil 474} 475 476func (x *ServiceLevelIndicator) GetBasicSli() *BasicSli { 477 if x, ok := x.GetType().(*ServiceLevelIndicator_BasicSli); ok { 478 return x.BasicSli 479 } 480 return nil 481} 482 483func (x *ServiceLevelIndicator) GetRequestBased() *RequestBasedSli { 484 if x, ok := x.GetType().(*ServiceLevelIndicator_RequestBased); ok { 485 return x.RequestBased 486 } 487 return nil 488} 489 490func (x *ServiceLevelIndicator) GetWindowsBased() *WindowsBasedSli { 491 if x, ok := x.GetType().(*ServiceLevelIndicator_WindowsBased); ok { 492 return x.WindowsBased 493 } 494 return nil 495} 496 497type isServiceLevelIndicator_Type interface { 498 isServiceLevelIndicator_Type() 499} 500 501type ServiceLevelIndicator_BasicSli struct { 502 // Basic SLI on a well-known service type. 503 BasicSli *BasicSli `protobuf:"bytes,4,opt,name=basic_sli,json=basicSli,proto3,oneof"` 504} 505 506type ServiceLevelIndicator_RequestBased struct { 507 // Request-based SLIs 508 RequestBased *RequestBasedSli `protobuf:"bytes,1,opt,name=request_based,json=requestBased,proto3,oneof"` 509} 510 511type ServiceLevelIndicator_WindowsBased struct { 512 // Windows-based SLIs 513 WindowsBased *WindowsBasedSli `protobuf:"bytes,2,opt,name=windows_based,json=windowsBased,proto3,oneof"` 514} 515 516func (*ServiceLevelIndicator_BasicSli) isServiceLevelIndicator_Type() {} 517 518func (*ServiceLevelIndicator_RequestBased) isServiceLevelIndicator_Type() {} 519 520func (*ServiceLevelIndicator_WindowsBased) isServiceLevelIndicator_Type() {} 521 522// An SLI measuring performance on a well-known service type. Performance will 523// be computed on the basis of pre-defined metrics. The type of the 524// `service_resource` determines the metrics to use and the 525// `service_resource.labels` and `metric_labels` are used to construct a 526// monitoring filter to filter that metric down to just the data relevant to 527// this service. 528type BasicSli struct { 529 state protoimpl.MessageState 530 sizeCache protoimpl.SizeCache 531 unknownFields protoimpl.UnknownFields 532 533 // OPTIONAL: The set of RPCs to which this SLI is relevant. Telemetry from 534 // other methods will not be used to calculate performance for this SLI. If 535 // omitted, this SLI applies to all the Service's methods. For service types 536 // that don't support breaking down by method, setting this field will result 537 // in an error. 538 Method []string `protobuf:"bytes,7,rep,name=method,proto3" json:"method,omitempty"` 539 // OPTIONAL: The set of locations to which this SLI is relevant. Telemetry 540 // from other locations will not be used to calculate performance for this 541 // SLI. If omitted, this SLI applies to all locations in which the Service has 542 // activity. For service types that don't support breaking down by location, 543 // setting this field will result in an error. 544 Location []string `protobuf:"bytes,8,rep,name=location,proto3" json:"location,omitempty"` 545 // OPTIONAL: The set of API versions to which this SLI is relevant. Telemetry 546 // from other API versions will not be used to calculate performance for this 547 // SLI. If omitted, this SLI applies to all API versions. For service types 548 // that don't support breaking down by version, setting this field will result 549 // in an error. 550 Version []string `protobuf:"bytes,9,rep,name=version,proto3" json:"version,omitempty"` 551 // This SLI can be evaluated on the basis of availability or latency. 552 // 553 // Types that are assignable to SliCriteria: 554 // *BasicSli_Availability 555 // *BasicSli_Latency 556 SliCriteria isBasicSli_SliCriteria `protobuf_oneof:"sli_criteria"` 557} 558 559func (x *BasicSli) Reset() { 560 *x = BasicSli{} 561 if protoimpl.UnsafeEnabled { 562 mi := &file_google_monitoring_v3_service_proto_msgTypes[3] 563 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 564 ms.StoreMessageInfo(mi) 565 } 566} 567 568func (x *BasicSli) String() string { 569 return protoimpl.X.MessageStringOf(x) 570} 571 572func (*BasicSli) ProtoMessage() {} 573 574func (x *BasicSli) ProtoReflect() protoreflect.Message { 575 mi := &file_google_monitoring_v3_service_proto_msgTypes[3] 576 if protoimpl.UnsafeEnabled && x != nil { 577 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 578 if ms.LoadMessageInfo() == nil { 579 ms.StoreMessageInfo(mi) 580 } 581 return ms 582 } 583 return mi.MessageOf(x) 584} 585 586// Deprecated: Use BasicSli.ProtoReflect.Descriptor instead. 587func (*BasicSli) Descriptor() ([]byte, []int) { 588 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3} 589} 590 591func (x *BasicSli) GetMethod() []string { 592 if x != nil { 593 return x.Method 594 } 595 return nil 596} 597 598func (x *BasicSli) GetLocation() []string { 599 if x != nil { 600 return x.Location 601 } 602 return nil 603} 604 605func (x *BasicSli) GetVersion() []string { 606 if x != nil { 607 return x.Version 608 } 609 return nil 610} 611 612func (m *BasicSli) GetSliCriteria() isBasicSli_SliCriteria { 613 if m != nil { 614 return m.SliCriteria 615 } 616 return nil 617} 618 619func (x *BasicSli) GetAvailability() *BasicSli_AvailabilityCriteria { 620 if x, ok := x.GetSliCriteria().(*BasicSli_Availability); ok { 621 return x.Availability 622 } 623 return nil 624} 625 626func (x *BasicSli) GetLatency() *BasicSli_LatencyCriteria { 627 if x, ok := x.GetSliCriteria().(*BasicSli_Latency); ok { 628 return x.Latency 629 } 630 return nil 631} 632 633type isBasicSli_SliCriteria interface { 634 isBasicSli_SliCriteria() 635} 636 637type BasicSli_Availability struct { 638 // Good service is defined to be the count of requests made to this service 639 // that return successfully. 640 Availability *BasicSli_AvailabilityCriteria `protobuf:"bytes,2,opt,name=availability,proto3,oneof"` 641} 642 643type BasicSli_Latency struct { 644 // Good service is defined to be the count of requests made to this service 645 // that are fast enough with respect to `latency.threshold`. 646 Latency *BasicSli_LatencyCriteria `protobuf:"bytes,3,opt,name=latency,proto3,oneof"` 647} 648 649func (*BasicSli_Availability) isBasicSli_SliCriteria() {} 650 651func (*BasicSli_Latency) isBasicSli_SliCriteria() {} 652 653// Range of numerical values, inclusive of `min` and exclusive of `max`. If the 654// open range "< range.max" is desired, set `range.min = -infinity`. If the open 655// range ">= range.min" is desired, set `range.max = infinity`. 656type Range struct { 657 state protoimpl.MessageState 658 sizeCache protoimpl.SizeCache 659 unknownFields protoimpl.UnknownFields 660 661 // Range minimum. 662 Min float64 `protobuf:"fixed64,1,opt,name=min,proto3" json:"min,omitempty"` 663 // Range maximum. 664 Max float64 `protobuf:"fixed64,2,opt,name=max,proto3" json:"max,omitempty"` 665} 666 667func (x *Range) Reset() { 668 *x = Range{} 669 if protoimpl.UnsafeEnabled { 670 mi := &file_google_monitoring_v3_service_proto_msgTypes[4] 671 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 672 ms.StoreMessageInfo(mi) 673 } 674} 675 676func (x *Range) String() string { 677 return protoimpl.X.MessageStringOf(x) 678} 679 680func (*Range) ProtoMessage() {} 681 682func (x *Range) ProtoReflect() protoreflect.Message { 683 mi := &file_google_monitoring_v3_service_proto_msgTypes[4] 684 if protoimpl.UnsafeEnabled && x != nil { 685 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 686 if ms.LoadMessageInfo() == nil { 687 ms.StoreMessageInfo(mi) 688 } 689 return ms 690 } 691 return mi.MessageOf(x) 692} 693 694// Deprecated: Use Range.ProtoReflect.Descriptor instead. 695func (*Range) Descriptor() ([]byte, []int) { 696 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{4} 697} 698 699func (x *Range) GetMin() float64 { 700 if x != nil { 701 return x.Min 702 } 703 return 0 704} 705 706func (x *Range) GetMax() float64 { 707 if x != nil { 708 return x.Max 709 } 710 return 0 711} 712 713// Service Level Indicators for which atomic units of service are counted 714// directly. 715type RequestBasedSli struct { 716 state protoimpl.MessageState 717 sizeCache protoimpl.SizeCache 718 unknownFields protoimpl.UnknownFields 719 720 // The means to compute a ratio of `good_service` to `total_service`. 721 // 722 // Types that are assignable to Method: 723 // *RequestBasedSli_GoodTotalRatio 724 // *RequestBasedSli_DistributionCut 725 Method isRequestBasedSli_Method `protobuf_oneof:"method"` 726} 727 728func (x *RequestBasedSli) Reset() { 729 *x = RequestBasedSli{} 730 if protoimpl.UnsafeEnabled { 731 mi := &file_google_monitoring_v3_service_proto_msgTypes[5] 732 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 733 ms.StoreMessageInfo(mi) 734 } 735} 736 737func (x *RequestBasedSli) String() string { 738 return protoimpl.X.MessageStringOf(x) 739} 740 741func (*RequestBasedSli) ProtoMessage() {} 742 743func (x *RequestBasedSli) ProtoReflect() protoreflect.Message { 744 mi := &file_google_monitoring_v3_service_proto_msgTypes[5] 745 if protoimpl.UnsafeEnabled && x != nil { 746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 747 if ms.LoadMessageInfo() == nil { 748 ms.StoreMessageInfo(mi) 749 } 750 return ms 751 } 752 return mi.MessageOf(x) 753} 754 755// Deprecated: Use RequestBasedSli.ProtoReflect.Descriptor instead. 756func (*RequestBasedSli) Descriptor() ([]byte, []int) { 757 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{5} 758} 759 760func (m *RequestBasedSli) GetMethod() isRequestBasedSli_Method { 761 if m != nil { 762 return m.Method 763 } 764 return nil 765} 766 767func (x *RequestBasedSli) GetGoodTotalRatio() *TimeSeriesRatio { 768 if x, ok := x.GetMethod().(*RequestBasedSli_GoodTotalRatio); ok { 769 return x.GoodTotalRatio 770 } 771 return nil 772} 773 774func (x *RequestBasedSli) GetDistributionCut() *DistributionCut { 775 if x, ok := x.GetMethod().(*RequestBasedSli_DistributionCut); ok { 776 return x.DistributionCut 777 } 778 return nil 779} 780 781type isRequestBasedSli_Method interface { 782 isRequestBasedSli_Method() 783} 784 785type RequestBasedSli_GoodTotalRatio struct { 786 // `good_total_ratio` is used when the ratio of `good_service` to 787 // `total_service` is computed from two `TimeSeries`. 788 GoodTotalRatio *TimeSeriesRatio `protobuf:"bytes,1,opt,name=good_total_ratio,json=goodTotalRatio,proto3,oneof"` 789} 790 791type RequestBasedSli_DistributionCut struct { 792 // `distribution_cut` is used when `good_service` is a count of values 793 // aggregated in a `Distribution` that fall into a good range. The 794 // `total_service` is the total count of all values aggregated in the 795 // `Distribution`. 796 DistributionCut *DistributionCut `protobuf:"bytes,3,opt,name=distribution_cut,json=distributionCut,proto3,oneof"` 797} 798 799func (*RequestBasedSli_GoodTotalRatio) isRequestBasedSli_Method() {} 800 801func (*RequestBasedSli_DistributionCut) isRequestBasedSli_Method() {} 802 803// A `TimeSeriesRatio` specifies two `TimeSeries` to use for computing the 804// `good_service / total_service` ratio. The specified `TimeSeries` must have 805// `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = 806// DELTA` or `MetricKind = CUMULATIVE`. The `TimeSeriesRatio` must specify 807// exactly two of good, bad, and total, and the relationship `good_service + 808// bad_service = total_service` will be assumed. 809type TimeSeriesRatio struct { 810 state protoimpl.MessageState 811 sizeCache protoimpl.SizeCache 812 unknownFields protoimpl.UnknownFields 813 814 // A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) 815 // specifying a `TimeSeries` quantifying good service provided. Must have 816 // `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = 817 // DELTA` or `MetricKind = CUMULATIVE`. 818 GoodServiceFilter string `protobuf:"bytes,4,opt,name=good_service_filter,json=goodServiceFilter,proto3" json:"good_service_filter,omitempty"` 819 // A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) 820 // specifying a `TimeSeries` quantifying bad service, either demanded service 821 // that was not provided or demanded service that was of inadequate quality. 822 // Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have 823 // `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. 824 BadServiceFilter string `protobuf:"bytes,5,opt,name=bad_service_filter,json=badServiceFilter,proto3" json:"bad_service_filter,omitempty"` 825 // A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) 826 // specifying a `TimeSeries` quantifying total demanded service. Must have 827 // `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind = 828 // DELTA` or `MetricKind = CUMULATIVE`. 829 TotalServiceFilter string `protobuf:"bytes,6,opt,name=total_service_filter,json=totalServiceFilter,proto3" json:"total_service_filter,omitempty"` 830} 831 832func (x *TimeSeriesRatio) Reset() { 833 *x = TimeSeriesRatio{} 834 if protoimpl.UnsafeEnabled { 835 mi := &file_google_monitoring_v3_service_proto_msgTypes[6] 836 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 837 ms.StoreMessageInfo(mi) 838 } 839} 840 841func (x *TimeSeriesRatio) String() string { 842 return protoimpl.X.MessageStringOf(x) 843} 844 845func (*TimeSeriesRatio) ProtoMessage() {} 846 847func (x *TimeSeriesRatio) ProtoReflect() protoreflect.Message { 848 mi := &file_google_monitoring_v3_service_proto_msgTypes[6] 849 if protoimpl.UnsafeEnabled && x != nil { 850 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 851 if ms.LoadMessageInfo() == nil { 852 ms.StoreMessageInfo(mi) 853 } 854 return ms 855 } 856 return mi.MessageOf(x) 857} 858 859// Deprecated: Use TimeSeriesRatio.ProtoReflect.Descriptor instead. 860func (*TimeSeriesRatio) Descriptor() ([]byte, []int) { 861 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{6} 862} 863 864func (x *TimeSeriesRatio) GetGoodServiceFilter() string { 865 if x != nil { 866 return x.GoodServiceFilter 867 } 868 return "" 869} 870 871func (x *TimeSeriesRatio) GetBadServiceFilter() string { 872 if x != nil { 873 return x.BadServiceFilter 874 } 875 return "" 876} 877 878func (x *TimeSeriesRatio) GetTotalServiceFilter() string { 879 if x != nil { 880 return x.TotalServiceFilter 881 } 882 return "" 883} 884 885// A `DistributionCut` defines a `TimeSeries` and thresholds used for measuring 886// good service and total service. The `TimeSeries` must have `ValueType = 887// DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. The 888// computed `good_service` will be the count of values x in the `Distribution` 889// such that `range.min <= x < range.max`. 890type DistributionCut struct { 891 state protoimpl.MessageState 892 sizeCache protoimpl.SizeCache 893 unknownFields protoimpl.UnknownFields 894 895 // A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) 896 // specifying a `TimeSeries` aggregating values. Must have `ValueType = 897 // DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. 898 DistributionFilter string `protobuf:"bytes,4,opt,name=distribution_filter,json=distributionFilter,proto3" json:"distribution_filter,omitempty"` 899 // Range of values considered "good." For a one-sided range, set one bound to 900 // an infinite value. 901 Range *Range `protobuf:"bytes,5,opt,name=range,proto3" json:"range,omitempty"` 902} 903 904func (x *DistributionCut) Reset() { 905 *x = DistributionCut{} 906 if protoimpl.UnsafeEnabled { 907 mi := &file_google_monitoring_v3_service_proto_msgTypes[7] 908 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 909 ms.StoreMessageInfo(mi) 910 } 911} 912 913func (x *DistributionCut) String() string { 914 return protoimpl.X.MessageStringOf(x) 915} 916 917func (*DistributionCut) ProtoMessage() {} 918 919func (x *DistributionCut) ProtoReflect() protoreflect.Message { 920 mi := &file_google_monitoring_v3_service_proto_msgTypes[7] 921 if protoimpl.UnsafeEnabled && x != nil { 922 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 923 if ms.LoadMessageInfo() == nil { 924 ms.StoreMessageInfo(mi) 925 } 926 return ms 927 } 928 return mi.MessageOf(x) 929} 930 931// Deprecated: Use DistributionCut.ProtoReflect.Descriptor instead. 932func (*DistributionCut) Descriptor() ([]byte, []int) { 933 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{7} 934} 935 936func (x *DistributionCut) GetDistributionFilter() string { 937 if x != nil { 938 return x.DistributionFilter 939 } 940 return "" 941} 942 943func (x *DistributionCut) GetRange() *Range { 944 if x != nil { 945 return x.Range 946 } 947 return nil 948} 949 950// A `WindowsBasedSli` defines `good_service` as the count of time windows for 951// which the provided service was of good quality. Criteria for determining 952// if service was good are embedded in the `window_criterion`. 953type WindowsBasedSli struct { 954 state protoimpl.MessageState 955 sizeCache protoimpl.SizeCache 956 unknownFields protoimpl.UnknownFields 957 958 // The criterion to use for evaluating window goodness. 959 // 960 // Types that are assignable to WindowCriterion: 961 // *WindowsBasedSli_GoodBadMetricFilter 962 // *WindowsBasedSli_GoodTotalRatioThreshold 963 // *WindowsBasedSli_MetricMeanInRange 964 // *WindowsBasedSli_MetricSumInRange 965 WindowCriterion isWindowsBasedSli_WindowCriterion `protobuf_oneof:"window_criterion"` 966 // Duration over which window quality is evaluated. Must be an integer 967 // fraction of a day and at least `60s`. 968 WindowPeriod *duration.Duration `protobuf:"bytes,4,opt,name=window_period,json=windowPeriod,proto3" json:"window_period,omitempty"` 969} 970 971func (x *WindowsBasedSli) Reset() { 972 *x = WindowsBasedSli{} 973 if protoimpl.UnsafeEnabled { 974 mi := &file_google_monitoring_v3_service_proto_msgTypes[8] 975 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 976 ms.StoreMessageInfo(mi) 977 } 978} 979 980func (x *WindowsBasedSli) String() string { 981 return protoimpl.X.MessageStringOf(x) 982} 983 984func (*WindowsBasedSli) ProtoMessage() {} 985 986func (x *WindowsBasedSli) ProtoReflect() protoreflect.Message { 987 mi := &file_google_monitoring_v3_service_proto_msgTypes[8] 988 if protoimpl.UnsafeEnabled && x != nil { 989 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 990 if ms.LoadMessageInfo() == nil { 991 ms.StoreMessageInfo(mi) 992 } 993 return ms 994 } 995 return mi.MessageOf(x) 996} 997 998// Deprecated: Use WindowsBasedSli.ProtoReflect.Descriptor instead. 999func (*WindowsBasedSli) Descriptor() ([]byte, []int) { 1000 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8} 1001} 1002 1003func (m *WindowsBasedSli) GetWindowCriterion() isWindowsBasedSli_WindowCriterion { 1004 if m != nil { 1005 return m.WindowCriterion 1006 } 1007 return nil 1008} 1009 1010func (x *WindowsBasedSli) GetGoodBadMetricFilter() string { 1011 if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_GoodBadMetricFilter); ok { 1012 return x.GoodBadMetricFilter 1013 } 1014 return "" 1015} 1016 1017func (x *WindowsBasedSli) GetGoodTotalRatioThreshold() *WindowsBasedSli_PerformanceThreshold { 1018 if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_GoodTotalRatioThreshold); ok { 1019 return x.GoodTotalRatioThreshold 1020 } 1021 return nil 1022} 1023 1024func (x *WindowsBasedSli) GetMetricMeanInRange() *WindowsBasedSli_MetricRange { 1025 if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_MetricMeanInRange); ok { 1026 return x.MetricMeanInRange 1027 } 1028 return nil 1029} 1030 1031func (x *WindowsBasedSli) GetMetricSumInRange() *WindowsBasedSli_MetricRange { 1032 if x, ok := x.GetWindowCriterion().(*WindowsBasedSli_MetricSumInRange); ok { 1033 return x.MetricSumInRange 1034 } 1035 return nil 1036} 1037 1038func (x *WindowsBasedSli) GetWindowPeriod() *duration.Duration { 1039 if x != nil { 1040 return x.WindowPeriod 1041 } 1042 return nil 1043} 1044 1045type isWindowsBasedSli_WindowCriterion interface { 1046 isWindowsBasedSli_WindowCriterion() 1047} 1048 1049type WindowsBasedSli_GoodBadMetricFilter struct { 1050 // A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) 1051 // specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if 1052 // any `true` values appear in the window. 1053 GoodBadMetricFilter string `protobuf:"bytes,5,opt,name=good_bad_metric_filter,json=goodBadMetricFilter,proto3,oneof"` 1054} 1055 1056type WindowsBasedSli_GoodTotalRatioThreshold struct { 1057 // A window is good if its `performance` is high enough. 1058 GoodTotalRatioThreshold *WindowsBasedSli_PerformanceThreshold `protobuf:"bytes,2,opt,name=good_total_ratio_threshold,json=goodTotalRatioThreshold,proto3,oneof"` 1059} 1060 1061type WindowsBasedSli_MetricMeanInRange struct { 1062 // A window is good if the metric's value is in a good range, averaged 1063 // across returned streams. 1064 MetricMeanInRange *WindowsBasedSli_MetricRange `protobuf:"bytes,6,opt,name=metric_mean_in_range,json=metricMeanInRange,proto3,oneof"` 1065} 1066 1067type WindowsBasedSli_MetricSumInRange struct { 1068 // A window is good if the metric's value is in a good range, summed across 1069 // returned streams. 1070 MetricSumInRange *WindowsBasedSli_MetricRange `protobuf:"bytes,7,opt,name=metric_sum_in_range,json=metricSumInRange,proto3,oneof"` 1071} 1072 1073func (*WindowsBasedSli_GoodBadMetricFilter) isWindowsBasedSli_WindowCriterion() {} 1074 1075func (*WindowsBasedSli_GoodTotalRatioThreshold) isWindowsBasedSli_WindowCriterion() {} 1076 1077func (*WindowsBasedSli_MetricMeanInRange) isWindowsBasedSli_WindowCriterion() {} 1078 1079func (*WindowsBasedSli_MetricSumInRange) isWindowsBasedSli_WindowCriterion() {} 1080 1081// Custom view of service telemetry. Currently a place-holder pending final 1082// design. 1083type Service_Custom struct { 1084 state protoimpl.MessageState 1085 sizeCache protoimpl.SizeCache 1086 unknownFields protoimpl.UnknownFields 1087} 1088 1089func (x *Service_Custom) Reset() { 1090 *x = Service_Custom{} 1091 if protoimpl.UnsafeEnabled { 1092 mi := &file_google_monitoring_v3_service_proto_msgTypes[9] 1093 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1094 ms.StoreMessageInfo(mi) 1095 } 1096} 1097 1098func (x *Service_Custom) String() string { 1099 return protoimpl.X.MessageStringOf(x) 1100} 1101 1102func (*Service_Custom) ProtoMessage() {} 1103 1104func (x *Service_Custom) ProtoReflect() protoreflect.Message { 1105 mi := &file_google_monitoring_v3_service_proto_msgTypes[9] 1106 if protoimpl.UnsafeEnabled && x != nil { 1107 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1108 if ms.LoadMessageInfo() == nil { 1109 ms.StoreMessageInfo(mi) 1110 } 1111 return ms 1112 } 1113 return mi.MessageOf(x) 1114} 1115 1116// Deprecated: Use Service_Custom.ProtoReflect.Descriptor instead. 1117func (*Service_Custom) Descriptor() ([]byte, []int) { 1118 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 0} 1119} 1120 1121// App Engine service. Learn more at https://cloud.google.com/appengine. 1122type Service_AppEngine struct { 1123 state protoimpl.MessageState 1124 sizeCache protoimpl.SizeCache 1125 unknownFields protoimpl.UnknownFields 1126 1127 // The ID of the App Engine module underlying this service. Corresponds to 1128 // the `module_id` resource label in the `gae_app` monitored resource: 1129 // https://cloud.google.com/monitoring/api/resources#tag_gae_app 1130 ModuleId string `protobuf:"bytes,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"` 1131} 1132 1133func (x *Service_AppEngine) Reset() { 1134 *x = Service_AppEngine{} 1135 if protoimpl.UnsafeEnabled { 1136 mi := &file_google_monitoring_v3_service_proto_msgTypes[10] 1137 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1138 ms.StoreMessageInfo(mi) 1139 } 1140} 1141 1142func (x *Service_AppEngine) String() string { 1143 return protoimpl.X.MessageStringOf(x) 1144} 1145 1146func (*Service_AppEngine) ProtoMessage() {} 1147 1148func (x *Service_AppEngine) ProtoReflect() protoreflect.Message { 1149 mi := &file_google_monitoring_v3_service_proto_msgTypes[10] 1150 if protoimpl.UnsafeEnabled && x != nil { 1151 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1152 if ms.LoadMessageInfo() == nil { 1153 ms.StoreMessageInfo(mi) 1154 } 1155 return ms 1156 } 1157 return mi.MessageOf(x) 1158} 1159 1160// Deprecated: Use Service_AppEngine.ProtoReflect.Descriptor instead. 1161func (*Service_AppEngine) Descriptor() ([]byte, []int) { 1162 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 1} 1163} 1164 1165func (x *Service_AppEngine) GetModuleId() string { 1166 if x != nil { 1167 return x.ModuleId 1168 } 1169 return "" 1170} 1171 1172// Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints. 1173type Service_CloudEndpoints struct { 1174 state protoimpl.MessageState 1175 sizeCache protoimpl.SizeCache 1176 unknownFields protoimpl.UnknownFields 1177 1178 // The name of the Cloud Endpoints service underlying this service. 1179 // Corresponds to the `service` resource label in the `api` monitored 1180 // resource: https://cloud.google.com/monitoring/api/resources#tag_api 1181 Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` 1182} 1183 1184func (x *Service_CloudEndpoints) Reset() { 1185 *x = Service_CloudEndpoints{} 1186 if protoimpl.UnsafeEnabled { 1187 mi := &file_google_monitoring_v3_service_proto_msgTypes[11] 1188 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1189 ms.StoreMessageInfo(mi) 1190 } 1191} 1192 1193func (x *Service_CloudEndpoints) String() string { 1194 return protoimpl.X.MessageStringOf(x) 1195} 1196 1197func (*Service_CloudEndpoints) ProtoMessage() {} 1198 1199func (x *Service_CloudEndpoints) ProtoReflect() protoreflect.Message { 1200 mi := &file_google_monitoring_v3_service_proto_msgTypes[11] 1201 if protoimpl.UnsafeEnabled && x != nil { 1202 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1203 if ms.LoadMessageInfo() == nil { 1204 ms.StoreMessageInfo(mi) 1205 } 1206 return ms 1207 } 1208 return mi.MessageOf(x) 1209} 1210 1211// Deprecated: Use Service_CloudEndpoints.ProtoReflect.Descriptor instead. 1212func (*Service_CloudEndpoints) Descriptor() ([]byte, []int) { 1213 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 2} 1214} 1215 1216func (x *Service_CloudEndpoints) GetService() string { 1217 if x != nil { 1218 return x.Service 1219 } 1220 return "" 1221} 1222 1223// Istio service scoped to a single Kubernetes cluster. Learn more at 1224// http://istio.io. 1225// 1226// Deprecated: Do not use. 1227type Service_ClusterIstio struct { 1228 state protoimpl.MessageState 1229 sizeCache protoimpl.SizeCache 1230 unknownFields protoimpl.UnknownFields 1231 1232 // The location of the Kubernetes cluster in which this Istio service is 1233 // defined. Corresponds to the `location` resource label in `k8s_cluster` 1234 // resources. 1235 Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` 1236 // The name of the Kubernetes cluster in which this Istio service is 1237 // defined. Corresponds to the `cluster_name` resource label in 1238 // `k8s_cluster` resources. 1239 ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` 1240 // The namespace of the Istio service underlying this service. Corresponds 1241 // to the `destination_service_namespace` metric label in Istio metrics. 1242 ServiceNamespace string `protobuf:"bytes,3,opt,name=service_namespace,json=serviceNamespace,proto3" json:"service_namespace,omitempty"` 1243 // The name of the Istio service underlying this service. Corresponds to the 1244 // `destination_service_name` metric label in Istio metrics. 1245 ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` 1246} 1247 1248func (x *Service_ClusterIstio) Reset() { 1249 *x = Service_ClusterIstio{} 1250 if protoimpl.UnsafeEnabled { 1251 mi := &file_google_monitoring_v3_service_proto_msgTypes[12] 1252 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1253 ms.StoreMessageInfo(mi) 1254 } 1255} 1256 1257func (x *Service_ClusterIstio) String() string { 1258 return protoimpl.X.MessageStringOf(x) 1259} 1260 1261func (*Service_ClusterIstio) ProtoMessage() {} 1262 1263func (x *Service_ClusterIstio) ProtoReflect() protoreflect.Message { 1264 mi := &file_google_monitoring_v3_service_proto_msgTypes[12] 1265 if protoimpl.UnsafeEnabled && x != nil { 1266 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1267 if ms.LoadMessageInfo() == nil { 1268 ms.StoreMessageInfo(mi) 1269 } 1270 return ms 1271 } 1272 return mi.MessageOf(x) 1273} 1274 1275// Deprecated: Use Service_ClusterIstio.ProtoReflect.Descriptor instead. 1276func (*Service_ClusterIstio) Descriptor() ([]byte, []int) { 1277 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 3} 1278} 1279 1280func (x *Service_ClusterIstio) GetLocation() string { 1281 if x != nil { 1282 return x.Location 1283 } 1284 return "" 1285} 1286 1287func (x *Service_ClusterIstio) GetClusterName() string { 1288 if x != nil { 1289 return x.ClusterName 1290 } 1291 return "" 1292} 1293 1294func (x *Service_ClusterIstio) GetServiceNamespace() string { 1295 if x != nil { 1296 return x.ServiceNamespace 1297 } 1298 return "" 1299} 1300 1301func (x *Service_ClusterIstio) GetServiceName() string { 1302 if x != nil { 1303 return x.ServiceName 1304 } 1305 return "" 1306} 1307 1308// Istio service scoped to an Istio mesh 1309type Service_MeshIstio struct { 1310 state protoimpl.MessageState 1311 sizeCache protoimpl.SizeCache 1312 unknownFields protoimpl.UnknownFields 1313 1314 // Identifier for the mesh in which this Istio service is defined. 1315 // Corresponds to the `mesh_uid` metric label in Istio metrics. 1316 MeshUid string `protobuf:"bytes,1,opt,name=mesh_uid,json=meshUid,proto3" json:"mesh_uid,omitempty"` 1317 // The namespace of the Istio service underlying this service. Corresponds 1318 // to the `destination_service_namespace` metric label in Istio metrics. 1319 ServiceNamespace string `protobuf:"bytes,3,opt,name=service_namespace,json=serviceNamespace,proto3" json:"service_namespace,omitempty"` 1320 // The name of the Istio service underlying this service. Corresponds to the 1321 // `destination_service_name` metric label in Istio metrics. 1322 ServiceName string `protobuf:"bytes,4,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` 1323} 1324 1325func (x *Service_MeshIstio) Reset() { 1326 *x = Service_MeshIstio{} 1327 if protoimpl.UnsafeEnabled { 1328 mi := &file_google_monitoring_v3_service_proto_msgTypes[13] 1329 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1330 ms.StoreMessageInfo(mi) 1331 } 1332} 1333 1334func (x *Service_MeshIstio) String() string { 1335 return protoimpl.X.MessageStringOf(x) 1336} 1337 1338func (*Service_MeshIstio) ProtoMessage() {} 1339 1340func (x *Service_MeshIstio) ProtoReflect() protoreflect.Message { 1341 mi := &file_google_monitoring_v3_service_proto_msgTypes[13] 1342 if protoimpl.UnsafeEnabled && x != nil { 1343 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1344 if ms.LoadMessageInfo() == nil { 1345 ms.StoreMessageInfo(mi) 1346 } 1347 return ms 1348 } 1349 return mi.MessageOf(x) 1350} 1351 1352// Deprecated: Use Service_MeshIstio.ProtoReflect.Descriptor instead. 1353func (*Service_MeshIstio) Descriptor() ([]byte, []int) { 1354 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 4} 1355} 1356 1357func (x *Service_MeshIstio) GetMeshUid() string { 1358 if x != nil { 1359 return x.MeshUid 1360 } 1361 return "" 1362} 1363 1364func (x *Service_MeshIstio) GetServiceNamespace() string { 1365 if x != nil { 1366 return x.ServiceNamespace 1367 } 1368 return "" 1369} 1370 1371func (x *Service_MeshIstio) GetServiceName() string { 1372 if x != nil { 1373 return x.ServiceName 1374 } 1375 return "" 1376} 1377 1378// Configuration for how to query telemetry on a Service. 1379type Service_Telemetry struct { 1380 state protoimpl.MessageState 1381 sizeCache protoimpl.SizeCache 1382 unknownFields protoimpl.UnknownFields 1383 1384 // The full name of the resource that defines this service. Formatted as 1385 // described in https://cloud.google.com/apis/design/resource_names. 1386 ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` 1387} 1388 1389func (x *Service_Telemetry) Reset() { 1390 *x = Service_Telemetry{} 1391 if protoimpl.UnsafeEnabled { 1392 mi := &file_google_monitoring_v3_service_proto_msgTypes[14] 1393 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1394 ms.StoreMessageInfo(mi) 1395 } 1396} 1397 1398func (x *Service_Telemetry) String() string { 1399 return protoimpl.X.MessageStringOf(x) 1400} 1401 1402func (*Service_Telemetry) ProtoMessage() {} 1403 1404func (x *Service_Telemetry) ProtoReflect() protoreflect.Message { 1405 mi := &file_google_monitoring_v3_service_proto_msgTypes[14] 1406 if protoimpl.UnsafeEnabled && x != nil { 1407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1408 if ms.LoadMessageInfo() == nil { 1409 ms.StoreMessageInfo(mi) 1410 } 1411 return ms 1412 } 1413 return mi.MessageOf(x) 1414} 1415 1416// Deprecated: Use Service_Telemetry.ProtoReflect.Descriptor instead. 1417func (*Service_Telemetry) Descriptor() ([]byte, []int) { 1418 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{0, 5} 1419} 1420 1421func (x *Service_Telemetry) GetResourceName() string { 1422 if x != nil { 1423 return x.ResourceName 1424 } 1425 return "" 1426} 1427 1428// Future parameters for the availability SLI. 1429type BasicSli_AvailabilityCriteria struct { 1430 state protoimpl.MessageState 1431 sizeCache protoimpl.SizeCache 1432 unknownFields protoimpl.UnknownFields 1433} 1434 1435func (x *BasicSli_AvailabilityCriteria) Reset() { 1436 *x = BasicSli_AvailabilityCriteria{} 1437 if protoimpl.UnsafeEnabled { 1438 mi := &file_google_monitoring_v3_service_proto_msgTypes[15] 1439 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1440 ms.StoreMessageInfo(mi) 1441 } 1442} 1443 1444func (x *BasicSli_AvailabilityCriteria) String() string { 1445 return protoimpl.X.MessageStringOf(x) 1446} 1447 1448func (*BasicSli_AvailabilityCriteria) ProtoMessage() {} 1449 1450func (x *BasicSli_AvailabilityCriteria) ProtoReflect() protoreflect.Message { 1451 mi := &file_google_monitoring_v3_service_proto_msgTypes[15] 1452 if protoimpl.UnsafeEnabled && x != nil { 1453 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1454 if ms.LoadMessageInfo() == nil { 1455 ms.StoreMessageInfo(mi) 1456 } 1457 return ms 1458 } 1459 return mi.MessageOf(x) 1460} 1461 1462// Deprecated: Use BasicSli_AvailabilityCriteria.ProtoReflect.Descriptor instead. 1463func (*BasicSli_AvailabilityCriteria) Descriptor() ([]byte, []int) { 1464 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3, 0} 1465} 1466 1467// Parameters for a latency threshold SLI. 1468type BasicSli_LatencyCriteria struct { 1469 state protoimpl.MessageState 1470 sizeCache protoimpl.SizeCache 1471 unknownFields protoimpl.UnknownFields 1472 1473 // Good service is defined to be the count of requests made to this service 1474 // that return in no more than `threshold`. 1475 Threshold *duration.Duration `protobuf:"bytes,3,opt,name=threshold,proto3" json:"threshold,omitempty"` 1476} 1477 1478func (x *BasicSli_LatencyCriteria) Reset() { 1479 *x = BasicSli_LatencyCriteria{} 1480 if protoimpl.UnsafeEnabled { 1481 mi := &file_google_monitoring_v3_service_proto_msgTypes[16] 1482 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1483 ms.StoreMessageInfo(mi) 1484 } 1485} 1486 1487func (x *BasicSli_LatencyCriteria) String() string { 1488 return protoimpl.X.MessageStringOf(x) 1489} 1490 1491func (*BasicSli_LatencyCriteria) ProtoMessage() {} 1492 1493func (x *BasicSli_LatencyCriteria) ProtoReflect() protoreflect.Message { 1494 mi := &file_google_monitoring_v3_service_proto_msgTypes[16] 1495 if protoimpl.UnsafeEnabled && x != nil { 1496 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1497 if ms.LoadMessageInfo() == nil { 1498 ms.StoreMessageInfo(mi) 1499 } 1500 return ms 1501 } 1502 return mi.MessageOf(x) 1503} 1504 1505// Deprecated: Use BasicSli_LatencyCriteria.ProtoReflect.Descriptor instead. 1506func (*BasicSli_LatencyCriteria) Descriptor() ([]byte, []int) { 1507 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{3, 1} 1508} 1509 1510func (x *BasicSli_LatencyCriteria) GetThreshold() *duration.Duration { 1511 if x != nil { 1512 return x.Threshold 1513 } 1514 return nil 1515} 1516 1517// A `PerformanceThreshold` is used when each window is good when that window 1518// has a sufficiently high `performance`. 1519type WindowsBasedSli_PerformanceThreshold struct { 1520 state protoimpl.MessageState 1521 sizeCache protoimpl.SizeCache 1522 unknownFields protoimpl.UnknownFields 1523 1524 // The means, either a request-based SLI or a basic SLI, by which to compute 1525 // performance over a window. 1526 // 1527 // Types that are assignable to Type: 1528 // *WindowsBasedSli_PerformanceThreshold_Performance 1529 // *WindowsBasedSli_PerformanceThreshold_BasicSliPerformance 1530 Type isWindowsBasedSli_PerformanceThreshold_Type `protobuf_oneof:"type"` 1531 // If window `performance >= threshold`, the window is counted as good. 1532 Threshold float64 `protobuf:"fixed64,2,opt,name=threshold,proto3" json:"threshold,omitempty"` 1533} 1534 1535func (x *WindowsBasedSli_PerformanceThreshold) Reset() { 1536 *x = WindowsBasedSli_PerformanceThreshold{} 1537 if protoimpl.UnsafeEnabled { 1538 mi := &file_google_monitoring_v3_service_proto_msgTypes[17] 1539 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1540 ms.StoreMessageInfo(mi) 1541 } 1542} 1543 1544func (x *WindowsBasedSli_PerformanceThreshold) String() string { 1545 return protoimpl.X.MessageStringOf(x) 1546} 1547 1548func (*WindowsBasedSli_PerformanceThreshold) ProtoMessage() {} 1549 1550func (x *WindowsBasedSli_PerformanceThreshold) ProtoReflect() protoreflect.Message { 1551 mi := &file_google_monitoring_v3_service_proto_msgTypes[17] 1552 if protoimpl.UnsafeEnabled && x != nil { 1553 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1554 if ms.LoadMessageInfo() == nil { 1555 ms.StoreMessageInfo(mi) 1556 } 1557 return ms 1558 } 1559 return mi.MessageOf(x) 1560} 1561 1562// Deprecated: Use WindowsBasedSli_PerformanceThreshold.ProtoReflect.Descriptor instead. 1563func (*WindowsBasedSli_PerformanceThreshold) Descriptor() ([]byte, []int) { 1564 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8, 0} 1565} 1566 1567func (m *WindowsBasedSli_PerformanceThreshold) GetType() isWindowsBasedSli_PerformanceThreshold_Type { 1568 if m != nil { 1569 return m.Type 1570 } 1571 return nil 1572} 1573 1574func (x *WindowsBasedSli_PerformanceThreshold) GetPerformance() *RequestBasedSli { 1575 if x, ok := x.GetType().(*WindowsBasedSli_PerformanceThreshold_Performance); ok { 1576 return x.Performance 1577 } 1578 return nil 1579} 1580 1581func (x *WindowsBasedSli_PerformanceThreshold) GetBasicSliPerformance() *BasicSli { 1582 if x, ok := x.GetType().(*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance); ok { 1583 return x.BasicSliPerformance 1584 } 1585 return nil 1586} 1587 1588func (x *WindowsBasedSli_PerformanceThreshold) GetThreshold() float64 { 1589 if x != nil { 1590 return x.Threshold 1591 } 1592 return 0 1593} 1594 1595type isWindowsBasedSli_PerformanceThreshold_Type interface { 1596 isWindowsBasedSli_PerformanceThreshold_Type() 1597} 1598 1599type WindowsBasedSli_PerformanceThreshold_Performance struct { 1600 // `RequestBasedSli` to evaluate to judge window quality. 1601 Performance *RequestBasedSli `protobuf:"bytes,1,opt,name=performance,proto3,oneof"` 1602} 1603 1604type WindowsBasedSli_PerformanceThreshold_BasicSliPerformance struct { 1605 // `BasicSli` to evaluate to judge window quality. 1606 BasicSliPerformance *BasicSli `protobuf:"bytes,3,opt,name=basic_sli_performance,json=basicSliPerformance,proto3,oneof"` 1607} 1608 1609func (*WindowsBasedSli_PerformanceThreshold_Performance) isWindowsBasedSli_PerformanceThreshold_Type() { 1610} 1611 1612func (*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance) isWindowsBasedSli_PerformanceThreshold_Type() { 1613} 1614 1615// A `MetricRange` is used when each window is good when the value x of a 1616// single `TimeSeries` satisfies `range.min <= x < range.max`. The provided 1617// `TimeSeries` must have `ValueType = INT64` or `ValueType = DOUBLE` and 1618// `MetricKind = GAUGE`. 1619type WindowsBasedSli_MetricRange struct { 1620 state protoimpl.MessageState 1621 sizeCache protoimpl.SizeCache 1622 unknownFields protoimpl.UnknownFields 1623 1624 // A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) 1625 // specifying the `TimeSeries` to use for evaluating window quality. 1626 TimeSeries string `protobuf:"bytes,1,opt,name=time_series,json=timeSeries,proto3" json:"time_series,omitempty"` 1627 // Range of values considered "good." For a one-sided range, set one bound 1628 // to an infinite value. 1629 Range *Range `protobuf:"bytes,4,opt,name=range,proto3" json:"range,omitempty"` 1630} 1631 1632func (x *WindowsBasedSli_MetricRange) Reset() { 1633 *x = WindowsBasedSli_MetricRange{} 1634 if protoimpl.UnsafeEnabled { 1635 mi := &file_google_monitoring_v3_service_proto_msgTypes[18] 1636 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1637 ms.StoreMessageInfo(mi) 1638 } 1639} 1640 1641func (x *WindowsBasedSli_MetricRange) String() string { 1642 return protoimpl.X.MessageStringOf(x) 1643} 1644 1645func (*WindowsBasedSli_MetricRange) ProtoMessage() {} 1646 1647func (x *WindowsBasedSli_MetricRange) ProtoReflect() protoreflect.Message { 1648 mi := &file_google_monitoring_v3_service_proto_msgTypes[18] 1649 if protoimpl.UnsafeEnabled && x != nil { 1650 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1651 if ms.LoadMessageInfo() == nil { 1652 ms.StoreMessageInfo(mi) 1653 } 1654 return ms 1655 } 1656 return mi.MessageOf(x) 1657} 1658 1659// Deprecated: Use WindowsBasedSli_MetricRange.ProtoReflect.Descriptor instead. 1660func (*WindowsBasedSli_MetricRange) Descriptor() ([]byte, []int) { 1661 return file_google_monitoring_v3_service_proto_rawDescGZIP(), []int{8, 1} 1662} 1663 1664func (x *WindowsBasedSli_MetricRange) GetTimeSeries() string { 1665 if x != nil { 1666 return x.TimeSeries 1667 } 1668 return "" 1669} 1670 1671func (x *WindowsBasedSli_MetricRange) GetRange() *Range { 1672 if x != nil { 1673 return x.Range 1674 } 1675 return nil 1676} 1677 1678var File_google_monitoring_v3_service_proto protoreflect.FileDescriptor 1679 1680var file_google_monitoring_v3_service_proto_rawDesc = []byte{ 1681 0x0a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 1682 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 1683 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 1684 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 1685 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x65, 0x64, 1686 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1687 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 1688 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 1689 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 1690 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 1691 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 1692 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x6f, 1693 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 1694 0x72, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf1, 1695 0x08, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 1696 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 1697 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 1698 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 1699 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 1700 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 1701 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1702 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 1703 0x6d, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 1704 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 1705 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 1706 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x48, 0x00, 1707 0x52, 0x09, 0x61, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x63, 1708 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 1709 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 1710 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 1711 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 1712 0x74, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 1713 0x69, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 1714 0x69, 0x73, 0x74, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 1715 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 1716 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 1717 0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x63, 1718 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 1719 0x65, 0x73, 0x68, 0x5f, 0x69, 0x73, 0x74, 0x69, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 1720 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 1721 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 1722 0x65, 0x73, 0x68, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x68, 1723 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x45, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 1724 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1725 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 1726 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 1727 0x79, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x1a, 0x08, 0x0a, 0x06, 1728 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x28, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 1729 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 1730 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 1731 0x1a, 0x2a, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 1732 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 1733 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0xa1, 0x01, 0x0a, 1734 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 1735 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1736 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 1737 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 1738 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 1739 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 1740 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1741 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 1742 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 1743 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x02, 0x18, 0x01, 1744 0x1a, 0x76, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x68, 0x49, 0x73, 0x74, 0x69, 0x6f, 0x12, 0x19, 0x0a, 1745 0x08, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1746 0x07, 0x6d, 0x65, 0x73, 0x68, 0x55, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 1747 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 1748 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 1749 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1750 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 1751 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x30, 0x0a, 0x09, 0x54, 0x65, 0x6c, 0x65, 1752 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 1753 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 1754 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0xa7, 0x01, 0xea, 0x41, 0xa3, 1755 0x01, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 1756 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 1757 0x76, 0x69, 0x63, 0x65, 0x12, 0x25, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 1758 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1759 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12, 0x2f, 0x6f, 0x72, 0x67, 1760 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 1761 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 1762 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x12, 0x23, 0x66, 0x6f, 1763 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x73, 1764 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1765 0x7d, 0x12, 0x01, 0x2a, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 1766 0x65, 0x72, 0x22, 0xe0, 0x05, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 1767 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 1768 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1769 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 1770 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 1771 0x61, 0x6d, 0x65, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 1772 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 1773 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 1774 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 1775 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 1776 0x72, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 1777 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 1778 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x0e, 1779 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05, 1780 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1781 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 1782 0x00, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 1783 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x70, 0x65, 0x72, 1784 0x69, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1785 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 1786 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 1787 0x61, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x34, 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77, 1788 0x12, 0x14, 0x0a, 0x10, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 1789 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 1790 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, 0x01, 0x3a, 0xca, 1791 0x02, 0xea, 0x41, 0xc6, 0x02, 0x0a, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1792 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 1793 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 1794 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x56, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 1795 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 1796 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65, 1797 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 1798 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 1799 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x12, 0x60, 1800 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 1801 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x72, 1802 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 1803 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 1804 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 1805 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 1806 0x12, 0x54, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 1807 0x72, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 1808 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 1809 0x65, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 1810 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 1811 0x63, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x12, 0x01, 0x2a, 0x20, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x70, 1812 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xfa, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 1813 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x12, 1814 0x3d, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x18, 0x04, 0x20, 0x01, 1815 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 1816 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 1817 0x6c, 0x69, 0x48, 0x00, 0x52, 0x08, 0x62, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x12, 0x4c, 1818 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18, 1819 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 1820 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 1821 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0c, 1822 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x0d, 1823 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 1824 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 1825 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 1826 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x69, 1827 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 1828 0x70, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x12, 1829 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 1830 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 1831 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 1832 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 1833 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 1834 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 1835 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 1836 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 1837 0x53, 0x6c, 0x69, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 1838 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 1839 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 1840 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1841 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 1842 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 1843 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x74, 1844 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x16, 0x0a, 0x14, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 1845 0x6c, 0x69, 0x74, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x1a, 0x4a, 0x0a, 0x0f, 1846 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 1847 0x37, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 1848 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1849 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x74, 1850 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x6c, 0x69, 0x5f, 1851 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x22, 0x2b, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 1852 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 1853 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 1854 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 1855 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x12, 0x51, 0x0a, 0x10, 0x67, 0x6f, 0x6f, 1856 0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20, 1857 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 1858 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 1859 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x6f, 1860 0x6f, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x52, 0x0a, 0x10, 1861 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x75, 0x74, 1862 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1863 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x69, 1864 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x74, 0x48, 0x00, 0x52, 1865 0x0f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x74, 1866 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x54, 1867 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2e, 1868 0x0a, 0x13, 0x67, 0x6f, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 1869 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x6f, 0x6f, 1870 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 1871 0x0a, 0x12, 0x62, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69, 1872 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x61, 0x64, 0x53, 1873 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14, 1874 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x69, 1875 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 1876 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x75, 1877 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 1878 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 1879 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 1880 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 1881 0x65, 0x72, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 1882 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 1883 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 1884 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa4, 0x06, 0x0a, 0x0f, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 1885 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x12, 0x35, 0x0a, 0x16, 0x67, 0x6f, 0x6f, 1886 0x64, 0x5f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c, 1887 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x67, 0x6f, 0x6f, 1888 0x64, 0x42, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 1889 0x12, 0x79, 0x0a, 0x1a, 0x67, 0x6f, 0x6f, 0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 1890 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 1891 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 1892 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 1893 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x66, 1894 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 1895 0x48, 0x00, 0x52, 0x17, 0x67, 0x6f, 0x6f, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x74, 1896 0x69, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x64, 0x0a, 0x14, 0x6d, 1897 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61, 1898 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1899 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 1900 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 1901 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x11, 1902 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x61, 0x6e, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67, 1903 0x65, 0x12, 0x62, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 1904 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 1905 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1906 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x42, 0x61, 0x73, 1907 0x65, 0x64, 0x53, 0x6c, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 1908 0x65, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x75, 0x6d, 0x49, 0x6e, 1909 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 1910 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 1911 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 1912 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x50, 1913 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0xdd, 0x01, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 1914 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x49, 1915 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 1916 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 1917 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 1918 0x73, 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65, 1919 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x54, 0x0a, 0x15, 0x62, 0x61, 0x73, 1920 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 1921 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1922 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 1923 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x73, 0x69, 1924 0x63, 0x53, 0x6c, 0x69, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 1925 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 1926 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x06, 0x0a, 1927 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x61, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 1928 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72, 1929 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x53, 1930 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 1931 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 1932 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x6e, 0x67, 1933 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x77, 0x69, 0x6e, 0x64, 1934 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x6e, 0x42, 0xce, 0x01, 0x0a, 1935 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 1936 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x42, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 1937 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 1938 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 1939 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 1940 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 1941 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0x3b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 1942 0x69, 0x6e, 0x67, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 1943 0x75, 0x64, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x33, 1944 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 1945 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x33, 0xea, 0x02, 0x1d, 1946 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4d, 1947 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 1948 0x72, 0x6f, 0x74, 0x6f, 0x33, 1949} 1950 1951var ( 1952 file_google_monitoring_v3_service_proto_rawDescOnce sync.Once 1953 file_google_monitoring_v3_service_proto_rawDescData = file_google_monitoring_v3_service_proto_rawDesc 1954) 1955 1956func file_google_monitoring_v3_service_proto_rawDescGZIP() []byte { 1957 file_google_monitoring_v3_service_proto_rawDescOnce.Do(func() { 1958 file_google_monitoring_v3_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_monitoring_v3_service_proto_rawDescData) 1959 }) 1960 return file_google_monitoring_v3_service_proto_rawDescData 1961} 1962 1963var file_google_monitoring_v3_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 1964var file_google_monitoring_v3_service_proto_msgTypes = make([]protoimpl.MessageInfo, 19) 1965var file_google_monitoring_v3_service_proto_goTypes = []interface{}{ 1966 (ServiceLevelObjective_View)(0), // 0: google.monitoring.v3.ServiceLevelObjective.View 1967 (*Service)(nil), // 1: google.monitoring.v3.Service 1968 (*ServiceLevelObjective)(nil), // 2: google.monitoring.v3.ServiceLevelObjective 1969 (*ServiceLevelIndicator)(nil), // 3: google.monitoring.v3.ServiceLevelIndicator 1970 (*BasicSli)(nil), // 4: google.monitoring.v3.BasicSli 1971 (*Range)(nil), // 5: google.monitoring.v3.Range 1972 (*RequestBasedSli)(nil), // 6: google.monitoring.v3.RequestBasedSli 1973 (*TimeSeriesRatio)(nil), // 7: google.monitoring.v3.TimeSeriesRatio 1974 (*DistributionCut)(nil), // 8: google.monitoring.v3.DistributionCut 1975 (*WindowsBasedSli)(nil), // 9: google.monitoring.v3.WindowsBasedSli 1976 (*Service_Custom)(nil), // 10: google.monitoring.v3.Service.Custom 1977 (*Service_AppEngine)(nil), // 11: google.monitoring.v3.Service.AppEngine 1978 (*Service_CloudEndpoints)(nil), // 12: google.monitoring.v3.Service.CloudEndpoints 1979 (*Service_ClusterIstio)(nil), // 13: google.monitoring.v3.Service.ClusterIstio 1980 (*Service_MeshIstio)(nil), // 14: google.monitoring.v3.Service.MeshIstio 1981 (*Service_Telemetry)(nil), // 15: google.monitoring.v3.Service.Telemetry 1982 (*BasicSli_AvailabilityCriteria)(nil), // 16: google.monitoring.v3.BasicSli.AvailabilityCriteria 1983 (*BasicSli_LatencyCriteria)(nil), // 17: google.monitoring.v3.BasicSli.LatencyCriteria 1984 (*WindowsBasedSli_PerformanceThreshold)(nil), // 18: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold 1985 (*WindowsBasedSli_MetricRange)(nil), // 19: google.monitoring.v3.WindowsBasedSli.MetricRange 1986 (*duration.Duration)(nil), // 20: google.protobuf.Duration 1987 (calendarperiod.CalendarPeriod)(0), // 21: google.type.CalendarPeriod 1988} 1989var file_google_monitoring_v3_service_proto_depIdxs = []int32{ 1990 10, // 0: google.monitoring.v3.Service.custom:type_name -> google.monitoring.v3.Service.Custom 1991 11, // 1: google.monitoring.v3.Service.app_engine:type_name -> google.monitoring.v3.Service.AppEngine 1992 12, // 2: google.monitoring.v3.Service.cloud_endpoints:type_name -> google.monitoring.v3.Service.CloudEndpoints 1993 13, // 3: google.monitoring.v3.Service.cluster_istio:type_name -> google.monitoring.v3.Service.ClusterIstio 1994 14, // 4: google.monitoring.v3.Service.mesh_istio:type_name -> google.monitoring.v3.Service.MeshIstio 1995 15, // 5: google.monitoring.v3.Service.telemetry:type_name -> google.monitoring.v3.Service.Telemetry 1996 3, // 6: google.monitoring.v3.ServiceLevelObjective.service_level_indicator:type_name -> google.monitoring.v3.ServiceLevelIndicator 1997 20, // 7: google.monitoring.v3.ServiceLevelObjective.rolling_period:type_name -> google.protobuf.Duration 1998 21, // 8: google.monitoring.v3.ServiceLevelObjective.calendar_period:type_name -> google.type.CalendarPeriod 1999 4, // 9: google.monitoring.v3.ServiceLevelIndicator.basic_sli:type_name -> google.monitoring.v3.BasicSli 2000 6, // 10: google.monitoring.v3.ServiceLevelIndicator.request_based:type_name -> google.monitoring.v3.RequestBasedSli 2001 9, // 11: google.monitoring.v3.ServiceLevelIndicator.windows_based:type_name -> google.monitoring.v3.WindowsBasedSli 2002 16, // 12: google.monitoring.v3.BasicSli.availability:type_name -> google.monitoring.v3.BasicSli.AvailabilityCriteria 2003 17, // 13: google.monitoring.v3.BasicSli.latency:type_name -> google.monitoring.v3.BasicSli.LatencyCriteria 2004 7, // 14: google.monitoring.v3.RequestBasedSli.good_total_ratio:type_name -> google.monitoring.v3.TimeSeriesRatio 2005 8, // 15: google.monitoring.v3.RequestBasedSli.distribution_cut:type_name -> google.monitoring.v3.DistributionCut 2006 5, // 16: google.monitoring.v3.DistributionCut.range:type_name -> google.monitoring.v3.Range 2007 18, // 17: google.monitoring.v3.WindowsBasedSli.good_total_ratio_threshold:type_name -> google.monitoring.v3.WindowsBasedSli.PerformanceThreshold 2008 19, // 18: google.monitoring.v3.WindowsBasedSli.metric_mean_in_range:type_name -> google.monitoring.v3.WindowsBasedSli.MetricRange 2009 19, // 19: google.monitoring.v3.WindowsBasedSli.metric_sum_in_range:type_name -> google.monitoring.v3.WindowsBasedSli.MetricRange 2010 20, // 20: google.monitoring.v3.WindowsBasedSli.window_period:type_name -> google.protobuf.Duration 2011 20, // 21: google.monitoring.v3.BasicSli.LatencyCriteria.threshold:type_name -> google.protobuf.Duration 2012 6, // 22: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold.performance:type_name -> google.monitoring.v3.RequestBasedSli 2013 4, // 23: google.monitoring.v3.WindowsBasedSli.PerformanceThreshold.basic_sli_performance:type_name -> google.monitoring.v3.BasicSli 2014 5, // 24: google.monitoring.v3.WindowsBasedSli.MetricRange.range:type_name -> google.monitoring.v3.Range 2015 25, // [25:25] is the sub-list for method output_type 2016 25, // [25:25] is the sub-list for method input_type 2017 25, // [25:25] is the sub-list for extension type_name 2018 25, // [25:25] is the sub-list for extension extendee 2019 0, // [0:25] is the sub-list for field type_name 2020} 2021 2022func init() { file_google_monitoring_v3_service_proto_init() } 2023func file_google_monitoring_v3_service_proto_init() { 2024 if File_google_monitoring_v3_service_proto != nil { 2025 return 2026 } 2027 if !protoimpl.UnsafeEnabled { 2028 file_google_monitoring_v3_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2029 switch v := v.(*Service); i { 2030 case 0: 2031 return &v.state 2032 case 1: 2033 return &v.sizeCache 2034 case 2: 2035 return &v.unknownFields 2036 default: 2037 return nil 2038 } 2039 } 2040 file_google_monitoring_v3_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2041 switch v := v.(*ServiceLevelObjective); i { 2042 case 0: 2043 return &v.state 2044 case 1: 2045 return &v.sizeCache 2046 case 2: 2047 return &v.unknownFields 2048 default: 2049 return nil 2050 } 2051 } 2052 file_google_monitoring_v3_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2053 switch v := v.(*ServiceLevelIndicator); i { 2054 case 0: 2055 return &v.state 2056 case 1: 2057 return &v.sizeCache 2058 case 2: 2059 return &v.unknownFields 2060 default: 2061 return nil 2062 } 2063 } 2064 file_google_monitoring_v3_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2065 switch v := v.(*BasicSli); i { 2066 case 0: 2067 return &v.state 2068 case 1: 2069 return &v.sizeCache 2070 case 2: 2071 return &v.unknownFields 2072 default: 2073 return nil 2074 } 2075 } 2076 file_google_monitoring_v3_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2077 switch v := v.(*Range); i { 2078 case 0: 2079 return &v.state 2080 case 1: 2081 return &v.sizeCache 2082 case 2: 2083 return &v.unknownFields 2084 default: 2085 return nil 2086 } 2087 } 2088 file_google_monitoring_v3_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2089 switch v := v.(*RequestBasedSli); i { 2090 case 0: 2091 return &v.state 2092 case 1: 2093 return &v.sizeCache 2094 case 2: 2095 return &v.unknownFields 2096 default: 2097 return nil 2098 } 2099 } 2100 file_google_monitoring_v3_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2101 switch v := v.(*TimeSeriesRatio); i { 2102 case 0: 2103 return &v.state 2104 case 1: 2105 return &v.sizeCache 2106 case 2: 2107 return &v.unknownFields 2108 default: 2109 return nil 2110 } 2111 } 2112 file_google_monitoring_v3_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2113 switch v := v.(*DistributionCut); i { 2114 case 0: 2115 return &v.state 2116 case 1: 2117 return &v.sizeCache 2118 case 2: 2119 return &v.unknownFields 2120 default: 2121 return nil 2122 } 2123 } 2124 file_google_monitoring_v3_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2125 switch v := v.(*WindowsBasedSli); i { 2126 case 0: 2127 return &v.state 2128 case 1: 2129 return &v.sizeCache 2130 case 2: 2131 return &v.unknownFields 2132 default: 2133 return nil 2134 } 2135 } 2136 file_google_monitoring_v3_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2137 switch v := v.(*Service_Custom); i { 2138 case 0: 2139 return &v.state 2140 case 1: 2141 return &v.sizeCache 2142 case 2: 2143 return &v.unknownFields 2144 default: 2145 return nil 2146 } 2147 } 2148 file_google_monitoring_v3_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2149 switch v := v.(*Service_AppEngine); i { 2150 case 0: 2151 return &v.state 2152 case 1: 2153 return &v.sizeCache 2154 case 2: 2155 return &v.unknownFields 2156 default: 2157 return nil 2158 } 2159 } 2160 file_google_monitoring_v3_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2161 switch v := v.(*Service_CloudEndpoints); i { 2162 case 0: 2163 return &v.state 2164 case 1: 2165 return &v.sizeCache 2166 case 2: 2167 return &v.unknownFields 2168 default: 2169 return nil 2170 } 2171 } 2172 file_google_monitoring_v3_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2173 switch v := v.(*Service_ClusterIstio); i { 2174 case 0: 2175 return &v.state 2176 case 1: 2177 return &v.sizeCache 2178 case 2: 2179 return &v.unknownFields 2180 default: 2181 return nil 2182 } 2183 } 2184 file_google_monitoring_v3_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2185 switch v := v.(*Service_MeshIstio); i { 2186 case 0: 2187 return &v.state 2188 case 1: 2189 return &v.sizeCache 2190 case 2: 2191 return &v.unknownFields 2192 default: 2193 return nil 2194 } 2195 } 2196 file_google_monitoring_v3_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2197 switch v := v.(*Service_Telemetry); i { 2198 case 0: 2199 return &v.state 2200 case 1: 2201 return &v.sizeCache 2202 case 2: 2203 return &v.unknownFields 2204 default: 2205 return nil 2206 } 2207 } 2208 file_google_monitoring_v3_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2209 switch v := v.(*BasicSli_AvailabilityCriteria); i { 2210 case 0: 2211 return &v.state 2212 case 1: 2213 return &v.sizeCache 2214 case 2: 2215 return &v.unknownFields 2216 default: 2217 return nil 2218 } 2219 } 2220 file_google_monitoring_v3_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2221 switch v := v.(*BasicSli_LatencyCriteria); i { 2222 case 0: 2223 return &v.state 2224 case 1: 2225 return &v.sizeCache 2226 case 2: 2227 return &v.unknownFields 2228 default: 2229 return nil 2230 } 2231 } 2232 file_google_monitoring_v3_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2233 switch v := v.(*WindowsBasedSli_PerformanceThreshold); i { 2234 case 0: 2235 return &v.state 2236 case 1: 2237 return &v.sizeCache 2238 case 2: 2239 return &v.unknownFields 2240 default: 2241 return nil 2242 } 2243 } 2244 file_google_monitoring_v3_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2245 switch v := v.(*WindowsBasedSli_MetricRange); i { 2246 case 0: 2247 return &v.state 2248 case 1: 2249 return &v.sizeCache 2250 case 2: 2251 return &v.unknownFields 2252 default: 2253 return nil 2254 } 2255 } 2256 } 2257 file_google_monitoring_v3_service_proto_msgTypes[0].OneofWrappers = []interface{}{ 2258 (*Service_Custom_)(nil), 2259 (*Service_AppEngine_)(nil), 2260 (*Service_CloudEndpoints_)(nil), 2261 (*Service_ClusterIstio_)(nil), 2262 (*Service_MeshIstio_)(nil), 2263 } 2264 file_google_monitoring_v3_service_proto_msgTypes[1].OneofWrappers = []interface{}{ 2265 (*ServiceLevelObjective_RollingPeriod)(nil), 2266 (*ServiceLevelObjective_CalendarPeriod)(nil), 2267 } 2268 file_google_monitoring_v3_service_proto_msgTypes[2].OneofWrappers = []interface{}{ 2269 (*ServiceLevelIndicator_BasicSli)(nil), 2270 (*ServiceLevelIndicator_RequestBased)(nil), 2271 (*ServiceLevelIndicator_WindowsBased)(nil), 2272 } 2273 file_google_monitoring_v3_service_proto_msgTypes[3].OneofWrappers = []interface{}{ 2274 (*BasicSli_Availability)(nil), 2275 (*BasicSli_Latency)(nil), 2276 } 2277 file_google_monitoring_v3_service_proto_msgTypes[5].OneofWrappers = []interface{}{ 2278 (*RequestBasedSli_GoodTotalRatio)(nil), 2279 (*RequestBasedSli_DistributionCut)(nil), 2280 } 2281 file_google_monitoring_v3_service_proto_msgTypes[8].OneofWrappers = []interface{}{ 2282 (*WindowsBasedSli_GoodBadMetricFilter)(nil), 2283 (*WindowsBasedSli_GoodTotalRatioThreshold)(nil), 2284 (*WindowsBasedSli_MetricMeanInRange)(nil), 2285 (*WindowsBasedSli_MetricSumInRange)(nil), 2286 } 2287 file_google_monitoring_v3_service_proto_msgTypes[17].OneofWrappers = []interface{}{ 2288 (*WindowsBasedSli_PerformanceThreshold_Performance)(nil), 2289 (*WindowsBasedSli_PerformanceThreshold_BasicSliPerformance)(nil), 2290 } 2291 type x struct{} 2292 out := protoimpl.TypeBuilder{ 2293 File: protoimpl.DescBuilder{ 2294 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2295 RawDescriptor: file_google_monitoring_v3_service_proto_rawDesc, 2296 NumEnums: 1, 2297 NumMessages: 19, 2298 NumExtensions: 0, 2299 NumServices: 0, 2300 }, 2301 GoTypes: file_google_monitoring_v3_service_proto_goTypes, 2302 DependencyIndexes: file_google_monitoring_v3_service_proto_depIdxs, 2303 EnumInfos: file_google_monitoring_v3_service_proto_enumTypes, 2304 MessageInfos: file_google_monitoring_v3_service_proto_msgTypes, 2305 }.Build() 2306 File_google_monitoring_v3_service_proto = out.File 2307 file_google_monitoring_v3_service_proto_rawDesc = nil 2308 file_google_monitoring_v3_service_proto_goTypes = nil 2309 file_google_monitoring_v3_service_proto_depIdxs = nil 2310} 2311