| // Copyright 2023 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.33.0 |
| // protoc v4.25.3 |
| // source: google/cloud/contactcenterinsights/v1/resources.proto |
| |
| package contactcenterinsightspb |
| |
| import ( |
| reflect "reflect" |
| sync "sync" |
| |
| _ "google.golang.org/genproto/googleapis/api/annotations" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| durationpb "google.golang.org/protobuf/types/known/durationpb" |
| timestamppb "google.golang.org/protobuf/types/known/timestamppb" |
| ) |
| |
| const ( |
| // Verify that this generated code is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
| // Verify that runtime/protoimpl is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
| ) |
| |
| // Possible media for the conversation. |
| type Conversation_Medium int32 |
| |
| const ( |
| // Default value, if unspecified will default to PHONE_CALL. |
| Conversation_MEDIUM_UNSPECIFIED Conversation_Medium = 0 |
| // The format for conversations that took place over the phone. |
| Conversation_PHONE_CALL Conversation_Medium = 1 |
| // The format for conversations that took place over chat. |
| Conversation_CHAT Conversation_Medium = 2 |
| ) |
| |
| // Enum value maps for Conversation_Medium. |
| var ( |
| Conversation_Medium_name = map[int32]string{ |
| 0: "MEDIUM_UNSPECIFIED", |
| 1: "PHONE_CALL", |
| 2: "CHAT", |
| } |
| Conversation_Medium_value = map[string]int32{ |
| "MEDIUM_UNSPECIFIED": 0, |
| "PHONE_CALL": 1, |
| "CHAT": 2, |
| } |
| ) |
| |
| func (x Conversation_Medium) Enum() *Conversation_Medium { |
| p := new(Conversation_Medium) |
| *p = x |
| return p |
| } |
| |
| func (x Conversation_Medium) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Conversation_Medium) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (Conversation_Medium) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[0] |
| } |
| |
| func (x Conversation_Medium) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Conversation_Medium.Descriptor instead. |
| func (Conversation_Medium) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 0} |
| } |
| |
| // The type of the entity. For most entity types, the associated metadata is a |
| // Wikipedia URL (`wikipedia_url`) and Knowledge Graph MID (`mid`). The table |
| // below lists the associated fields for entities that have different |
| // metadata. |
| type Entity_Type int32 |
| |
| const ( |
| // Unspecified. |
| Entity_TYPE_UNSPECIFIED Entity_Type = 0 |
| // Person. |
| Entity_PERSON Entity_Type = 1 |
| // Location. |
| Entity_LOCATION Entity_Type = 2 |
| // Organization. |
| Entity_ORGANIZATION Entity_Type = 3 |
| // Event. |
| Entity_EVENT Entity_Type = 4 |
| // Artwork. |
| Entity_WORK_OF_ART Entity_Type = 5 |
| // Consumer product. |
| Entity_CONSUMER_GOOD Entity_Type = 6 |
| // Other types of entities. |
| Entity_OTHER Entity_Type = 7 |
| // Phone number. |
| // |
| // The metadata lists the phone number (formatted according to local |
| // convention), plus whichever additional elements appear in the text: |
| // |
| // * `number` - The actual number, broken down into sections according to |
| // local convention. |
| // * `national_prefix` - Country code, if detected. |
| // * `area_code` - Region or area code, if detected. |
| // * `extension` - Phone extension (to be dialed after connection), if |
| // detected. |
| Entity_PHONE_NUMBER Entity_Type = 9 |
| // Address. |
| // |
| // The metadata identifies the street number and locality plus whichever |
| // additional elements appear in the text: |
| // |
| // * `street_number` - Street number. |
| // * `locality` - City or town. |
| // * `street_name` - Street/route name, if detected. |
| // * `postal_code` - Postal code, if detected. |
| // * `country` - Country, if detected. |
| // * `broad_region` - Administrative area, such as the state, if detected. |
| // * `narrow_region` - Smaller administrative area, such as county, if |
| // detected. |
| // * `sublocality` - Used in Asian addresses to demark a district within a |
| // city, if detected. |
| Entity_ADDRESS Entity_Type = 10 |
| // Date. |
| // |
| // The metadata identifies the components of the date: |
| // |
| // * `year` - Four digit year, if detected. |
| // * `month` - Two digit month number, if detected. |
| // * `day` - Two digit day number, if detected. |
| Entity_DATE Entity_Type = 11 |
| // Number. |
| // |
| // The metadata is the number itself. |
| Entity_NUMBER Entity_Type = 12 |
| // Price. |
| // |
| // The metadata identifies the `value` and `currency`. |
| Entity_PRICE Entity_Type = 13 |
| ) |
| |
| // Enum value maps for Entity_Type. |
| var ( |
| Entity_Type_name = map[int32]string{ |
| 0: "TYPE_UNSPECIFIED", |
| 1: "PERSON", |
| 2: "LOCATION", |
| 3: "ORGANIZATION", |
| 4: "EVENT", |
| 5: "WORK_OF_ART", |
| 6: "CONSUMER_GOOD", |
| 7: "OTHER", |
| 9: "PHONE_NUMBER", |
| 10: "ADDRESS", |
| 11: "DATE", |
| 12: "NUMBER", |
| 13: "PRICE", |
| } |
| Entity_Type_value = map[string]int32{ |
| "TYPE_UNSPECIFIED": 0, |
| "PERSON": 1, |
| "LOCATION": 2, |
| "ORGANIZATION": 3, |
| "EVENT": 4, |
| "WORK_OF_ART": 5, |
| "CONSUMER_GOOD": 6, |
| "OTHER": 7, |
| "PHONE_NUMBER": 9, |
| "ADDRESS": 10, |
| "DATE": 11, |
| "NUMBER": 12, |
| "PRICE": 13, |
| } |
| ) |
| |
| func (x Entity_Type) Enum() *Entity_Type { |
| p := new(Entity_Type) |
| *p = x |
| return p |
| } |
| |
| func (x Entity_Type) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Entity_Type) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (Entity_Type) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[1] |
| } |
| |
| func (x Entity_Type) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Entity_Type.Descriptor instead. |
| func (Entity_Type) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{11, 0} |
| } |
| |
| // The supported types of mentions. |
| type EntityMentionData_MentionType int32 |
| |
| const ( |
| // Unspecified. |
| EntityMentionData_MENTION_TYPE_UNSPECIFIED EntityMentionData_MentionType = 0 |
| // Proper noun. |
| EntityMentionData_PROPER EntityMentionData_MentionType = 1 |
| // Common noun (or noun compound). |
| EntityMentionData_COMMON EntityMentionData_MentionType = 2 |
| ) |
| |
| // Enum value maps for EntityMentionData_MentionType. |
| var ( |
| EntityMentionData_MentionType_name = map[int32]string{ |
| 0: "MENTION_TYPE_UNSPECIFIED", |
| 1: "PROPER", |
| 2: "COMMON", |
| } |
| EntityMentionData_MentionType_value = map[string]int32{ |
| "MENTION_TYPE_UNSPECIFIED": 0, |
| "PROPER": 1, |
| "COMMON": 2, |
| } |
| ) |
| |
| func (x EntityMentionData_MentionType) Enum() *EntityMentionData_MentionType { |
| p := new(EntityMentionData_MentionType) |
| *p = x |
| return p |
| } |
| |
| func (x EntityMentionData_MentionType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (EntityMentionData_MentionType) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (EntityMentionData_MentionType) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[2] |
| } |
| |
| func (x EntityMentionData_MentionType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use EntityMentionData_MentionType.Descriptor instead. |
| func (EntityMentionData_MentionType) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{18, 0} |
| } |
| |
| // State of the model. |
| type IssueModel_State int32 |
| |
| const ( |
| // Unspecified. |
| IssueModel_STATE_UNSPECIFIED IssueModel_State = 0 |
| // Model is not deployed but is ready to deploy. |
| IssueModel_UNDEPLOYED IssueModel_State = 1 |
| // Model is being deployed. |
| IssueModel_DEPLOYING IssueModel_State = 2 |
| // Model is deployed and is ready to be used. A model can only be used in |
| // analysis if it's in this state. |
| IssueModel_DEPLOYED IssueModel_State = 3 |
| // Model is being undeployed. |
| IssueModel_UNDEPLOYING IssueModel_State = 4 |
| // Model is being deleted. |
| IssueModel_DELETING IssueModel_State = 5 |
| ) |
| |
| // Enum value maps for IssueModel_State. |
| var ( |
| IssueModel_State_name = map[int32]string{ |
| 0: "STATE_UNSPECIFIED", |
| 1: "UNDEPLOYED", |
| 2: "DEPLOYING", |
| 3: "DEPLOYED", |
| 4: "UNDEPLOYING", |
| 5: "DELETING", |
| } |
| IssueModel_State_value = map[string]int32{ |
| "STATE_UNSPECIFIED": 0, |
| "UNDEPLOYED": 1, |
| "DEPLOYING": 2, |
| "DEPLOYED": 3, |
| "UNDEPLOYING": 4, |
| "DELETING": 5, |
| } |
| ) |
| |
| func (x IssueModel_State) Enum() *IssueModel_State { |
| p := new(IssueModel_State) |
| *p = x |
| return p |
| } |
| |
| func (x IssueModel_State) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (IssueModel_State) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[3].Descriptor() |
| } |
| |
| func (IssueModel_State) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[3] |
| } |
| |
| func (x IssueModel_State) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use IssueModel_State.Descriptor instead. |
| func (IssueModel_State) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{22, 0} |
| } |
| |
| // Type of the model. |
| type IssueModel_ModelType int32 |
| |
| const ( |
| // Unspecified model type. |
| IssueModel_MODEL_TYPE_UNSPECIFIED IssueModel_ModelType = 0 |
| // Type V1. |
| IssueModel_TYPE_V1 IssueModel_ModelType = 1 |
| // Type V2. |
| IssueModel_TYPE_V2 IssueModel_ModelType = 2 |
| ) |
| |
| // Enum value maps for IssueModel_ModelType. |
| var ( |
| IssueModel_ModelType_name = map[int32]string{ |
| 0: "MODEL_TYPE_UNSPECIFIED", |
| 1: "TYPE_V1", |
| 2: "TYPE_V2", |
| } |
| IssueModel_ModelType_value = map[string]int32{ |
| "MODEL_TYPE_UNSPECIFIED": 0, |
| "TYPE_V1": 1, |
| "TYPE_V2": 2, |
| } |
| ) |
| |
| func (x IssueModel_ModelType) Enum() *IssueModel_ModelType { |
| p := new(IssueModel_ModelType) |
| *p = x |
| return p |
| } |
| |
| func (x IssueModel_ModelType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (IssueModel_ModelType) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[4].Descriptor() |
| } |
| |
| func (IssueModel_ModelType) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[4] |
| } |
| |
| func (x IssueModel_ModelType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use IssueModel_ModelType.Descriptor instead. |
| func (IssueModel_ModelType) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{22, 1} |
| } |
| |
| // Specifies how to combine each phrase match rule group to determine whether |
| // there is a match. |
| type PhraseMatcher_PhraseMatcherType int32 |
| |
| const ( |
| // Unspecified. |
| PhraseMatcher_PHRASE_MATCHER_TYPE_UNSPECIFIED PhraseMatcher_PhraseMatcherType = 0 |
| // Must meet all phrase match rule groups or there is no match. |
| PhraseMatcher_ALL_OF PhraseMatcher_PhraseMatcherType = 1 |
| // If any of the phrase match rule groups are met, there is a match. |
| PhraseMatcher_ANY_OF PhraseMatcher_PhraseMatcherType = 2 |
| ) |
| |
| // Enum value maps for PhraseMatcher_PhraseMatcherType. |
| var ( |
| PhraseMatcher_PhraseMatcherType_name = map[int32]string{ |
| 0: "PHRASE_MATCHER_TYPE_UNSPECIFIED", |
| 1: "ALL_OF", |
| 2: "ANY_OF", |
| } |
| PhraseMatcher_PhraseMatcherType_value = map[string]int32{ |
| "PHRASE_MATCHER_TYPE_UNSPECIFIED": 0, |
| "ALL_OF": 1, |
| "ANY_OF": 2, |
| } |
| ) |
| |
| func (x PhraseMatcher_PhraseMatcherType) Enum() *PhraseMatcher_PhraseMatcherType { |
| p := new(PhraseMatcher_PhraseMatcherType) |
| *p = x |
| return p |
| } |
| |
| func (x PhraseMatcher_PhraseMatcherType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (PhraseMatcher_PhraseMatcherType) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[5].Descriptor() |
| } |
| |
| func (PhraseMatcher_PhraseMatcherType) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[5] |
| } |
| |
| func (x PhraseMatcher_PhraseMatcherType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use PhraseMatcher_PhraseMatcherType.Descriptor instead. |
| func (PhraseMatcher_PhraseMatcherType) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{25, 0} |
| } |
| |
| // Specifies how to combine each phrase match rule for whether there is a |
| // match. |
| type PhraseMatchRuleGroup_PhraseMatchRuleGroupType int32 |
| |
| const ( |
| // Unspecified. |
| PhraseMatchRuleGroup_PHRASE_MATCH_RULE_GROUP_TYPE_UNSPECIFIED PhraseMatchRuleGroup_PhraseMatchRuleGroupType = 0 |
| // Must meet all phrase match rules or there is no match. |
| PhraseMatchRuleGroup_ALL_OF PhraseMatchRuleGroup_PhraseMatchRuleGroupType = 1 |
| // If any of the phrase match rules are met, there is a match. |
| PhraseMatchRuleGroup_ANY_OF PhraseMatchRuleGroup_PhraseMatchRuleGroupType = 2 |
| ) |
| |
| // Enum value maps for PhraseMatchRuleGroup_PhraseMatchRuleGroupType. |
| var ( |
| PhraseMatchRuleGroup_PhraseMatchRuleGroupType_name = map[int32]string{ |
| 0: "PHRASE_MATCH_RULE_GROUP_TYPE_UNSPECIFIED", |
| 1: "ALL_OF", |
| 2: "ANY_OF", |
| } |
| PhraseMatchRuleGroup_PhraseMatchRuleGroupType_value = map[string]int32{ |
| "PHRASE_MATCH_RULE_GROUP_TYPE_UNSPECIFIED": 0, |
| "ALL_OF": 1, |
| "ANY_OF": 2, |
| } |
| ) |
| |
| func (x PhraseMatchRuleGroup_PhraseMatchRuleGroupType) Enum() *PhraseMatchRuleGroup_PhraseMatchRuleGroupType { |
| p := new(PhraseMatchRuleGroup_PhraseMatchRuleGroupType) |
| *p = x |
| return p |
| } |
| |
| func (x PhraseMatchRuleGroup_PhraseMatchRuleGroupType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (PhraseMatchRuleGroup_PhraseMatchRuleGroupType) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[6].Descriptor() |
| } |
| |
| func (PhraseMatchRuleGroup_PhraseMatchRuleGroupType) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[6] |
| } |
| |
| func (x PhraseMatchRuleGroup_PhraseMatchRuleGroupType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use PhraseMatchRuleGroup_PhraseMatchRuleGroupType.Descriptor instead. |
| func (PhraseMatchRuleGroup_PhraseMatchRuleGroupType) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{26, 0} |
| } |
| |
| // The correctness level of an answer. |
| type AnswerFeedback_CorrectnessLevel int32 |
| |
| const ( |
| // Correctness level unspecified. |
| AnswerFeedback_CORRECTNESS_LEVEL_UNSPECIFIED AnswerFeedback_CorrectnessLevel = 0 |
| // Answer is totally wrong. |
| AnswerFeedback_NOT_CORRECT AnswerFeedback_CorrectnessLevel = 1 |
| // Answer is partially correct. |
| AnswerFeedback_PARTIALLY_CORRECT AnswerFeedback_CorrectnessLevel = 2 |
| // Answer is fully correct. |
| AnswerFeedback_FULLY_CORRECT AnswerFeedback_CorrectnessLevel = 3 |
| ) |
| |
| // Enum value maps for AnswerFeedback_CorrectnessLevel. |
| var ( |
| AnswerFeedback_CorrectnessLevel_name = map[int32]string{ |
| 0: "CORRECTNESS_LEVEL_UNSPECIFIED", |
| 1: "NOT_CORRECT", |
| 2: "PARTIALLY_CORRECT", |
| 3: "FULLY_CORRECT", |
| } |
| AnswerFeedback_CorrectnessLevel_value = map[string]int32{ |
| "CORRECTNESS_LEVEL_UNSPECIFIED": 0, |
| "NOT_CORRECT": 1, |
| "PARTIALLY_CORRECT": 2, |
| "FULLY_CORRECT": 3, |
| } |
| ) |
| |
| func (x AnswerFeedback_CorrectnessLevel) Enum() *AnswerFeedback_CorrectnessLevel { |
| p := new(AnswerFeedback_CorrectnessLevel) |
| *p = x |
| return p |
| } |
| |
| func (x AnswerFeedback_CorrectnessLevel) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (AnswerFeedback_CorrectnessLevel) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[7].Descriptor() |
| } |
| |
| func (AnswerFeedback_CorrectnessLevel) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[7] |
| } |
| |
| func (x AnswerFeedback_CorrectnessLevel) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use AnswerFeedback_CorrectnessLevel.Descriptor instead. |
| func (AnswerFeedback_CorrectnessLevel) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{34, 0} |
| } |
| |
| // The role of the participant. |
| type ConversationParticipant_Role int32 |
| |
| const ( |
| // Participant's role is not set. |
| ConversationParticipant_ROLE_UNSPECIFIED ConversationParticipant_Role = 0 |
| // Participant is a human agent. |
| ConversationParticipant_HUMAN_AGENT ConversationParticipant_Role = 1 |
| // Participant is an automated agent. |
| ConversationParticipant_AUTOMATED_AGENT ConversationParticipant_Role = 2 |
| // Participant is an end user who conversed with the contact center. |
| ConversationParticipant_END_USER ConversationParticipant_Role = 3 |
| // Participant is either a human or automated agent. |
| ConversationParticipant_ANY_AGENT ConversationParticipant_Role = 4 |
| ) |
| |
| // Enum value maps for ConversationParticipant_Role. |
| var ( |
| ConversationParticipant_Role_name = map[int32]string{ |
| 0: "ROLE_UNSPECIFIED", |
| 1: "HUMAN_AGENT", |
| 2: "AUTOMATED_AGENT", |
| 3: "END_USER", |
| 4: "ANY_AGENT", |
| } |
| ConversationParticipant_Role_value = map[string]int32{ |
| "ROLE_UNSPECIFIED": 0, |
| "HUMAN_AGENT": 1, |
| "AUTOMATED_AGENT": 2, |
| "END_USER": 3, |
| "ANY_AGENT": 4, |
| } |
| ) |
| |
| func (x ConversationParticipant_Role) Enum() *ConversationParticipant_Role { |
| p := new(ConversationParticipant_Role) |
| *p = x |
| return p |
| } |
| |
| func (x ConversationParticipant_Role) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (ConversationParticipant_Role) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[8].Descriptor() |
| } |
| |
| func (ConversationParticipant_Role) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[8] |
| } |
| |
| func (x ConversationParticipant_Role) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use ConversationParticipant_Role.Descriptor instead. |
| func (ConversationParticipant_Role) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{41, 0} |
| } |
| |
| // Summarization model to use, if `conversation_profile` is not used. |
| type AnnotatorSelector_SummarizationConfig_SummarizationModel int32 |
| |
| const ( |
| // Unspecified summarization model. |
| AnnotatorSelector_SummarizationConfig_SUMMARIZATION_MODEL_UNSPECIFIED AnnotatorSelector_SummarizationConfig_SummarizationModel = 0 |
| // The CCAI baseline model. |
| AnnotatorSelector_SummarizationConfig_BASELINE_MODEL AnnotatorSelector_SummarizationConfig_SummarizationModel = 1 |
| ) |
| |
| // Enum value maps for AnnotatorSelector_SummarizationConfig_SummarizationModel. |
| var ( |
| AnnotatorSelector_SummarizationConfig_SummarizationModel_name = map[int32]string{ |
| 0: "SUMMARIZATION_MODEL_UNSPECIFIED", |
| 1: "BASELINE_MODEL", |
| } |
| AnnotatorSelector_SummarizationConfig_SummarizationModel_value = map[string]int32{ |
| "SUMMARIZATION_MODEL_UNSPECIFIED": 0, |
| "BASELINE_MODEL": 1, |
| } |
| ) |
| |
| func (x AnnotatorSelector_SummarizationConfig_SummarizationModel) Enum() *AnnotatorSelector_SummarizationConfig_SummarizationModel { |
| p := new(AnnotatorSelector_SummarizationConfig_SummarizationModel) |
| *p = x |
| return p |
| } |
| |
| func (x AnnotatorSelector_SummarizationConfig_SummarizationModel) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (AnnotatorSelector_SummarizationConfig_SummarizationModel) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[9].Descriptor() |
| } |
| |
| func (AnnotatorSelector_SummarizationConfig_SummarizationModel) Type() protoreflect.EnumType { |
| return &file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes[9] |
| } |
| |
| func (x AnnotatorSelector_SummarizationConfig_SummarizationModel) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use AnnotatorSelector_SummarizationConfig_SummarizationModel.Descriptor instead. |
| func (AnnotatorSelector_SummarizationConfig_SummarizationModel) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{43, 0, 0} |
| } |
| |
| // The conversation resource. |
| type Conversation struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Metadata that applies to the conversation. |
| // |
| // Types that are assignable to Metadata: |
| // |
| // *Conversation_CallMetadata_ |
| Metadata isConversation_Metadata `protobuf_oneof:"metadata"` |
| // A time to live expiration setting, can be either a specified timestamp or a |
| // duration from the time that the conversation creation request was received. |
| // Conversations with an expiration set will be removed up to 24 hours after |
| // the specified time. |
| // |
| // Types that are assignable to Expiration: |
| // |
| // *Conversation_ExpireTime |
| // *Conversation_Ttl |
| Expiration isConversation_Expiration `protobuf_oneof:"expiration"` |
| // Immutable. The resource name of the conversation. |
| // Format: |
| // projects/{project}/locations/{location}/conversations/{conversation} |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // The source of the audio and transcription for the conversation. |
| DataSource *ConversationDataSource `protobuf:"bytes,2,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"` |
| // Output only. The time at which the conversation was created. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The most recent time at which the conversation was updated. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // The time at which the conversation started. |
| StartTime *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` |
| // A user-specified language code for the conversation. |
| LanguageCode string `protobuf:"bytes,14,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` |
| // An opaque, user-specified string representing the human agent who handled |
| // the conversation. |
| AgentId string `protobuf:"bytes,5,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` |
| // A map for the user to specify any custom fields. A maximum of 20 labels per |
| // conversation is allowed, with a maximum of 256 characters per entry. |
| Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Conversation metadata related to quality management. |
| QualityMetadata *Conversation_QualityMetadata `protobuf:"bytes,24,opt,name=quality_metadata,json=qualityMetadata,proto3" json:"quality_metadata,omitempty"` |
| // Output only. The conversation transcript. |
| Transcript *Conversation_Transcript `protobuf:"bytes,8,opt,name=transcript,proto3" json:"transcript,omitempty"` |
| // Immutable. The conversation medium, if unspecified will default to |
| // PHONE_CALL. |
| Medium Conversation_Medium `protobuf:"varint,9,opt,name=medium,proto3,enum=google.cloud.contactcenterinsights.v1.Conversation_Medium" json:"medium,omitempty"` |
| // Output only. The duration of the conversation. |
| Duration *durationpb.Duration `protobuf:"bytes,10,opt,name=duration,proto3" json:"duration,omitempty"` |
| // Output only. The number of turns in the conversation. |
| TurnCount int32 `protobuf:"varint,11,opt,name=turn_count,json=turnCount,proto3" json:"turn_count,omitempty"` |
| // Output only. The conversation's latest analysis, if one exists. |
| LatestAnalysis *Analysis `protobuf:"bytes,12,opt,name=latest_analysis,json=latestAnalysis,proto3" json:"latest_analysis,omitempty"` |
| // Output only. Latest summary of the conversation. |
| LatestSummary *ConversationSummarizationSuggestionData `protobuf:"bytes,20,opt,name=latest_summary,json=latestSummary,proto3" json:"latest_summary,omitempty"` |
| // Output only. The annotations that were generated during the customer and |
| // agent interaction. |
| RuntimeAnnotations []*RuntimeAnnotation `protobuf:"bytes,13,rep,name=runtime_annotations,json=runtimeAnnotations,proto3" json:"runtime_annotations,omitempty"` |
| // Output only. All the matched Dialogflow intents in the call. The key |
| // corresponds to a Dialogflow intent, format: |
| // projects/{project}/agent/{agent}/intents/{intent} |
| DialogflowIntents map[string]*DialogflowIntent `protobuf:"bytes,18,rep,name=dialogflow_intents,json=dialogflowIntents,proto3" json:"dialogflow_intents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Obfuscated user ID which the customer sent to us. |
| ObfuscatedUserId string `protobuf:"bytes,21,opt,name=obfuscated_user_id,json=obfuscatedUserId,proto3" json:"obfuscated_user_id,omitempty"` |
| } |
| |
| func (x *Conversation) Reset() { |
| *x = Conversation{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation) ProtoMessage() {} |
| |
| func (x *Conversation) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[0] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation.ProtoReflect.Descriptor instead. |
| func (*Conversation) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (m *Conversation) GetMetadata() isConversation_Metadata { |
| if m != nil { |
| return m.Metadata |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetCallMetadata() *Conversation_CallMetadata { |
| if x, ok := x.GetMetadata().(*Conversation_CallMetadata_); ok { |
| return x.CallMetadata |
| } |
| return nil |
| } |
| |
| func (m *Conversation) GetExpiration() isConversation_Expiration { |
| if m != nil { |
| return m.Expiration |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetExpireTime() *timestamppb.Timestamp { |
| if x, ok := x.GetExpiration().(*Conversation_ExpireTime); ok { |
| return x.ExpireTime |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetTtl() *durationpb.Duration { |
| if x, ok := x.GetExpiration().(*Conversation_Ttl); ok { |
| return x.Ttl |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Conversation) GetDataSource() *ConversationDataSource { |
| if x != nil { |
| return x.DataSource |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetStartTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.StartTime |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetLanguageCode() string { |
| if x != nil { |
| return x.LanguageCode |
| } |
| return "" |
| } |
| |
| func (x *Conversation) GetAgentId() string { |
| if x != nil { |
| return x.AgentId |
| } |
| return "" |
| } |
| |
| func (x *Conversation) GetLabels() map[string]string { |
| if x != nil { |
| return x.Labels |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetQualityMetadata() *Conversation_QualityMetadata { |
| if x != nil { |
| return x.QualityMetadata |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetTranscript() *Conversation_Transcript { |
| if x != nil { |
| return x.Transcript |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetMedium() Conversation_Medium { |
| if x != nil { |
| return x.Medium |
| } |
| return Conversation_MEDIUM_UNSPECIFIED |
| } |
| |
| func (x *Conversation) GetDuration() *durationpb.Duration { |
| if x != nil { |
| return x.Duration |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetTurnCount() int32 { |
| if x != nil { |
| return x.TurnCount |
| } |
| return 0 |
| } |
| |
| func (x *Conversation) GetLatestAnalysis() *Analysis { |
| if x != nil { |
| return x.LatestAnalysis |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetLatestSummary() *ConversationSummarizationSuggestionData { |
| if x != nil { |
| return x.LatestSummary |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetRuntimeAnnotations() []*RuntimeAnnotation { |
| if x != nil { |
| return x.RuntimeAnnotations |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetDialogflowIntents() map[string]*DialogflowIntent { |
| if x != nil { |
| return x.DialogflowIntents |
| } |
| return nil |
| } |
| |
| func (x *Conversation) GetObfuscatedUserId() string { |
| if x != nil { |
| return x.ObfuscatedUserId |
| } |
| return "" |
| } |
| |
| type isConversation_Metadata interface { |
| isConversation_Metadata() |
| } |
| |
| type Conversation_CallMetadata_ struct { |
| // Call-specific metadata. |
| CallMetadata *Conversation_CallMetadata `protobuf:"bytes,7,opt,name=call_metadata,json=callMetadata,proto3,oneof"` |
| } |
| |
| func (*Conversation_CallMetadata_) isConversation_Metadata() {} |
| |
| type isConversation_Expiration interface { |
| isConversation_Expiration() |
| } |
| |
| type Conversation_ExpireTime struct { |
| // The time at which this conversation should expire. After this time, the |
| // conversation data and any associated analyses will be deleted. |
| ExpireTime *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=expire_time,json=expireTime,proto3,oneof"` |
| } |
| |
| type Conversation_Ttl struct { |
| // Input only. The TTL for this resource. If specified, then this TTL will |
| // be used to calculate the expire time. |
| Ttl *durationpb.Duration `protobuf:"bytes,16,opt,name=ttl,proto3,oneof"` |
| } |
| |
| func (*Conversation_ExpireTime) isConversation_Expiration() {} |
| |
| func (*Conversation_Ttl) isConversation_Expiration() {} |
| |
| // The analysis resource. |
| type Analysis struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The resource name of the analysis. |
| // Format: |
| // projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis} |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Output only. The time at which the analysis was requested. |
| RequestTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"` |
| // Output only. The time at which the analysis was created, which occurs when |
| // the long-running operation completes. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The result of the analysis, which is populated when the |
| // analysis finishes. |
| AnalysisResult *AnalysisResult `protobuf:"bytes,7,opt,name=analysis_result,json=analysisResult,proto3" json:"analysis_result,omitempty"` |
| // To select the annotators to run and the phrase matchers to use |
| // (if any). If not specified, all annotators will be run. |
| AnnotatorSelector *AnnotatorSelector `protobuf:"bytes,8,opt,name=annotator_selector,json=annotatorSelector,proto3" json:"annotator_selector,omitempty"` |
| } |
| |
| func (x *Analysis) Reset() { |
| *x = Analysis{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Analysis) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Analysis) ProtoMessage() {} |
| |
| func (x *Analysis) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[1] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Analysis.ProtoReflect.Descriptor instead. |
| func (*Analysis) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *Analysis) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Analysis) GetRequestTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.RequestTime |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetAnalysisResult() *AnalysisResult { |
| if x != nil { |
| return x.AnalysisResult |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetAnnotatorSelector() *AnnotatorSelector { |
| if x != nil { |
| return x.AnnotatorSelector |
| } |
| return nil |
| } |
| |
| // The conversation source, which is a combination of transcript and audio. |
| type ConversationDataSource struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The source of the conversation. |
| // |
| // Types that are assignable to Source: |
| // |
| // *ConversationDataSource_GcsSource |
| // *ConversationDataSource_DialogflowSource |
| Source isConversationDataSource_Source `protobuf_oneof:"source"` |
| } |
| |
| func (x *ConversationDataSource) Reset() { |
| *x = ConversationDataSource{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ConversationDataSource) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ConversationDataSource) ProtoMessage() {} |
| |
| func (x *ConversationDataSource) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[2] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ConversationDataSource.ProtoReflect.Descriptor instead. |
| func (*ConversationDataSource) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (m *ConversationDataSource) GetSource() isConversationDataSource_Source { |
| if m != nil { |
| return m.Source |
| } |
| return nil |
| } |
| |
| func (x *ConversationDataSource) GetGcsSource() *GcsSource { |
| if x, ok := x.GetSource().(*ConversationDataSource_GcsSource); ok { |
| return x.GcsSource |
| } |
| return nil |
| } |
| |
| func (x *ConversationDataSource) GetDialogflowSource() *DialogflowSource { |
| if x, ok := x.GetSource().(*ConversationDataSource_DialogflowSource); ok { |
| return x.DialogflowSource |
| } |
| return nil |
| } |
| |
| type isConversationDataSource_Source interface { |
| isConversationDataSource_Source() |
| } |
| |
| type ConversationDataSource_GcsSource struct { |
| // A Cloud Storage location specification for the audio and transcript. |
| GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3,oneof"` |
| } |
| |
| type ConversationDataSource_DialogflowSource struct { |
| // The source when the conversation comes from Dialogflow. |
| DialogflowSource *DialogflowSource `protobuf:"bytes,3,opt,name=dialogflow_source,json=dialogflowSource,proto3,oneof"` |
| } |
| |
| func (*ConversationDataSource_GcsSource) isConversationDataSource_Source() {} |
| |
| func (*ConversationDataSource_DialogflowSource) isConversationDataSource_Source() {} |
| |
| // A Cloud Storage source of conversation data. |
| type GcsSource struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Cloud Storage URI that points to a file that contains the conversation |
| // audio. |
| AudioUri string `protobuf:"bytes,1,opt,name=audio_uri,json=audioUri,proto3" json:"audio_uri,omitempty"` |
| // Immutable. Cloud Storage URI that points to a file that contains the |
| // conversation transcript. |
| TranscriptUri string `protobuf:"bytes,2,opt,name=transcript_uri,json=transcriptUri,proto3" json:"transcript_uri,omitempty"` |
| } |
| |
| func (x *GcsSource) Reset() { |
| *x = GcsSource{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GcsSource) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GcsSource) ProtoMessage() {} |
| |
| func (x *GcsSource) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[3] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use GcsSource.ProtoReflect.Descriptor instead. |
| func (*GcsSource) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *GcsSource) GetAudioUri() string { |
| if x != nil { |
| return x.AudioUri |
| } |
| return "" |
| } |
| |
| func (x *GcsSource) GetTranscriptUri() string { |
| if x != nil { |
| return x.TranscriptUri |
| } |
| return "" |
| } |
| |
| // A Dialogflow source of conversation data. |
| type DialogflowSource struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Output only. The name of the Dialogflow conversation that this conversation |
| // resource is derived from. Format: |
| // projects/{project}/locations/{location}/conversations/{conversation} |
| DialogflowConversation string `protobuf:"bytes,1,opt,name=dialogflow_conversation,json=dialogflowConversation,proto3" json:"dialogflow_conversation,omitempty"` |
| // Cloud Storage URI that points to a file that contains the conversation |
| // audio. |
| AudioUri string `protobuf:"bytes,3,opt,name=audio_uri,json=audioUri,proto3" json:"audio_uri,omitempty"` |
| } |
| |
| func (x *DialogflowSource) Reset() { |
| *x = DialogflowSource{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DialogflowSource) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DialogflowSource) ProtoMessage() {} |
| |
| func (x *DialogflowSource) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[4] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use DialogflowSource.ProtoReflect.Descriptor instead. |
| func (*DialogflowSource) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *DialogflowSource) GetDialogflowConversation() string { |
| if x != nil { |
| return x.DialogflowConversation |
| } |
| return "" |
| } |
| |
| func (x *DialogflowSource) GetAudioUri() string { |
| if x != nil { |
| return x.AudioUri |
| } |
| return "" |
| } |
| |
| // The result of an analysis. |
| type AnalysisResult struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Metadata discovered during analysis. |
| // |
| // Types that are assignable to Metadata: |
| // |
| // *AnalysisResult_CallAnalysisMetadata_ |
| Metadata isAnalysisResult_Metadata `protobuf_oneof:"metadata"` |
| // The time at which the analysis ended. |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| } |
| |
| func (x *AnalysisResult) Reset() { |
| *x = AnalysisResult{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AnalysisResult) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AnalysisResult) ProtoMessage() {} |
| |
| func (x *AnalysisResult) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[5] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AnalysisResult.ProtoReflect.Descriptor instead. |
| func (*AnalysisResult) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (m *AnalysisResult) GetMetadata() isAnalysisResult_Metadata { |
| if m != nil { |
| return m.Metadata |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult) GetCallAnalysisMetadata() *AnalysisResult_CallAnalysisMetadata { |
| if x, ok := x.GetMetadata().(*AnalysisResult_CallAnalysisMetadata_); ok { |
| return x.CallAnalysisMetadata |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| type isAnalysisResult_Metadata interface { |
| isAnalysisResult_Metadata() |
| } |
| |
| type AnalysisResult_CallAnalysisMetadata_ struct { |
| // Call-specific metadata created by the analysis. |
| CallAnalysisMetadata *AnalysisResult_CallAnalysisMetadata `protobuf:"bytes,2,opt,name=call_analysis_metadata,json=callAnalysisMetadata,proto3,oneof"` |
| } |
| |
| func (*AnalysisResult_CallAnalysisMetadata_) isAnalysisResult_Metadata() {} |
| |
| // Issue Modeling result on a conversation. |
| type IssueModelResult struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Issue model that generates the result. |
| // Format: projects/{project}/locations/{location}/issueModels/{issue_model} |
| IssueModel string `protobuf:"bytes,1,opt,name=issue_model,json=issueModel,proto3" json:"issue_model,omitempty"` |
| // All the matched issues. |
| Issues []*IssueAssignment `protobuf:"bytes,2,rep,name=issues,proto3" json:"issues,omitempty"` |
| } |
| |
| func (x *IssueModelResult) Reset() { |
| *x = IssueModelResult{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueModelResult) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueModelResult) ProtoMessage() {} |
| |
| func (x *IssueModelResult) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[6] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueModelResult.ProtoReflect.Descriptor instead. |
| func (*IssueModelResult) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *IssueModelResult) GetIssueModel() string { |
| if x != nil { |
| return x.IssueModel |
| } |
| return "" |
| } |
| |
| func (x *IssueModelResult) GetIssues() []*IssueAssignment { |
| if x != nil { |
| return x.Issues |
| } |
| return nil |
| } |
| |
| // One channel of conversation-level sentiment data. |
| type ConversationLevelSentiment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The channel of the audio that the data applies to. |
| ChannelTag int32 `protobuf:"varint,1,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` |
| // Data specifying sentiment. |
| SentimentData *SentimentData `protobuf:"bytes,2,opt,name=sentiment_data,json=sentimentData,proto3" json:"sentiment_data,omitempty"` |
| } |
| |
| func (x *ConversationLevelSentiment) Reset() { |
| *x = ConversationLevelSentiment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ConversationLevelSentiment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ConversationLevelSentiment) ProtoMessage() {} |
| |
| func (x *ConversationLevelSentiment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[7] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ConversationLevelSentiment.ProtoReflect.Descriptor instead. |
| func (*ConversationLevelSentiment) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *ConversationLevelSentiment) GetChannelTag() int32 { |
| if x != nil { |
| return x.ChannelTag |
| } |
| return 0 |
| } |
| |
| func (x *ConversationLevelSentiment) GetSentimentData() *SentimentData { |
| if x != nil { |
| return x.SentimentData |
| } |
| return nil |
| } |
| |
| // Information about the issue. |
| type IssueAssignment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Resource name of the assigned issue. |
| Issue string `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"` |
| // Score indicating the likelihood of the issue assignment. |
| // currently bounded on [0,1]. |
| Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` |
| // Immutable. Display name of the assigned issue. This field is set at time of |
| // analyis and immutable since then. |
| DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| } |
| |
| func (x *IssueAssignment) Reset() { |
| *x = IssueAssignment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueAssignment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueAssignment) ProtoMessage() {} |
| |
| func (x *IssueAssignment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[8] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueAssignment.ProtoReflect.Descriptor instead. |
| func (*IssueAssignment) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *IssueAssignment) GetIssue() string { |
| if x != nil { |
| return x.Issue |
| } |
| return "" |
| } |
| |
| func (x *IssueAssignment) GetScore() float64 { |
| if x != nil { |
| return x.Score |
| } |
| return 0 |
| } |
| |
| func (x *IssueAssignment) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| // A piece of metadata that applies to a window of a call. |
| type CallAnnotation struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The data in the annotation. |
| // |
| // Types that are assignable to Data: |
| // |
| // *CallAnnotation_InterruptionData |
| // *CallAnnotation_SentimentData |
| // *CallAnnotation_SilenceData |
| // *CallAnnotation_HoldData |
| // *CallAnnotation_EntityMentionData |
| // *CallAnnotation_IntentMatchData |
| // *CallAnnotation_PhraseMatchData |
| // *CallAnnotation_IssueMatchData |
| Data isCallAnnotation_Data `protobuf_oneof:"data"` |
| // The channel of the audio where the annotation occurs. For single-channel |
| // audio, this field is not populated. |
| ChannelTag int32 `protobuf:"varint,1,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` |
| // The boundary in the conversation where the annotation starts, inclusive. |
| AnnotationStartBoundary *AnnotationBoundary `protobuf:"bytes,4,opt,name=annotation_start_boundary,json=annotationStartBoundary,proto3" json:"annotation_start_boundary,omitempty"` |
| // The boundary in the conversation where the annotation ends, inclusive. |
| AnnotationEndBoundary *AnnotationBoundary `protobuf:"bytes,5,opt,name=annotation_end_boundary,json=annotationEndBoundary,proto3" json:"annotation_end_boundary,omitempty"` |
| } |
| |
| func (x *CallAnnotation) Reset() { |
| *x = CallAnnotation{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CallAnnotation) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CallAnnotation) ProtoMessage() {} |
| |
| func (x *CallAnnotation) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[9] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use CallAnnotation.ProtoReflect.Descriptor instead. |
| func (*CallAnnotation) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (m *CallAnnotation) GetData() isCallAnnotation_Data { |
| if m != nil { |
| return m.Data |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetInterruptionData() *InterruptionData { |
| if x, ok := x.GetData().(*CallAnnotation_InterruptionData); ok { |
| return x.InterruptionData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetSentimentData() *SentimentData { |
| if x, ok := x.GetData().(*CallAnnotation_SentimentData); ok { |
| return x.SentimentData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetSilenceData() *SilenceData { |
| if x, ok := x.GetData().(*CallAnnotation_SilenceData); ok { |
| return x.SilenceData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetHoldData() *HoldData { |
| if x, ok := x.GetData().(*CallAnnotation_HoldData); ok { |
| return x.HoldData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetEntityMentionData() *EntityMentionData { |
| if x, ok := x.GetData().(*CallAnnotation_EntityMentionData); ok { |
| return x.EntityMentionData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetIntentMatchData() *IntentMatchData { |
| if x, ok := x.GetData().(*CallAnnotation_IntentMatchData); ok { |
| return x.IntentMatchData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetPhraseMatchData() *PhraseMatchData { |
| if x, ok := x.GetData().(*CallAnnotation_PhraseMatchData); ok { |
| return x.PhraseMatchData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetIssueMatchData() *IssueMatchData { |
| if x, ok := x.GetData().(*CallAnnotation_IssueMatchData); ok { |
| return x.IssueMatchData |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetChannelTag() int32 { |
| if x != nil { |
| return x.ChannelTag |
| } |
| return 0 |
| } |
| |
| func (x *CallAnnotation) GetAnnotationStartBoundary() *AnnotationBoundary { |
| if x != nil { |
| return x.AnnotationStartBoundary |
| } |
| return nil |
| } |
| |
| func (x *CallAnnotation) GetAnnotationEndBoundary() *AnnotationBoundary { |
| if x != nil { |
| return x.AnnotationEndBoundary |
| } |
| return nil |
| } |
| |
| type isCallAnnotation_Data interface { |
| isCallAnnotation_Data() |
| } |
| |
| type CallAnnotation_InterruptionData struct { |
| // Data specifying an interruption. |
| InterruptionData *InterruptionData `protobuf:"bytes,10,opt,name=interruption_data,json=interruptionData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_SentimentData struct { |
| // Data specifying sentiment. |
| SentimentData *SentimentData `protobuf:"bytes,11,opt,name=sentiment_data,json=sentimentData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_SilenceData struct { |
| // Data specifying silence. |
| SilenceData *SilenceData `protobuf:"bytes,12,opt,name=silence_data,json=silenceData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_HoldData struct { |
| // Data specifying a hold. |
| HoldData *HoldData `protobuf:"bytes,13,opt,name=hold_data,json=holdData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_EntityMentionData struct { |
| // Data specifying an entity mention. |
| EntityMentionData *EntityMentionData `protobuf:"bytes,15,opt,name=entity_mention_data,json=entityMentionData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_IntentMatchData struct { |
| // Data specifying an intent match. |
| IntentMatchData *IntentMatchData `protobuf:"bytes,16,opt,name=intent_match_data,json=intentMatchData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_PhraseMatchData struct { |
| // Data specifying a phrase match. |
| PhraseMatchData *PhraseMatchData `protobuf:"bytes,17,opt,name=phrase_match_data,json=phraseMatchData,proto3,oneof"` |
| } |
| |
| type CallAnnotation_IssueMatchData struct { |
| // Data specifying an issue match. |
| IssueMatchData *IssueMatchData `protobuf:"bytes,18,opt,name=issue_match_data,json=issueMatchData,proto3,oneof"` |
| } |
| |
| func (*CallAnnotation_InterruptionData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_SentimentData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_SilenceData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_HoldData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_EntityMentionData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_IntentMatchData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_PhraseMatchData) isCallAnnotation_Data() {} |
| |
| func (*CallAnnotation_IssueMatchData) isCallAnnotation_Data() {} |
| |
| // A point in a conversation that marks the start or the end of an annotation. |
| type AnnotationBoundary struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A detailed boundary, which describes a more specific point. |
| // |
| // Types that are assignable to DetailedBoundary: |
| // |
| // *AnnotationBoundary_WordIndex |
| DetailedBoundary isAnnotationBoundary_DetailedBoundary `protobuf_oneof:"detailed_boundary"` |
| // The index in the sequence of transcribed pieces of the conversation where |
| // the boundary is located. This index starts at zero. |
| TranscriptIndex int32 `protobuf:"varint,1,opt,name=transcript_index,json=transcriptIndex,proto3" json:"transcript_index,omitempty"` |
| } |
| |
| func (x *AnnotationBoundary) Reset() { |
| *x = AnnotationBoundary{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AnnotationBoundary) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AnnotationBoundary) ProtoMessage() {} |
| |
| func (x *AnnotationBoundary) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[10] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AnnotationBoundary.ProtoReflect.Descriptor instead. |
| func (*AnnotationBoundary) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (m *AnnotationBoundary) GetDetailedBoundary() isAnnotationBoundary_DetailedBoundary { |
| if m != nil { |
| return m.DetailedBoundary |
| } |
| return nil |
| } |
| |
| func (x *AnnotationBoundary) GetWordIndex() int32 { |
| if x, ok := x.GetDetailedBoundary().(*AnnotationBoundary_WordIndex); ok { |
| return x.WordIndex |
| } |
| return 0 |
| } |
| |
| func (x *AnnotationBoundary) GetTranscriptIndex() int32 { |
| if x != nil { |
| return x.TranscriptIndex |
| } |
| return 0 |
| } |
| |
| type isAnnotationBoundary_DetailedBoundary interface { |
| isAnnotationBoundary_DetailedBoundary() |
| } |
| |
| type AnnotationBoundary_WordIndex struct { |
| // The word index of this boundary with respect to the first word in the |
| // transcript piece. This index starts at zero. |
| WordIndex int32 `protobuf:"varint,3,opt,name=word_index,json=wordIndex,proto3,oneof"` |
| } |
| |
| func (*AnnotationBoundary_WordIndex) isAnnotationBoundary_DetailedBoundary() {} |
| |
| // The data for an entity annotation. |
| // Represents a phrase in the conversation that is a known entity, such |
| // as a person, an organization, or location. |
| type Entity struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The representative name for the entity. |
| DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| // The entity type. |
| Type Entity_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.contactcenterinsights.v1.Entity_Type" json:"type,omitempty"` |
| // Metadata associated with the entity. |
| // |
| // For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`) |
| // and Knowledge Graph MID (`mid`), if they are available. For the metadata |
| // associated with other entity types, see the Type table below. |
| Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The salience score associated with the entity in the [0, 1.0] range. |
| // |
| // The salience score for an entity provides information about the |
| // importance or centrality of that entity to the entire document text. |
| // Scores closer to 0 are less salient, while scores closer to 1.0 are highly |
| // salient. |
| Salience float32 `protobuf:"fixed32,4,opt,name=salience,proto3" json:"salience,omitempty"` |
| // The aggregate sentiment expressed for this entity in the conversation. |
| Sentiment *SentimentData `protobuf:"bytes,5,opt,name=sentiment,proto3" json:"sentiment,omitempty"` |
| } |
| |
| func (x *Entity) Reset() { |
| *x = Entity{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Entity) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Entity) ProtoMessage() {} |
| |
| func (x *Entity) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[11] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Entity.ProtoReflect.Descriptor instead. |
| func (*Entity) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *Entity) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| func (x *Entity) GetType() Entity_Type { |
| if x != nil { |
| return x.Type |
| } |
| return Entity_TYPE_UNSPECIFIED |
| } |
| |
| func (x *Entity) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetSalience() float32 { |
| if x != nil { |
| return x.Salience |
| } |
| return 0 |
| } |
| |
| func (x *Entity) GetSentiment() *SentimentData { |
| if x != nil { |
| return x.Sentiment |
| } |
| return nil |
| } |
| |
| // The data for an intent. |
| // Represents a detected intent in the conversation, for example MAKES_PROMISE. |
| type Intent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The unique identifier of the intent. |
| Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` |
| // The human-readable name of the intent. |
| DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| } |
| |
| func (x *Intent) Reset() { |
| *x = Intent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Intent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Intent) ProtoMessage() {} |
| |
| func (x *Intent) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[12] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Intent.ProtoReflect.Descriptor instead. |
| func (*Intent) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *Intent) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *Intent) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| // The data for a matched phrase matcher. |
| // Represents information identifying a phrase matcher for a given match. |
| type PhraseMatchData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The unique identifier (the resource name) of the phrase matcher. |
| PhraseMatcher string `protobuf:"bytes,1,opt,name=phrase_matcher,json=phraseMatcher,proto3" json:"phrase_matcher,omitempty"` |
| // The human-readable name of the phrase matcher. |
| DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| } |
| |
| func (x *PhraseMatchData) Reset() { |
| *x = PhraseMatchData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PhraseMatchData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PhraseMatchData) ProtoMessage() {} |
| |
| func (x *PhraseMatchData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[13] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use PhraseMatchData.ProtoReflect.Descriptor instead. |
| func (*PhraseMatchData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *PhraseMatchData) GetPhraseMatcher() string { |
| if x != nil { |
| return x.PhraseMatcher |
| } |
| return "" |
| } |
| |
| func (x *PhraseMatchData) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| // The data for a Dialogflow intent. |
| // Represents a detected intent in the conversation, e.g. MAKES_PROMISE. |
| type DialogflowIntent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The human-readable name of the intent. |
| DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| } |
| |
| func (x *DialogflowIntent) Reset() { |
| *x = DialogflowIntent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DialogflowIntent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DialogflowIntent) ProtoMessage() {} |
| |
| func (x *DialogflowIntent) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[14] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use DialogflowIntent.ProtoReflect.Descriptor instead. |
| func (*DialogflowIntent) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{14} |
| } |
| |
| func (x *DialogflowIntent) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| // The data for an interruption annotation. |
| type InterruptionData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *InterruptionData) Reset() { |
| *x = InterruptionData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *InterruptionData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*InterruptionData) ProtoMessage() {} |
| |
| func (x *InterruptionData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[15] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use InterruptionData.ProtoReflect.Descriptor instead. |
| func (*InterruptionData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{15} |
| } |
| |
| // The data for a silence annotation. |
| type SilenceData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *SilenceData) Reset() { |
| *x = SilenceData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SilenceData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SilenceData) ProtoMessage() {} |
| |
| func (x *SilenceData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[16] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SilenceData.ProtoReflect.Descriptor instead. |
| func (*SilenceData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{16} |
| } |
| |
| // The data for a hold annotation. |
| type HoldData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *HoldData) Reset() { |
| *x = HoldData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *HoldData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*HoldData) ProtoMessage() {} |
| |
| func (x *HoldData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[17] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use HoldData.ProtoReflect.Descriptor instead. |
| func (*HoldData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{17} |
| } |
| |
| // The data for an entity mention annotation. |
| // This represents a mention of an `Entity` in the conversation. |
| type EntityMentionData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The key of this entity in conversation entities. |
| // Can be used to retrieve the exact `Entity` this mention is attached to. |
| EntityUniqueId string `protobuf:"bytes,1,opt,name=entity_unique_id,json=entityUniqueId,proto3" json:"entity_unique_id,omitempty"` |
| // The type of the entity mention. |
| Type EntityMentionData_MentionType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.contactcenterinsights.v1.EntityMentionData_MentionType" json:"type,omitempty"` |
| // Sentiment expressed for this mention of the entity. |
| Sentiment *SentimentData `protobuf:"bytes,3,opt,name=sentiment,proto3" json:"sentiment,omitempty"` |
| } |
| |
| func (x *EntityMentionData) Reset() { |
| *x = EntityMentionData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityMentionData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityMentionData) ProtoMessage() {} |
| |
| func (x *EntityMentionData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[18] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use EntityMentionData.ProtoReflect.Descriptor instead. |
| func (*EntityMentionData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{18} |
| } |
| |
| func (x *EntityMentionData) GetEntityUniqueId() string { |
| if x != nil { |
| return x.EntityUniqueId |
| } |
| return "" |
| } |
| |
| func (x *EntityMentionData) GetType() EntityMentionData_MentionType { |
| if x != nil { |
| return x.Type |
| } |
| return EntityMentionData_MENTION_TYPE_UNSPECIFIED |
| } |
| |
| func (x *EntityMentionData) GetSentiment() *SentimentData { |
| if x != nil { |
| return x.Sentiment |
| } |
| return nil |
| } |
| |
| // The data for an intent match. |
| // Represents an intent match for a text segment in the conversation. A text |
| // segment can be part of a sentence, a complete sentence, or an utterance |
| // with multiple sentences. |
| type IntentMatchData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The id of the matched intent. |
| // Can be used to retrieve the corresponding intent information. |
| IntentUniqueId string `protobuf:"bytes,1,opt,name=intent_unique_id,json=intentUniqueId,proto3" json:"intent_unique_id,omitempty"` |
| } |
| |
| func (x *IntentMatchData) Reset() { |
| *x = IntentMatchData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IntentMatchData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IntentMatchData) ProtoMessage() {} |
| |
| func (x *IntentMatchData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[19] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IntentMatchData.ProtoReflect.Descriptor instead. |
| func (*IntentMatchData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{19} |
| } |
| |
| func (x *IntentMatchData) GetIntentUniqueId() string { |
| if x != nil { |
| return x.IntentUniqueId |
| } |
| return "" |
| } |
| |
| // The data for a sentiment annotation. |
| type SentimentData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A non-negative number from 0 to infinity which represents the abolute |
| // magnitude of sentiment regardless of score. |
| Magnitude float32 `protobuf:"fixed32,1,opt,name=magnitude,proto3" json:"magnitude,omitempty"` |
| // The sentiment score between -1.0 (negative) and 1.0 (positive). |
| Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"` |
| } |
| |
| func (x *SentimentData) Reset() { |
| *x = SentimentData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SentimentData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SentimentData) ProtoMessage() {} |
| |
| func (x *SentimentData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[20] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SentimentData.ProtoReflect.Descriptor instead. |
| func (*SentimentData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{20} |
| } |
| |
| func (x *SentimentData) GetMagnitude() float32 { |
| if x != nil { |
| return x.Magnitude |
| } |
| return 0 |
| } |
| |
| func (x *SentimentData) GetScore() float32 { |
| if x != nil { |
| return x.Score |
| } |
| return 0 |
| } |
| |
| // The data for an issue match annotation. |
| type IssueMatchData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Information about the issue's assignment. |
| IssueAssignment *IssueAssignment `protobuf:"bytes,1,opt,name=issue_assignment,json=issueAssignment,proto3" json:"issue_assignment,omitempty"` |
| } |
| |
| func (x *IssueMatchData) Reset() { |
| *x = IssueMatchData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueMatchData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueMatchData) ProtoMessage() {} |
| |
| func (x *IssueMatchData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[21] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueMatchData.ProtoReflect.Descriptor instead. |
| func (*IssueMatchData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{21} |
| } |
| |
| func (x *IssueMatchData) GetIssueAssignment() *IssueAssignment { |
| if x != nil { |
| return x.IssueAssignment |
| } |
| return nil |
| } |
| |
| // The issue model resource. |
| type IssueModel struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The resource name of the issue model. |
| // Format: |
| // projects/{project}/locations/{location}/issueModels/{issue_model} |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // The representative name for the issue model. |
| DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| // Output only. The time at which this issue model was created. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The most recent time at which the issue model was updated. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // Output only. Number of issues in this issue model. |
| IssueCount int64 `protobuf:"varint,8,opt,name=issue_count,json=issueCount,proto3" json:"issue_count,omitempty"` |
| // Output only. State of the model. |
| State IssueModel_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.contactcenterinsights.v1.IssueModel_State" json:"state,omitempty"` |
| // Configs for the input data that used to create the issue model. |
| InputDataConfig *IssueModel_InputDataConfig `protobuf:"bytes,6,opt,name=input_data_config,json=inputDataConfig,proto3" json:"input_data_config,omitempty"` |
| // Output only. Immutable. The issue model's label statistics on its training |
| // data. |
| TrainingStats *IssueModelLabelStats `protobuf:"bytes,7,opt,name=training_stats,json=trainingStats,proto3" json:"training_stats,omitempty"` |
| // Type of the model. |
| ModelType IssueModel_ModelType `protobuf:"varint,9,opt,name=model_type,json=modelType,proto3,enum=google.cloud.contactcenterinsights.v1.IssueModel_ModelType" json:"model_type,omitempty"` |
| // Language of the model. |
| LanguageCode string `protobuf:"bytes,10,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` |
| } |
| |
| func (x *IssueModel) Reset() { |
| *x = IssueModel{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueModel) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueModel) ProtoMessage() {} |
| |
| func (x *IssueModel) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[22] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueModel.ProtoReflect.Descriptor instead. |
| func (*IssueModel) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{22} |
| } |
| |
| func (x *IssueModel) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *IssueModel) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| func (x *IssueModel) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *IssueModel) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *IssueModel) GetIssueCount() int64 { |
| if x != nil { |
| return x.IssueCount |
| } |
| return 0 |
| } |
| |
| func (x *IssueModel) GetState() IssueModel_State { |
| if x != nil { |
| return x.State |
| } |
| return IssueModel_STATE_UNSPECIFIED |
| } |
| |
| func (x *IssueModel) GetInputDataConfig() *IssueModel_InputDataConfig { |
| if x != nil { |
| return x.InputDataConfig |
| } |
| return nil |
| } |
| |
| func (x *IssueModel) GetTrainingStats() *IssueModelLabelStats { |
| if x != nil { |
| return x.TrainingStats |
| } |
| return nil |
| } |
| |
| func (x *IssueModel) GetModelType() IssueModel_ModelType { |
| if x != nil { |
| return x.ModelType |
| } |
| return IssueModel_MODEL_TYPE_UNSPECIFIED |
| } |
| |
| func (x *IssueModel) GetLanguageCode() string { |
| if x != nil { |
| return x.LanguageCode |
| } |
| return "" |
| } |
| |
| // The issue resource. |
| type Issue struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The resource name of the issue. |
| // Format: |
| // projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue} |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // The representative name for the issue. |
| DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| // Output only. The time at which this issue was created. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The most recent time that this issue was updated. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // Output only. Resource names of the sample representative utterances that |
| // match to this issue. |
| SampleUtterances []string `protobuf:"bytes,6,rep,name=sample_utterances,json=sampleUtterances,proto3" json:"sample_utterances,omitempty"` |
| } |
| |
| func (x *Issue) Reset() { |
| *x = Issue{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Issue) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Issue) ProtoMessage() {} |
| |
| func (x *Issue) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[23] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Issue.ProtoReflect.Descriptor instead. |
| func (*Issue) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{23} |
| } |
| |
| func (x *Issue) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Issue) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| func (x *Issue) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Issue) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *Issue) GetSampleUtterances() []string { |
| if x != nil { |
| return x.SampleUtterances |
| } |
| return nil |
| } |
| |
| // Aggregated statistics about an issue model. |
| type IssueModelLabelStats struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Number of conversations the issue model has analyzed at this point in time. |
| AnalyzedConversationsCount int64 `protobuf:"varint,1,opt,name=analyzed_conversations_count,json=analyzedConversationsCount,proto3" json:"analyzed_conversations_count,omitempty"` |
| // Number of analyzed conversations for which no issue was applicable at this |
| // point in time. |
| UnclassifiedConversationsCount int64 `protobuf:"varint,2,opt,name=unclassified_conversations_count,json=unclassifiedConversationsCount,proto3" json:"unclassified_conversations_count,omitempty"` |
| // Statistics on each issue. Key is the issue's resource name. |
| IssueStats map[string]*IssueModelLabelStats_IssueStats `protobuf:"bytes,3,rep,name=issue_stats,json=issueStats,proto3" json:"issue_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| } |
| |
| func (x *IssueModelLabelStats) Reset() { |
| *x = IssueModelLabelStats{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[24] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueModelLabelStats) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueModelLabelStats) ProtoMessage() {} |
| |
| func (x *IssueModelLabelStats) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[24] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueModelLabelStats.ProtoReflect.Descriptor instead. |
| func (*IssueModelLabelStats) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{24} |
| } |
| |
| func (x *IssueModelLabelStats) GetAnalyzedConversationsCount() int64 { |
| if x != nil { |
| return x.AnalyzedConversationsCount |
| } |
| return 0 |
| } |
| |
| func (x *IssueModelLabelStats) GetUnclassifiedConversationsCount() int64 { |
| if x != nil { |
| return x.UnclassifiedConversationsCount |
| } |
| return 0 |
| } |
| |
| func (x *IssueModelLabelStats) GetIssueStats() map[string]*IssueModelLabelStats_IssueStats { |
| if x != nil { |
| return x.IssueStats |
| } |
| return nil |
| } |
| |
| // The phrase matcher resource. |
| type PhraseMatcher struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The resource name of the phrase matcher. |
| // Format: |
| // projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher} |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Output only. Immutable. The revision ID of the phrase matcher. |
| // A new revision is committed whenever the matcher is changed, except when it |
| // is activated or deactivated. A server generated random ID will be used. |
| // Example: locations/global/phraseMatchers/my-first-matcher@1234567 |
| RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"` |
| // The customized version tag to use for the phrase matcher. If not specified, |
| // it will default to `revision_id`. |
| VersionTag string `protobuf:"bytes,3,opt,name=version_tag,json=versionTag,proto3" json:"version_tag,omitempty"` |
| // Output only. The timestamp of when the revision was created. It is also the |
| // create time when a new matcher is added. |
| RevisionCreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=revision_create_time,json=revisionCreateTime,proto3" json:"revision_create_time,omitempty"` |
| // The human-readable name of the phrase matcher. |
| DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| // Required. The type of this phrase matcher. |
| Type PhraseMatcher_PhraseMatcherType `protobuf:"varint,6,opt,name=type,proto3,enum=google.cloud.contactcenterinsights.v1.PhraseMatcher_PhraseMatcherType" json:"type,omitempty"` |
| // Applies the phrase matcher only when it is active. |
| Active bool `protobuf:"varint,7,opt,name=active,proto3" json:"active,omitempty"` |
| // A list of phase match rule groups that are included in this matcher. |
| PhraseMatchRuleGroups []*PhraseMatchRuleGroup `protobuf:"bytes,8,rep,name=phrase_match_rule_groups,json=phraseMatchRuleGroups,proto3" json:"phrase_match_rule_groups,omitempty"` |
| // Output only. The most recent time at which the activation status was |
| // updated. |
| ActivationUpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=activation_update_time,json=activationUpdateTime,proto3" json:"activation_update_time,omitempty"` |
| // The role whose utterances the phrase matcher should be matched |
| // against. If the role is ROLE_UNSPECIFIED it will be matched against any |
| // utterances in the transcript. |
| RoleMatch ConversationParticipant_Role `protobuf:"varint,10,opt,name=role_match,json=roleMatch,proto3,enum=google.cloud.contactcenterinsights.v1.ConversationParticipant_Role" json:"role_match,omitempty"` |
| // Output only. The most recent time at which the phrase matcher was updated. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| } |
| |
| func (x *PhraseMatcher) Reset() { |
| *x = PhraseMatcher{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PhraseMatcher) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PhraseMatcher) ProtoMessage() {} |
| |
| func (x *PhraseMatcher) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[25] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use PhraseMatcher.ProtoReflect.Descriptor instead. |
| func (*PhraseMatcher) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{25} |
| } |
| |
| func (x *PhraseMatcher) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *PhraseMatcher) GetRevisionId() string { |
| if x != nil { |
| return x.RevisionId |
| } |
| return "" |
| } |
| |
| func (x *PhraseMatcher) GetVersionTag() string { |
| if x != nil { |
| return x.VersionTag |
| } |
| return "" |
| } |
| |
| func (x *PhraseMatcher) GetRevisionCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.RevisionCreateTime |
| } |
| return nil |
| } |
| |
| func (x *PhraseMatcher) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| func (x *PhraseMatcher) GetType() PhraseMatcher_PhraseMatcherType { |
| if x != nil { |
| return x.Type |
| } |
| return PhraseMatcher_PHRASE_MATCHER_TYPE_UNSPECIFIED |
| } |
| |
| func (x *PhraseMatcher) GetActive() bool { |
| if x != nil { |
| return x.Active |
| } |
| return false |
| } |
| |
| func (x *PhraseMatcher) GetPhraseMatchRuleGroups() []*PhraseMatchRuleGroup { |
| if x != nil { |
| return x.PhraseMatchRuleGroups |
| } |
| return nil |
| } |
| |
| func (x *PhraseMatcher) GetActivationUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.ActivationUpdateTime |
| } |
| return nil |
| } |
| |
| func (x *PhraseMatcher) GetRoleMatch() ConversationParticipant_Role { |
| if x != nil { |
| return x.RoleMatch |
| } |
| return ConversationParticipant_ROLE_UNSPECIFIED |
| } |
| |
| func (x *PhraseMatcher) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| // A message representing a rule in the phrase matcher. |
| type PhraseMatchRuleGroup struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The type of this phrase match rule group. |
| Type PhraseMatchRuleGroup_PhraseMatchRuleGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup_PhraseMatchRuleGroupType" json:"type,omitempty"` |
| // A list of phrase match rules that are included in this group. |
| PhraseMatchRules []*PhraseMatchRule `protobuf:"bytes,2,rep,name=phrase_match_rules,json=phraseMatchRules,proto3" json:"phrase_match_rules,omitempty"` |
| } |
| |
| func (x *PhraseMatchRuleGroup) Reset() { |
| *x = PhraseMatchRuleGroup{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[26] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PhraseMatchRuleGroup) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PhraseMatchRuleGroup) ProtoMessage() {} |
| |
| func (x *PhraseMatchRuleGroup) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[26] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use PhraseMatchRuleGroup.ProtoReflect.Descriptor instead. |
| func (*PhraseMatchRuleGroup) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{26} |
| } |
| |
| func (x *PhraseMatchRuleGroup) GetType() PhraseMatchRuleGroup_PhraseMatchRuleGroupType { |
| if x != nil { |
| return x.Type |
| } |
| return PhraseMatchRuleGroup_PHRASE_MATCH_RULE_GROUP_TYPE_UNSPECIFIED |
| } |
| |
| func (x *PhraseMatchRuleGroup) GetPhraseMatchRules() []*PhraseMatchRule { |
| if x != nil { |
| return x.PhraseMatchRules |
| } |
| return nil |
| } |
| |
| // The data for a phrase match rule. |
| type PhraseMatchRule struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The phrase to be matched. |
| Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` |
| // Specifies whether the phrase must be missing from the transcript segment or |
| // present in the transcript segment. |
| Negated bool `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"` |
| // Provides additional information about the rule that specifies how to apply |
| // the rule. |
| Config *PhraseMatchRuleConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` |
| } |
| |
| func (x *PhraseMatchRule) Reset() { |
| *x = PhraseMatchRule{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[27] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PhraseMatchRule) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PhraseMatchRule) ProtoMessage() {} |
| |
| func (x *PhraseMatchRule) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[27] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use PhraseMatchRule.ProtoReflect.Descriptor instead. |
| func (*PhraseMatchRule) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{27} |
| } |
| |
| func (x *PhraseMatchRule) GetQuery() string { |
| if x != nil { |
| return x.Query |
| } |
| return "" |
| } |
| |
| func (x *PhraseMatchRule) GetNegated() bool { |
| if x != nil { |
| return x.Negated |
| } |
| return false |
| } |
| |
| func (x *PhraseMatchRule) GetConfig() *PhraseMatchRuleConfig { |
| if x != nil { |
| return x.Config |
| } |
| return nil |
| } |
| |
| // Configuration information of a phrase match rule. |
| type PhraseMatchRuleConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The configuration of the phrase match rule. |
| // |
| // Types that are assignable to Config: |
| // |
| // *PhraseMatchRuleConfig_ExactMatchConfig |
| Config isPhraseMatchRuleConfig_Config `protobuf_oneof:"config"` |
| } |
| |
| func (x *PhraseMatchRuleConfig) Reset() { |
| *x = PhraseMatchRuleConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[28] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *PhraseMatchRuleConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*PhraseMatchRuleConfig) ProtoMessage() {} |
| |
| func (x *PhraseMatchRuleConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[28] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use PhraseMatchRuleConfig.ProtoReflect.Descriptor instead. |
| func (*PhraseMatchRuleConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{28} |
| } |
| |
| func (m *PhraseMatchRuleConfig) GetConfig() isPhraseMatchRuleConfig_Config { |
| if m != nil { |
| return m.Config |
| } |
| return nil |
| } |
| |
| func (x *PhraseMatchRuleConfig) GetExactMatchConfig() *ExactMatchConfig { |
| if x, ok := x.GetConfig().(*PhraseMatchRuleConfig_ExactMatchConfig); ok { |
| return x.ExactMatchConfig |
| } |
| return nil |
| } |
| |
| type isPhraseMatchRuleConfig_Config interface { |
| isPhraseMatchRuleConfig_Config() |
| } |
| |
| type PhraseMatchRuleConfig_ExactMatchConfig struct { |
| // The configuration for the exact match rule. |
| ExactMatchConfig *ExactMatchConfig `protobuf:"bytes,1,opt,name=exact_match_config,json=exactMatchConfig,proto3,oneof"` |
| } |
| |
| func (*PhraseMatchRuleConfig_ExactMatchConfig) isPhraseMatchRuleConfig_Config() {} |
| |
| // Exact match configuration. |
| type ExactMatchConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Whether to consider case sensitivity when performing an exact match. |
| CaseSensitive bool `protobuf:"varint,1,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"` |
| } |
| |
| func (x *ExactMatchConfig) Reset() { |
| *x = ExactMatchConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[29] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ExactMatchConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ExactMatchConfig) ProtoMessage() {} |
| |
| func (x *ExactMatchConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[29] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ExactMatchConfig.ProtoReflect.Descriptor instead. |
| func (*ExactMatchConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{29} |
| } |
| |
| func (x *ExactMatchConfig) GetCaseSensitive() bool { |
| if x != nil { |
| return x.CaseSensitive |
| } |
| return false |
| } |
| |
| // The settings resource. |
| type Settings struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The resource name of the settings resource. |
| // Format: |
| // projects/{project}/locations/{location}/settings |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Output only. The time at which the settings was created. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The time at which the settings were last updated. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // A language code to be applied to each transcript segment unless the segment |
| // already specifies a language code. Language code defaults to "en-US" if it |
| // is neither specified on the segment nor here. |
| LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` |
| // The default TTL for newly-created conversations. If a conversation has a |
| // specified expiration, that value will be used instead. Changing this |
| // value will not change the expiration of existing conversations. |
| // Conversations with no expire time persist until they are deleted. |
| ConversationTtl *durationpb.Duration `protobuf:"bytes,5,opt,name=conversation_ttl,json=conversationTtl,proto3" json:"conversation_ttl,omitempty"` |
| // A map that maps a notification trigger to a Pub/Sub topic. Each time a |
| // specified trigger occurs, Insights will notify the corresponding Pub/Sub |
| // topic. |
| // |
| // Keys are notification triggers. Supported keys are: |
| // |
| // * "all-triggers": Notify each time any of the supported triggers occurs. |
| // * "create-analysis": Notify each time an analysis is created. |
| // * "create-conversation": Notify each time a conversation is created. |
| // * "export-insights-data": Notify each time an export is complete. |
| // * "update-conversation": Notify each time a conversation is updated via |
| // UpdateConversation. |
| // |
| // Values are Pub/Sub topics. The format of each Pub/Sub topic is: |
| // projects/{project}/topics/{topic} |
| PubsubNotificationSettings map[string]string `protobuf:"bytes,6,rep,name=pubsub_notification_settings,json=pubsubNotificationSettings,proto3" json:"pubsub_notification_settings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Default analysis settings. |
| AnalysisConfig *Settings_AnalysisConfig `protobuf:"bytes,7,opt,name=analysis_config,json=analysisConfig,proto3" json:"analysis_config,omitempty"` |
| // Default DLP redaction resources to be applied while ingesting |
| // conversations. |
| RedactionConfig *RedactionConfig `protobuf:"bytes,10,opt,name=redaction_config,json=redactionConfig,proto3" json:"redaction_config,omitempty"` |
| // Optional. Default Speech-to-Text resources to be used while ingesting audio |
| // files. Optional, CCAI Insights will create a default if not provided. |
| SpeechConfig *SpeechConfig `protobuf:"bytes,11,opt,name=speech_config,json=speechConfig,proto3" json:"speech_config,omitempty"` |
| } |
| |
| func (x *Settings) Reset() { |
| *x = Settings{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[30] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Settings) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Settings) ProtoMessage() {} |
| |
| func (x *Settings) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[30] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Settings.ProtoReflect.Descriptor instead. |
| func (*Settings) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{30} |
| } |
| |
| func (x *Settings) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Settings) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Settings) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *Settings) GetLanguageCode() string { |
| if x != nil { |
| return x.LanguageCode |
| } |
| return "" |
| } |
| |
| func (x *Settings) GetConversationTtl() *durationpb.Duration { |
| if x != nil { |
| return x.ConversationTtl |
| } |
| return nil |
| } |
| |
| func (x *Settings) GetPubsubNotificationSettings() map[string]string { |
| if x != nil { |
| return x.PubsubNotificationSettings |
| } |
| return nil |
| } |
| |
| func (x *Settings) GetAnalysisConfig() *Settings_AnalysisConfig { |
| if x != nil { |
| return x.AnalysisConfig |
| } |
| return nil |
| } |
| |
| func (x *Settings) GetRedactionConfig() *RedactionConfig { |
| if x != nil { |
| return x.RedactionConfig |
| } |
| return nil |
| } |
| |
| func (x *Settings) GetSpeechConfig() *SpeechConfig { |
| if x != nil { |
| return x.SpeechConfig |
| } |
| return nil |
| } |
| |
| // DLP resources used for redaction while ingesting conversations. |
| type RedactionConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The fully-qualified DLP deidentify template resource name. |
| // Format: |
| // `projects/{project}/deidentifyTemplates/{template}` |
| DeidentifyTemplate string `protobuf:"bytes,1,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"` |
| // The fully-qualified DLP inspect template resource name. |
| // Format: |
| // `projects/{project}/locations/{location}/inspectTemplates/{template}` |
| InspectTemplate string `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"` |
| } |
| |
| func (x *RedactionConfig) Reset() { |
| *x = RedactionConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[31] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RedactionConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RedactionConfig) ProtoMessage() {} |
| |
| func (x *RedactionConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[31] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use RedactionConfig.ProtoReflect.Descriptor instead. |
| func (*RedactionConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{31} |
| } |
| |
| func (x *RedactionConfig) GetDeidentifyTemplate() string { |
| if x != nil { |
| return x.DeidentifyTemplate |
| } |
| return "" |
| } |
| |
| func (x *RedactionConfig) GetInspectTemplate() string { |
| if x != nil { |
| return x.InspectTemplate |
| } |
| return "" |
| } |
| |
| // Speech-to-Text configuration. |
| type SpeechConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The fully-qualified Speech Recognizer resource name. |
| // Format: |
| // `projects/{project_id}/locations/{location}/recognizer/{recognizer}` |
| SpeechRecognizer string `protobuf:"bytes,1,opt,name=speech_recognizer,json=speechRecognizer,proto3" json:"speech_recognizer,omitempty"` |
| } |
| |
| func (x *SpeechConfig) Reset() { |
| *x = SpeechConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[32] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SpeechConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SpeechConfig) ProtoMessage() {} |
| |
| func (x *SpeechConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[32] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SpeechConfig.ProtoReflect.Descriptor instead. |
| func (*SpeechConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{32} |
| } |
| |
| func (x *SpeechConfig) GetSpeechRecognizer() string { |
| if x != nil { |
| return x.SpeechRecognizer |
| } |
| return "" |
| } |
| |
| // An annotation that was generated during the customer and agent interaction. |
| type RuntimeAnnotation struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The data in the annotation. |
| // |
| // Types that are assignable to Data: |
| // |
| // *RuntimeAnnotation_ArticleSuggestion |
| // *RuntimeAnnotation_FaqAnswer |
| // *RuntimeAnnotation_SmartReply |
| // *RuntimeAnnotation_SmartComposeSuggestion |
| // *RuntimeAnnotation_DialogflowInteraction |
| // *RuntimeAnnotation_ConversationSummarizationSuggestion |
| Data isRuntimeAnnotation_Data `protobuf_oneof:"data"` |
| // The unique identifier of the annotation. |
| // Format: |
| // projects/{project}/locations/{location}/conversationDatasets/{dataset}/conversationDataItems/{data_item}/conversationAnnotations/{annotation} |
| AnnotationId string `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"` |
| // The time at which this annotation was created. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // The boundary in the conversation where the annotation starts, inclusive. |
| StartBoundary *AnnotationBoundary `protobuf:"bytes,3,opt,name=start_boundary,json=startBoundary,proto3" json:"start_boundary,omitempty"` |
| // The boundary in the conversation where the annotation ends, inclusive. |
| EndBoundary *AnnotationBoundary `protobuf:"bytes,4,opt,name=end_boundary,json=endBoundary,proto3" json:"end_boundary,omitempty"` |
| // The feedback that the customer has about the answer in `data`. |
| AnswerFeedback *AnswerFeedback `protobuf:"bytes,5,opt,name=answer_feedback,json=answerFeedback,proto3" json:"answer_feedback,omitempty"` |
| } |
| |
| func (x *RuntimeAnnotation) Reset() { |
| *x = RuntimeAnnotation{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[33] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RuntimeAnnotation) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RuntimeAnnotation) ProtoMessage() {} |
| |
| func (x *RuntimeAnnotation) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[33] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use RuntimeAnnotation.ProtoReflect.Descriptor instead. |
| func (*RuntimeAnnotation) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{33} |
| } |
| |
| func (m *RuntimeAnnotation) GetData() isRuntimeAnnotation_Data { |
| if m != nil { |
| return m.Data |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetArticleSuggestion() *ArticleSuggestionData { |
| if x, ok := x.GetData().(*RuntimeAnnotation_ArticleSuggestion); ok { |
| return x.ArticleSuggestion |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetFaqAnswer() *FaqAnswerData { |
| if x, ok := x.GetData().(*RuntimeAnnotation_FaqAnswer); ok { |
| return x.FaqAnswer |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetSmartReply() *SmartReplyData { |
| if x, ok := x.GetData().(*RuntimeAnnotation_SmartReply); ok { |
| return x.SmartReply |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetSmartComposeSuggestion() *SmartComposeSuggestionData { |
| if x, ok := x.GetData().(*RuntimeAnnotation_SmartComposeSuggestion); ok { |
| return x.SmartComposeSuggestion |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetDialogflowInteraction() *DialogflowInteractionData { |
| if x, ok := x.GetData().(*RuntimeAnnotation_DialogflowInteraction); ok { |
| return x.DialogflowInteraction |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetConversationSummarizationSuggestion() *ConversationSummarizationSuggestionData { |
| if x, ok := x.GetData().(*RuntimeAnnotation_ConversationSummarizationSuggestion); ok { |
| return x.ConversationSummarizationSuggestion |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetAnnotationId() string { |
| if x != nil { |
| return x.AnnotationId |
| } |
| return "" |
| } |
| |
| func (x *RuntimeAnnotation) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetStartBoundary() *AnnotationBoundary { |
| if x != nil { |
| return x.StartBoundary |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetEndBoundary() *AnnotationBoundary { |
| if x != nil { |
| return x.EndBoundary |
| } |
| return nil |
| } |
| |
| func (x *RuntimeAnnotation) GetAnswerFeedback() *AnswerFeedback { |
| if x != nil { |
| return x.AnswerFeedback |
| } |
| return nil |
| } |
| |
| type isRuntimeAnnotation_Data interface { |
| isRuntimeAnnotation_Data() |
| } |
| |
| type RuntimeAnnotation_ArticleSuggestion struct { |
| // Agent Assist Article Suggestion data. |
| ArticleSuggestion *ArticleSuggestionData `protobuf:"bytes,6,opt,name=article_suggestion,json=articleSuggestion,proto3,oneof"` |
| } |
| |
| type RuntimeAnnotation_FaqAnswer struct { |
| // Agent Assist FAQ answer data. |
| FaqAnswer *FaqAnswerData `protobuf:"bytes,7,opt,name=faq_answer,json=faqAnswer,proto3,oneof"` |
| } |
| |
| type RuntimeAnnotation_SmartReply struct { |
| // Agent Assist Smart Reply data. |
| SmartReply *SmartReplyData `protobuf:"bytes,8,opt,name=smart_reply,json=smartReply,proto3,oneof"` |
| } |
| |
| type RuntimeAnnotation_SmartComposeSuggestion struct { |
| // Agent Assist Smart Compose suggestion data. |
| SmartComposeSuggestion *SmartComposeSuggestionData `protobuf:"bytes,9,opt,name=smart_compose_suggestion,json=smartComposeSuggestion,proto3,oneof"` |
| } |
| |
| type RuntimeAnnotation_DialogflowInteraction struct { |
| // Dialogflow interaction data. |
| DialogflowInteraction *DialogflowInteractionData `protobuf:"bytes,10,opt,name=dialogflow_interaction,json=dialogflowInteraction,proto3,oneof"` |
| } |
| |
| type RuntimeAnnotation_ConversationSummarizationSuggestion struct { |
| // Conversation summarization suggestion data. |
| ConversationSummarizationSuggestion *ConversationSummarizationSuggestionData `protobuf:"bytes,12,opt,name=conversation_summarization_suggestion,json=conversationSummarizationSuggestion,proto3,oneof"` |
| } |
| |
| func (*RuntimeAnnotation_ArticleSuggestion) isRuntimeAnnotation_Data() {} |
| |
| func (*RuntimeAnnotation_FaqAnswer) isRuntimeAnnotation_Data() {} |
| |
| func (*RuntimeAnnotation_SmartReply) isRuntimeAnnotation_Data() {} |
| |
| func (*RuntimeAnnotation_SmartComposeSuggestion) isRuntimeAnnotation_Data() {} |
| |
| func (*RuntimeAnnotation_DialogflowInteraction) isRuntimeAnnotation_Data() {} |
| |
| func (*RuntimeAnnotation_ConversationSummarizationSuggestion) isRuntimeAnnotation_Data() {} |
| |
| // The feedback that the customer has about a certain answer in the |
| // conversation. |
| type AnswerFeedback struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The correctness level of an answer. |
| CorrectnessLevel AnswerFeedback_CorrectnessLevel `protobuf:"varint,1,opt,name=correctness_level,json=correctnessLevel,proto3,enum=google.cloud.contactcenterinsights.v1.AnswerFeedback_CorrectnessLevel" json:"correctness_level,omitempty"` |
| // Indicates whether an answer or item was clicked by the human agent. |
| Clicked bool `protobuf:"varint,2,opt,name=clicked,proto3" json:"clicked,omitempty"` |
| // Indicates whether an answer or item was displayed to the human agent in the |
| // agent desktop UI. |
| Displayed bool `protobuf:"varint,3,opt,name=displayed,proto3" json:"displayed,omitempty"` |
| } |
| |
| func (x *AnswerFeedback) Reset() { |
| *x = AnswerFeedback{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[34] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AnswerFeedback) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AnswerFeedback) ProtoMessage() {} |
| |
| func (x *AnswerFeedback) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[34] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AnswerFeedback.ProtoReflect.Descriptor instead. |
| func (*AnswerFeedback) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{34} |
| } |
| |
| func (x *AnswerFeedback) GetCorrectnessLevel() AnswerFeedback_CorrectnessLevel { |
| if x != nil { |
| return x.CorrectnessLevel |
| } |
| return AnswerFeedback_CORRECTNESS_LEVEL_UNSPECIFIED |
| } |
| |
| func (x *AnswerFeedback) GetClicked() bool { |
| if x != nil { |
| return x.Clicked |
| } |
| return false |
| } |
| |
| func (x *AnswerFeedback) GetDisplayed() bool { |
| if x != nil { |
| return x.Displayed |
| } |
| return false |
| } |
| |
| // Agent Assist Article Suggestion data. |
| type ArticleSuggestionData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Article title. |
| Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` |
| // Article URI. |
| Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` |
| // The system's confidence score that this article is a good match for this |
| // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely |
| // certain). |
| ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` |
| // Map that contains metadata about the Article Suggestion and the document |
| // that it originates from. |
| Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The name of the answer record. |
| // Format: |
| // projects/{project}/locations/{location}/answerRecords/{answer_record} |
| QueryRecord string `protobuf:"bytes,5,opt,name=query_record,json=queryRecord,proto3" json:"query_record,omitempty"` |
| // The knowledge document that this answer was extracted from. |
| // Format: |
| // projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} |
| Source string `protobuf:"bytes,6,opt,name=source,proto3" json:"source,omitempty"` |
| } |
| |
| func (x *ArticleSuggestionData) Reset() { |
| *x = ArticleSuggestionData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[35] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ArticleSuggestionData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ArticleSuggestionData) ProtoMessage() {} |
| |
| func (x *ArticleSuggestionData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[35] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ArticleSuggestionData.ProtoReflect.Descriptor instead. |
| func (*ArticleSuggestionData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{35} |
| } |
| |
| func (x *ArticleSuggestionData) GetTitle() string { |
| if x != nil { |
| return x.Title |
| } |
| return "" |
| } |
| |
| func (x *ArticleSuggestionData) GetUri() string { |
| if x != nil { |
| return x.Uri |
| } |
| return "" |
| } |
| |
| func (x *ArticleSuggestionData) GetConfidenceScore() float32 { |
| if x != nil { |
| return x.ConfidenceScore |
| } |
| return 0 |
| } |
| |
| func (x *ArticleSuggestionData) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *ArticleSuggestionData) GetQueryRecord() string { |
| if x != nil { |
| return x.QueryRecord |
| } |
| return "" |
| } |
| |
| func (x *ArticleSuggestionData) GetSource() string { |
| if x != nil { |
| return x.Source |
| } |
| return "" |
| } |
| |
| // Agent Assist frequently-asked-question answer data. |
| type FaqAnswerData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The piece of text from the `source` knowledge base document. |
| Answer string `protobuf:"bytes,1,opt,name=answer,proto3" json:"answer,omitempty"` |
| // The system's confidence score that this answer is a good match for this |
| // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely |
| // certain). |
| ConfidenceScore float32 `protobuf:"fixed32,2,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` |
| // The corresponding FAQ question. |
| Question string `protobuf:"bytes,3,opt,name=question,proto3" json:"question,omitempty"` |
| // Map that contains metadata about the FAQ answer and the document that |
| // it originates from. |
| Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The name of the answer record. |
| // Format: |
| // projects/{project}/locations/{location}/answerRecords/{answer_record} |
| QueryRecord string `protobuf:"bytes,5,opt,name=query_record,json=queryRecord,proto3" json:"query_record,omitempty"` |
| // The knowledge document that this answer was extracted from. |
| // Format: |
| // projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}. |
| Source string `protobuf:"bytes,6,opt,name=source,proto3" json:"source,omitempty"` |
| } |
| |
| func (x *FaqAnswerData) Reset() { |
| *x = FaqAnswerData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[36] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *FaqAnswerData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*FaqAnswerData) ProtoMessage() {} |
| |
| func (x *FaqAnswerData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[36] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use FaqAnswerData.ProtoReflect.Descriptor instead. |
| func (*FaqAnswerData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{36} |
| } |
| |
| func (x *FaqAnswerData) GetAnswer() string { |
| if x != nil { |
| return x.Answer |
| } |
| return "" |
| } |
| |
| func (x *FaqAnswerData) GetConfidenceScore() float32 { |
| if x != nil { |
| return x.ConfidenceScore |
| } |
| return 0 |
| } |
| |
| func (x *FaqAnswerData) GetQuestion() string { |
| if x != nil { |
| return x.Question |
| } |
| return "" |
| } |
| |
| func (x *FaqAnswerData) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *FaqAnswerData) GetQueryRecord() string { |
| if x != nil { |
| return x.QueryRecord |
| } |
| return "" |
| } |
| |
| func (x *FaqAnswerData) GetSource() string { |
| if x != nil { |
| return x.Source |
| } |
| return "" |
| } |
| |
| // Agent Assist Smart Reply data. |
| type SmartReplyData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The content of the reply. |
| Reply string `protobuf:"bytes,1,opt,name=reply,proto3" json:"reply,omitempty"` |
| // The system's confidence score that this reply is a good match for this |
| // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely |
| // certain). |
| ConfidenceScore float64 `protobuf:"fixed64,2,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` |
| // Map that contains metadata about the Smart Reply and the document from |
| // which it originates. |
| Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The name of the answer record. |
| // Format: |
| // projects/{project}/locations/{location}/answerRecords/{answer_record} |
| QueryRecord string `protobuf:"bytes,4,opt,name=query_record,json=queryRecord,proto3" json:"query_record,omitempty"` |
| } |
| |
| func (x *SmartReplyData) Reset() { |
| *x = SmartReplyData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[37] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SmartReplyData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SmartReplyData) ProtoMessage() {} |
| |
| func (x *SmartReplyData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[37] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SmartReplyData.ProtoReflect.Descriptor instead. |
| func (*SmartReplyData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{37} |
| } |
| |
| func (x *SmartReplyData) GetReply() string { |
| if x != nil { |
| return x.Reply |
| } |
| return "" |
| } |
| |
| func (x *SmartReplyData) GetConfidenceScore() float64 { |
| if x != nil { |
| return x.ConfidenceScore |
| } |
| return 0 |
| } |
| |
| func (x *SmartReplyData) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *SmartReplyData) GetQueryRecord() string { |
| if x != nil { |
| return x.QueryRecord |
| } |
| return "" |
| } |
| |
| // Agent Assist Smart Compose suggestion data. |
| type SmartComposeSuggestionData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The content of the suggestion. |
| Suggestion string `protobuf:"bytes,1,opt,name=suggestion,proto3" json:"suggestion,omitempty"` |
| // The system's confidence score that this suggestion is a good match for this |
| // conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely |
| // certain). |
| ConfidenceScore float64 `protobuf:"fixed64,2,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` |
| // Map that contains metadata about the Smart Compose suggestion and the |
| // document from which it originates. |
| Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The name of the answer record. |
| // Format: |
| // projects/{project}/locations/{location}/answerRecords/{answer_record} |
| QueryRecord string `protobuf:"bytes,4,opt,name=query_record,json=queryRecord,proto3" json:"query_record,omitempty"` |
| } |
| |
| func (x *SmartComposeSuggestionData) Reset() { |
| *x = SmartComposeSuggestionData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[38] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SmartComposeSuggestionData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SmartComposeSuggestionData) ProtoMessage() {} |
| |
| func (x *SmartComposeSuggestionData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[38] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SmartComposeSuggestionData.ProtoReflect.Descriptor instead. |
| func (*SmartComposeSuggestionData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{38} |
| } |
| |
| func (x *SmartComposeSuggestionData) GetSuggestion() string { |
| if x != nil { |
| return x.Suggestion |
| } |
| return "" |
| } |
| |
| func (x *SmartComposeSuggestionData) GetConfidenceScore() float64 { |
| if x != nil { |
| return x.ConfidenceScore |
| } |
| return 0 |
| } |
| |
| func (x *SmartComposeSuggestionData) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *SmartComposeSuggestionData) GetQueryRecord() string { |
| if x != nil { |
| return x.QueryRecord |
| } |
| return "" |
| } |
| |
| // Dialogflow interaction data. |
| type DialogflowInteractionData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The Dialogflow intent resource path. Format: |
| // projects/{project}/agent/{agent}/intents/{intent} |
| DialogflowIntentId string `protobuf:"bytes,1,opt,name=dialogflow_intent_id,json=dialogflowIntentId,proto3" json:"dialogflow_intent_id,omitempty"` |
| // The confidence of the match ranging from 0.0 (completely uncertain) to 1.0 |
| // (completely certain). |
| Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` |
| } |
| |
| func (x *DialogflowInteractionData) Reset() { |
| *x = DialogflowInteractionData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[39] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DialogflowInteractionData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DialogflowInteractionData) ProtoMessage() {} |
| |
| func (x *DialogflowInteractionData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[39] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use DialogflowInteractionData.ProtoReflect.Descriptor instead. |
| func (*DialogflowInteractionData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{39} |
| } |
| |
| func (x *DialogflowInteractionData) GetDialogflowIntentId() string { |
| if x != nil { |
| return x.DialogflowIntentId |
| } |
| return "" |
| } |
| |
| func (x *DialogflowInteractionData) GetConfidence() float32 { |
| if x != nil { |
| return x.Confidence |
| } |
| return 0 |
| } |
| |
| // Conversation summarization suggestion data. |
| type ConversationSummarizationSuggestionData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The summarization content that is concatenated into one string. |
| Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` |
| // The summarization content that is divided into sections. The key is the |
| // section's name and the value is the section's content. There is no |
| // specific format for the key or value. |
| TextSections map[string]string `protobuf:"bytes,5,rep,name=text_sections,json=textSections,proto3" json:"text_sections,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The confidence score of the summarization. |
| Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` |
| // A map that contains metadata about the summarization and the document |
| // from which it originates. |
| Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The name of the answer record. |
| // Format: |
| // projects/{project}/locations/{location}/answerRecords/{answer_record} |
| AnswerRecord string `protobuf:"bytes,4,opt,name=answer_record,json=answerRecord,proto3" json:"answer_record,omitempty"` |
| // The name of the model that generates this summary. |
| // Format: |
| // projects/{project}/locations/{location}/conversationModels/{conversation_model} |
| ConversationModel string `protobuf:"bytes,6,opt,name=conversation_model,json=conversationModel,proto3" json:"conversation_model,omitempty"` |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) Reset() { |
| *x = ConversationSummarizationSuggestionData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[40] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ConversationSummarizationSuggestionData) ProtoMessage() {} |
| |
| func (x *ConversationSummarizationSuggestionData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[40] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ConversationSummarizationSuggestionData.ProtoReflect.Descriptor instead. |
| func (*ConversationSummarizationSuggestionData) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{40} |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) GetText() string { |
| if x != nil { |
| return x.Text |
| } |
| return "" |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) GetTextSections() map[string]string { |
| if x != nil { |
| return x.TextSections |
| } |
| return nil |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) GetConfidence() float32 { |
| if x != nil { |
| return x.Confidence |
| } |
| return 0 |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) GetAnswerRecord() string { |
| if x != nil { |
| return x.AnswerRecord |
| } |
| return "" |
| } |
| |
| func (x *ConversationSummarizationSuggestionData) GetConversationModel() string { |
| if x != nil { |
| return x.ConversationModel |
| } |
| return "" |
| } |
| |
| // The call participant speaking for a given utterance. |
| type ConversationParticipant struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Participant: |
| // |
| // *ConversationParticipant_DialogflowParticipantName |
| // *ConversationParticipant_UserId |
| Participant isConversationParticipant_Participant `protobuf_oneof:"participant"` |
| // Deprecated. Use `dialogflow_participant_name` instead. |
| // The name of the Dialogflow participant. Format: |
| // projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant} |
| // |
| // Deprecated: Marked as deprecated in google/cloud/contactcenterinsights/v1/resources.proto. |
| DialogflowParticipant string `protobuf:"bytes,1,opt,name=dialogflow_participant,json=dialogflowParticipant,proto3" json:"dialogflow_participant,omitempty"` |
| // Obfuscated user ID from Dialogflow. |
| ObfuscatedExternalUserId string `protobuf:"bytes,3,opt,name=obfuscated_external_user_id,json=obfuscatedExternalUserId,proto3" json:"obfuscated_external_user_id,omitempty"` |
| // The role of the participant. |
| Role ConversationParticipant_Role `protobuf:"varint,2,opt,name=role,proto3,enum=google.cloud.contactcenterinsights.v1.ConversationParticipant_Role" json:"role,omitempty"` |
| } |
| |
| func (x *ConversationParticipant) Reset() { |
| *x = ConversationParticipant{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[41] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ConversationParticipant) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ConversationParticipant) ProtoMessage() {} |
| |
| func (x *ConversationParticipant) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[41] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ConversationParticipant.ProtoReflect.Descriptor instead. |
| func (*ConversationParticipant) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{41} |
| } |
| |
| func (m *ConversationParticipant) GetParticipant() isConversationParticipant_Participant { |
| if m != nil { |
| return m.Participant |
| } |
| return nil |
| } |
| |
| func (x *ConversationParticipant) GetDialogflowParticipantName() string { |
| if x, ok := x.GetParticipant().(*ConversationParticipant_DialogflowParticipantName); ok { |
| return x.DialogflowParticipantName |
| } |
| return "" |
| } |
| |
| func (x *ConversationParticipant) GetUserId() string { |
| if x, ok := x.GetParticipant().(*ConversationParticipant_UserId); ok { |
| return x.UserId |
| } |
| return "" |
| } |
| |
| // Deprecated: Marked as deprecated in google/cloud/contactcenterinsights/v1/resources.proto. |
| func (x *ConversationParticipant) GetDialogflowParticipant() string { |
| if x != nil { |
| return x.DialogflowParticipant |
| } |
| return "" |
| } |
| |
| func (x *ConversationParticipant) GetObfuscatedExternalUserId() string { |
| if x != nil { |
| return x.ObfuscatedExternalUserId |
| } |
| return "" |
| } |
| |
| func (x *ConversationParticipant) GetRole() ConversationParticipant_Role { |
| if x != nil { |
| return x.Role |
| } |
| return ConversationParticipant_ROLE_UNSPECIFIED |
| } |
| |
| type isConversationParticipant_Participant interface { |
| isConversationParticipant_Participant() |
| } |
| |
| type ConversationParticipant_DialogflowParticipantName struct { |
| // The name of the participant provided by Dialogflow. Format: |
| // projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant} |
| DialogflowParticipantName string `protobuf:"bytes,5,opt,name=dialogflow_participant_name,json=dialogflowParticipantName,proto3,oneof"` |
| } |
| |
| type ConversationParticipant_UserId struct { |
| // A user-specified ID representing the participant. |
| UserId string `protobuf:"bytes,6,opt,name=user_id,json=userId,proto3,oneof"` |
| } |
| |
| func (*ConversationParticipant_DialogflowParticipantName) isConversationParticipant_Participant() {} |
| |
| func (*ConversationParticipant_UserId) isConversationParticipant_Participant() {} |
| |
| // The View resource. |
| type View struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The resource name of the view. |
| // Format: |
| // projects/{project}/locations/{location}/views/{view} |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // The human-readable display name of the view. |
| DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| // Output only. The time at which this view was created. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The most recent time at which the view was updated. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // String with specific view properties, must be non-empty. |
| Value string `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` |
| } |
| |
| func (x *View) Reset() { |
| *x = View{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[42] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *View) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*View) ProtoMessage() {} |
| |
| func (x *View) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[42] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use View.ProtoReflect.Descriptor instead. |
| func (*View) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{42} |
| } |
| |
| func (x *View) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *View) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| func (x *View) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *View) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *View) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| // Selector of all available annotators and phrase matchers to run. |
| type AnnotatorSelector struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Whether to run the interruption annotator. |
| RunInterruptionAnnotator bool `protobuf:"varint,1,opt,name=run_interruption_annotator,json=runInterruptionAnnotator,proto3" json:"run_interruption_annotator,omitempty"` |
| // Whether to run the silence annotator. |
| RunSilenceAnnotator bool `protobuf:"varint,2,opt,name=run_silence_annotator,json=runSilenceAnnotator,proto3" json:"run_silence_annotator,omitempty"` |
| // Whether to run the active phrase matcher annotator(s). |
| RunPhraseMatcherAnnotator bool `protobuf:"varint,3,opt,name=run_phrase_matcher_annotator,json=runPhraseMatcherAnnotator,proto3" json:"run_phrase_matcher_annotator,omitempty"` |
| // The list of phrase matchers to run. If not provided, all active phrase |
| // matchers will be used. If inactive phrase matchers are provided, they will |
| // not be used. Phrase matchers will be run only if |
| // run_phrase_matcher_annotator is set to true. Format: |
| // projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher} |
| PhraseMatchers []string `protobuf:"bytes,4,rep,name=phrase_matchers,json=phraseMatchers,proto3" json:"phrase_matchers,omitempty"` |
| // Whether to run the sentiment annotator. |
| RunSentimentAnnotator bool `protobuf:"varint,5,opt,name=run_sentiment_annotator,json=runSentimentAnnotator,proto3" json:"run_sentiment_annotator,omitempty"` |
| // Whether to run the entity annotator. |
| RunEntityAnnotator bool `protobuf:"varint,6,opt,name=run_entity_annotator,json=runEntityAnnotator,proto3" json:"run_entity_annotator,omitempty"` |
| // Whether to run the intent annotator. |
| RunIntentAnnotator bool `protobuf:"varint,7,opt,name=run_intent_annotator,json=runIntentAnnotator,proto3" json:"run_intent_annotator,omitempty"` |
| // Whether to run the issue model annotator. A model should have already been |
| // deployed for this to take effect. |
| RunIssueModelAnnotator bool `protobuf:"varint,8,opt,name=run_issue_model_annotator,json=runIssueModelAnnotator,proto3" json:"run_issue_model_annotator,omitempty"` |
| // The issue model to run. If not provided, the most recently deployed topic |
| // model will be used. The provided issue model will only be used for |
| // inference if the issue model is deployed and if run_issue_model_annotator |
| // is set to true. If more than one issue model is provided, only the first |
| // provided issue model will be used for inference. |
| IssueModels []string `protobuf:"bytes,10,rep,name=issue_models,json=issueModels,proto3" json:"issue_models,omitempty"` |
| // Whether to run the summarization annotator. |
| RunSummarizationAnnotator bool `protobuf:"varint,9,opt,name=run_summarization_annotator,json=runSummarizationAnnotator,proto3" json:"run_summarization_annotator,omitempty"` |
| // Configuration for the summarization annotator. |
| SummarizationConfig *AnnotatorSelector_SummarizationConfig `protobuf:"bytes,11,opt,name=summarization_config,json=summarizationConfig,proto3" json:"summarization_config,omitempty"` |
| } |
| |
| func (x *AnnotatorSelector) Reset() { |
| *x = AnnotatorSelector{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[43] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AnnotatorSelector) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AnnotatorSelector) ProtoMessage() {} |
| |
| func (x *AnnotatorSelector) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[43] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AnnotatorSelector.ProtoReflect.Descriptor instead. |
| func (*AnnotatorSelector) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{43} |
| } |
| |
| func (x *AnnotatorSelector) GetRunInterruptionAnnotator() bool { |
| if x != nil { |
| return x.RunInterruptionAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetRunSilenceAnnotator() bool { |
| if x != nil { |
| return x.RunSilenceAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetRunPhraseMatcherAnnotator() bool { |
| if x != nil { |
| return x.RunPhraseMatcherAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetPhraseMatchers() []string { |
| if x != nil { |
| return x.PhraseMatchers |
| } |
| return nil |
| } |
| |
| func (x *AnnotatorSelector) GetRunSentimentAnnotator() bool { |
| if x != nil { |
| return x.RunSentimentAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetRunEntityAnnotator() bool { |
| if x != nil { |
| return x.RunEntityAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetRunIntentAnnotator() bool { |
| if x != nil { |
| return x.RunIntentAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetRunIssueModelAnnotator() bool { |
| if x != nil { |
| return x.RunIssueModelAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetIssueModels() []string { |
| if x != nil { |
| return x.IssueModels |
| } |
| return nil |
| } |
| |
| func (x *AnnotatorSelector) GetRunSummarizationAnnotator() bool { |
| if x != nil { |
| return x.RunSummarizationAnnotator |
| } |
| return false |
| } |
| |
| func (x *AnnotatorSelector) GetSummarizationConfig() *AnnotatorSelector_SummarizationConfig { |
| if x != nil { |
| return x.SummarizationConfig |
| } |
| return nil |
| } |
| |
| // Call-specific metadata. |
| type Conversation_CallMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The audio channel that contains the customer. |
| CustomerChannel int32 `protobuf:"varint,1,opt,name=customer_channel,json=customerChannel,proto3" json:"customer_channel,omitempty"` |
| // The audio channel that contains the agent. |
| AgentChannel int32 `protobuf:"varint,2,opt,name=agent_channel,json=agentChannel,proto3" json:"agent_channel,omitempty"` |
| } |
| |
| func (x *Conversation_CallMetadata) Reset() { |
| *x = Conversation_CallMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[44] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_CallMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_CallMetadata) ProtoMessage() {} |
| |
| func (x *Conversation_CallMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[44] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_CallMetadata.ProtoReflect.Descriptor instead. |
| func (*Conversation_CallMetadata) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 0} |
| } |
| |
| func (x *Conversation_CallMetadata) GetCustomerChannel() int32 { |
| if x != nil { |
| return x.CustomerChannel |
| } |
| return 0 |
| } |
| |
| func (x *Conversation_CallMetadata) GetAgentChannel() int32 { |
| if x != nil { |
| return x.AgentChannel |
| } |
| return 0 |
| } |
| |
| // Conversation metadata related to quality management. |
| type Conversation_QualityMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // An arbitrary integer value indicating the customer's satisfaction rating. |
| CustomerSatisfactionRating int32 `protobuf:"varint,1,opt,name=customer_satisfaction_rating,json=customerSatisfactionRating,proto3" json:"customer_satisfaction_rating,omitempty"` |
| // The amount of time the customer waited to connect with an agent. |
| WaitDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=wait_duration,json=waitDuration,proto3" json:"wait_duration,omitempty"` |
| // An arbitrary string value specifying the menu path the customer took. |
| MenuPath string `protobuf:"bytes,3,opt,name=menu_path,json=menuPath,proto3" json:"menu_path,omitempty"` |
| // Information about agents involved in the call. |
| AgentInfo []*Conversation_QualityMetadata_AgentInfo `protobuf:"bytes,4,rep,name=agent_info,json=agentInfo,proto3" json:"agent_info,omitempty"` |
| } |
| |
| func (x *Conversation_QualityMetadata) Reset() { |
| *x = Conversation_QualityMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[45] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_QualityMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_QualityMetadata) ProtoMessage() {} |
| |
| func (x *Conversation_QualityMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[45] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_QualityMetadata.ProtoReflect.Descriptor instead. |
| func (*Conversation_QualityMetadata) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 1} |
| } |
| |
| func (x *Conversation_QualityMetadata) GetCustomerSatisfactionRating() int32 { |
| if x != nil { |
| return x.CustomerSatisfactionRating |
| } |
| return 0 |
| } |
| |
| func (x *Conversation_QualityMetadata) GetWaitDuration() *durationpb.Duration { |
| if x != nil { |
| return x.WaitDuration |
| } |
| return nil |
| } |
| |
| func (x *Conversation_QualityMetadata) GetMenuPath() string { |
| if x != nil { |
| return x.MenuPath |
| } |
| return "" |
| } |
| |
| func (x *Conversation_QualityMetadata) GetAgentInfo() []*Conversation_QualityMetadata_AgentInfo { |
| if x != nil { |
| return x.AgentInfo |
| } |
| return nil |
| } |
| |
| // A message representing the transcript of a conversation. |
| type Conversation_Transcript struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A list of sequential transcript segments that comprise the conversation. |
| TranscriptSegments []*Conversation_Transcript_TranscriptSegment `protobuf:"bytes,1,rep,name=transcript_segments,json=transcriptSegments,proto3" json:"transcript_segments,omitempty"` |
| } |
| |
| func (x *Conversation_Transcript) Reset() { |
| *x = Conversation_Transcript{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[46] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_Transcript) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_Transcript) ProtoMessage() {} |
| |
| func (x *Conversation_Transcript) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[46] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_Transcript.ProtoReflect.Descriptor instead. |
| func (*Conversation_Transcript) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 2} |
| } |
| |
| func (x *Conversation_Transcript) GetTranscriptSegments() []*Conversation_Transcript_TranscriptSegment { |
| if x != nil { |
| return x.TranscriptSegments |
| } |
| return nil |
| } |
| |
| // Information about an agent involved in the conversation. |
| type Conversation_QualityMetadata_AgentInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A user-specified string representing the agent. |
| AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` |
| // The agent's name. |
| DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| // A user-specified string representing the agent's team. |
| Team string `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` |
| // A user-provided string indicating the outcome of the agent's segment of |
| // the call. |
| DispositionCode string `protobuf:"bytes,4,opt,name=disposition_code,json=dispositionCode,proto3" json:"disposition_code,omitempty"` |
| } |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) Reset() { |
| *x = Conversation_QualityMetadata_AgentInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[49] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_QualityMetadata_AgentInfo) ProtoMessage() {} |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[49] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_QualityMetadata_AgentInfo.ProtoReflect.Descriptor instead. |
| func (*Conversation_QualityMetadata_AgentInfo) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 1, 0} |
| } |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) GetAgentId() string { |
| if x != nil { |
| return x.AgentId |
| } |
| return "" |
| } |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) GetTeam() string { |
| if x != nil { |
| return x.Team |
| } |
| return "" |
| } |
| |
| func (x *Conversation_QualityMetadata_AgentInfo) GetDispositionCode() string { |
| if x != nil { |
| return x.DispositionCode |
| } |
| return "" |
| } |
| |
| // A segment of a full transcript. |
| type Conversation_Transcript_TranscriptSegment struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The time that the message occurred, if provided. |
| MessageTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=message_time,json=messageTime,proto3" json:"message_time,omitempty"` |
| // The text of this segment. |
| Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` |
| // A confidence estimate between 0.0 and 1.0 of the fidelity of this |
| // segment. A default value of 0.0 indicates that the value is unset. |
| Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` |
| // A list of the word-specific information for each word in the segment. |
| Words []*Conversation_Transcript_TranscriptSegment_WordInfo `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"` |
| // The language code of this segment as a |
| // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. |
| // Example: "en-US". |
| LanguageCode string `protobuf:"bytes,4,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` |
| // For conversations derived from multi-channel audio, this is the channel |
| // number corresponding to the audio from that channel. For |
| // audioChannelCount = N, its output values can range from '1' to 'N'. A |
| // channel tag of 0 indicates that the audio is mono. |
| ChannelTag int32 `protobuf:"varint,5,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` |
| // The participant of this segment. |
| SegmentParticipant *ConversationParticipant `protobuf:"bytes,9,opt,name=segment_participant,json=segmentParticipant,proto3" json:"segment_participant,omitempty"` |
| // CCAI metadata relating to the current transcript segment. |
| DialogflowSegmentMetadata *Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata `protobuf:"bytes,10,opt,name=dialogflow_segment_metadata,json=dialogflowSegmentMetadata,proto3" json:"dialogflow_segment_metadata,omitempty"` |
| // The sentiment for this transcript segment. |
| Sentiment *SentimentData `protobuf:"bytes,11,opt,name=sentiment,proto3" json:"sentiment,omitempty"` |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) Reset() { |
| *x = Conversation_Transcript_TranscriptSegment{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[50] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_Transcript_TranscriptSegment) ProtoMessage() {} |
| |
| func (x *Conversation_Transcript_TranscriptSegment) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[50] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_Transcript_TranscriptSegment.ProtoReflect.Descriptor instead. |
| func (*Conversation_Transcript_TranscriptSegment) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 2, 0} |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetMessageTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.MessageTime |
| } |
| return nil |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetText() string { |
| if x != nil { |
| return x.Text |
| } |
| return "" |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetConfidence() float32 { |
| if x != nil { |
| return x.Confidence |
| } |
| return 0 |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetWords() []*Conversation_Transcript_TranscriptSegment_WordInfo { |
| if x != nil { |
| return x.Words |
| } |
| return nil |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetLanguageCode() string { |
| if x != nil { |
| return x.LanguageCode |
| } |
| return "" |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetChannelTag() int32 { |
| if x != nil { |
| return x.ChannelTag |
| } |
| return 0 |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetSegmentParticipant() *ConversationParticipant { |
| if x != nil { |
| return x.SegmentParticipant |
| } |
| return nil |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetDialogflowSegmentMetadata() *Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata { |
| if x != nil { |
| return x.DialogflowSegmentMetadata |
| } |
| return nil |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment) GetSentiment() *SentimentData { |
| if x != nil { |
| return x.Sentiment |
| } |
| return nil |
| } |
| |
| // Word-level info for words in a transcript. |
| type Conversation_Transcript_TranscriptSegment_WordInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Time offset of the start of this word relative to the beginning of |
| // the total conversation. |
| StartOffset *durationpb.Duration `protobuf:"bytes,1,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` |
| // Time offset of the end of this word relative to the beginning of the |
| // total conversation. |
| EndOffset *durationpb.Duration `protobuf:"bytes,2,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"` |
| // The word itself. Includes punctuation marks that surround the word. |
| Word string `protobuf:"bytes,3,opt,name=word,proto3" json:"word,omitempty"` |
| // A confidence estimate between 0.0 and 1.0 of the fidelity of this |
| // word. A default value of 0.0 indicates that the value is unset. |
| Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"` |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) Reset() { |
| *x = Conversation_Transcript_TranscriptSegment_WordInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[51] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_Transcript_TranscriptSegment_WordInfo) ProtoMessage() {} |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[51] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_Transcript_TranscriptSegment_WordInfo.ProtoReflect.Descriptor instead. |
| func (*Conversation_Transcript_TranscriptSegment_WordInfo) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 2, 0, 0} |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) GetStartOffset() *durationpb.Duration { |
| if x != nil { |
| return x.StartOffset |
| } |
| return nil |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) GetEndOffset() *durationpb.Duration { |
| if x != nil { |
| return x.EndOffset |
| } |
| return nil |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) GetWord() string { |
| if x != nil { |
| return x.Word |
| } |
| return "" |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_WordInfo) GetConfidence() float32 { |
| if x != nil { |
| return x.Confidence |
| } |
| return 0 |
| } |
| |
| // Metadata from Dialogflow relating to the current transcript segment. |
| type Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Whether the transcript segment was covered under the configured smart |
| // reply allowlist in Agent Assist. |
| SmartReplyAllowlistCovered bool `protobuf:"varint,1,opt,name=smart_reply_allowlist_covered,json=smartReplyAllowlistCovered,proto3" json:"smart_reply_allowlist_covered,omitempty"` |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata) Reset() { |
| *x = Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[52] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata) ProtoMessage() {} |
| |
| func (x *Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[52] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata.ProtoReflect.Descriptor instead. |
| func (*Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{0, 2, 0, 1} |
| } |
| |
| func (x *Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata) GetSmartReplyAllowlistCovered() bool { |
| if x != nil { |
| return x.SmartReplyAllowlistCovered |
| } |
| return false |
| } |
| |
| // Call-specific metadata created during analysis. |
| type AnalysisResult_CallAnalysisMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A list of call annotations that apply to this call. |
| Annotations []*CallAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` |
| // All the entities in the call. |
| Entities map[string]*Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Overall conversation-level sentiment for each channel of the call. |
| Sentiments []*ConversationLevelSentiment `protobuf:"bytes,4,rep,name=sentiments,proto3" json:"sentiments,omitempty"` |
| // All the matched intents in the call. |
| Intents map[string]*Intent `protobuf:"bytes,6,rep,name=intents,proto3" json:"intents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // All the matched phrase matchers in the call. |
| PhraseMatchers map[string]*PhraseMatchData `protobuf:"bytes,7,rep,name=phrase_matchers,json=phraseMatchers,proto3" json:"phrase_matchers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Overall conversation-level issue modeling result. |
| IssueModelResult *IssueModelResult `protobuf:"bytes,8,opt,name=issue_model_result,json=issueModelResult,proto3" json:"issue_model_result,omitempty"` |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) Reset() { |
| *x = AnalysisResult_CallAnalysisMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[53] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AnalysisResult_CallAnalysisMetadata) ProtoMessage() {} |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[53] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AnalysisResult_CallAnalysisMetadata.ProtoReflect.Descriptor instead. |
| func (*AnalysisResult_CallAnalysisMetadata) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{5, 0} |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) GetAnnotations() []*CallAnnotation { |
| if x != nil { |
| return x.Annotations |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) GetEntities() map[string]*Entity { |
| if x != nil { |
| return x.Entities |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) GetSentiments() []*ConversationLevelSentiment { |
| if x != nil { |
| return x.Sentiments |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) GetIntents() map[string]*Intent { |
| if x != nil { |
| return x.Intents |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) GetPhraseMatchers() map[string]*PhraseMatchData { |
| if x != nil { |
| return x.PhraseMatchers |
| } |
| return nil |
| } |
| |
| func (x *AnalysisResult_CallAnalysisMetadata) GetIssueModelResult() *IssueModelResult { |
| if x != nil { |
| return x.IssueModelResult |
| } |
| return nil |
| } |
| |
| // Configs for the input data used to create the issue model. |
| type IssueModel_InputDataConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Medium of conversations used in training data. This field is being |
| // deprecated. To specify the medium to be used in training a new issue |
| // model, set the `medium` field on `filter`. |
| // |
| // Deprecated: Marked as deprecated in google/cloud/contactcenterinsights/v1/resources.proto. |
| Medium Conversation_Medium `protobuf:"varint,1,opt,name=medium,proto3,enum=google.cloud.contactcenterinsights.v1.Conversation_Medium" json:"medium,omitempty"` |
| // Output only. Number of conversations used in training. Output only. |
| TrainingConversationsCount int64 `protobuf:"varint,2,opt,name=training_conversations_count,json=trainingConversationsCount,proto3" json:"training_conversations_count,omitempty"` |
| // A filter to reduce the conversations used for training the model to a |
| // specific subset. |
| Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` |
| } |
| |
| func (x *IssueModel_InputDataConfig) Reset() { |
| *x = IssueModel_InputDataConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[58] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueModel_InputDataConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueModel_InputDataConfig) ProtoMessage() {} |
| |
| func (x *IssueModel_InputDataConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[58] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueModel_InputDataConfig.ProtoReflect.Descriptor instead. |
| func (*IssueModel_InputDataConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{22, 0} |
| } |
| |
| // Deprecated: Marked as deprecated in google/cloud/contactcenterinsights/v1/resources.proto. |
| func (x *IssueModel_InputDataConfig) GetMedium() Conversation_Medium { |
| if x != nil { |
| return x.Medium |
| } |
| return Conversation_MEDIUM_UNSPECIFIED |
| } |
| |
| func (x *IssueModel_InputDataConfig) GetTrainingConversationsCount() int64 { |
| if x != nil { |
| return x.TrainingConversationsCount |
| } |
| return 0 |
| } |
| |
| func (x *IssueModel_InputDataConfig) GetFilter() string { |
| if x != nil { |
| return x.Filter |
| } |
| return "" |
| } |
| |
| // Aggregated statistics about an issue. |
| type IssueModelLabelStats_IssueStats struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Issue resource. |
| // Format: |
| // projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue} |
| Issue string `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"` |
| // Number of conversations attached to the issue at this point in time. |
| LabeledConversationsCount int64 `protobuf:"varint,2,opt,name=labeled_conversations_count,json=labeledConversationsCount,proto3" json:"labeled_conversations_count,omitempty"` |
| // Display name of the issue. |
| DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` |
| } |
| |
| func (x *IssueModelLabelStats_IssueStats) Reset() { |
| *x = IssueModelLabelStats_IssueStats{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[59] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *IssueModelLabelStats_IssueStats) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*IssueModelLabelStats_IssueStats) ProtoMessage() {} |
| |
| func (x *IssueModelLabelStats_IssueStats) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[59] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use IssueModelLabelStats_IssueStats.ProtoReflect.Descriptor instead. |
| func (*IssueModelLabelStats_IssueStats) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{24, 0} |
| } |
| |
| func (x *IssueModelLabelStats_IssueStats) GetIssue() string { |
| if x != nil { |
| return x.Issue |
| } |
| return "" |
| } |
| |
| func (x *IssueModelLabelStats_IssueStats) GetLabeledConversationsCount() int64 { |
| if x != nil { |
| return x.LabeledConversationsCount |
| } |
| return 0 |
| } |
| |
| func (x *IssueModelLabelStats_IssueStats) GetDisplayName() string { |
| if x != nil { |
| return x.DisplayName |
| } |
| return "" |
| } |
| |
| // Default configuration when creating Analyses in Insights. |
| type Settings_AnalysisConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Percentage of conversations created using Dialogflow runtime integration |
| // to analyze automatically, between [0, 100]. |
| RuntimeIntegrationAnalysisPercentage float64 `protobuf:"fixed64,1,opt,name=runtime_integration_analysis_percentage,json=runtimeIntegrationAnalysisPercentage,proto3" json:"runtime_integration_analysis_percentage,omitempty"` |
| // Percentage of conversations created using the UploadConversation endpoint |
| // to analyze automatically, between [0, 100]. |
| UploadConversationAnalysisPercentage float64 `protobuf:"fixed64,6,opt,name=upload_conversation_analysis_percentage,json=uploadConversationAnalysisPercentage,proto3" json:"upload_conversation_analysis_percentage,omitempty"` |
| // To select the annotators to run and the phrase matchers to use |
| // (if any). If not specified, all annotators will be run. |
| AnnotatorSelector *AnnotatorSelector `protobuf:"bytes,5,opt,name=annotator_selector,json=annotatorSelector,proto3" json:"annotator_selector,omitempty"` |
| } |
| |
| func (x *Settings_AnalysisConfig) Reset() { |
| *x = Settings_AnalysisConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[61] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Settings_AnalysisConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Settings_AnalysisConfig) ProtoMessage() {} |
| |
| func (x *Settings_AnalysisConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[61] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Settings_AnalysisConfig.ProtoReflect.Descriptor instead. |
| func (*Settings_AnalysisConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{30, 0} |
| } |
| |
| func (x *Settings_AnalysisConfig) GetRuntimeIntegrationAnalysisPercentage() float64 { |
| if x != nil { |
| return x.RuntimeIntegrationAnalysisPercentage |
| } |
| return 0 |
| } |
| |
| func (x *Settings_AnalysisConfig) GetUploadConversationAnalysisPercentage() float64 { |
| if x != nil { |
| return x.UploadConversationAnalysisPercentage |
| } |
| return 0 |
| } |
| |
| func (x *Settings_AnalysisConfig) GetAnnotatorSelector() *AnnotatorSelector { |
| if x != nil { |
| return x.AnnotatorSelector |
| } |
| return nil |
| } |
| |
| // Configuration for summarization. |
| type AnnotatorSelector_SummarizationConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Summarization must use either a preexisting conversation profile or one |
| // of the supported default models. |
| // |
| // Types that are assignable to ModelSource: |
| // |
| // *AnnotatorSelector_SummarizationConfig_ConversationProfile |
| // *AnnotatorSelector_SummarizationConfig_SummarizationModel_ |
| ModelSource isAnnotatorSelector_SummarizationConfig_ModelSource `protobuf_oneof:"model_source"` |
| } |
| |
| func (x *AnnotatorSelector_SummarizationConfig) Reset() { |
| *x = AnnotatorSelector_SummarizationConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[69] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AnnotatorSelector_SummarizationConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AnnotatorSelector_SummarizationConfig) ProtoMessage() {} |
| |
| func (x *AnnotatorSelector_SummarizationConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[69] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AnnotatorSelector_SummarizationConfig.ProtoReflect.Descriptor instead. |
| func (*AnnotatorSelector_SummarizationConfig) Descriptor() ([]byte, []int) { |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP(), []int{43, 0} |
| } |
| |
| func (m *AnnotatorSelector_SummarizationConfig) GetModelSource() isAnnotatorSelector_SummarizationConfig_ModelSource { |
| if m != nil { |
| return m.ModelSource |
| } |
| return nil |
| } |
| |
| func (x *AnnotatorSelector_SummarizationConfig) GetConversationProfile() string { |
| if x, ok := x.GetModelSource().(*AnnotatorSelector_SummarizationConfig_ConversationProfile); ok { |
| return x.ConversationProfile |
| } |
| return "" |
| } |
| |
| func (x *AnnotatorSelector_SummarizationConfig) GetSummarizationModel() AnnotatorSelector_SummarizationConfig_SummarizationModel { |
| if x, ok := x.GetModelSource().(*AnnotatorSelector_SummarizationConfig_SummarizationModel_); ok { |
| return x.SummarizationModel |
| } |
| return AnnotatorSelector_SummarizationConfig_SUMMARIZATION_MODEL_UNSPECIFIED |
| } |
| |
| type isAnnotatorSelector_SummarizationConfig_ModelSource interface { |
| isAnnotatorSelector_SummarizationConfig_ModelSource() |
| } |
| |
| type AnnotatorSelector_SummarizationConfig_ConversationProfile struct { |
| // Resource name of the Dialogflow conversation profile. |
| // Format: |
| // projects/{project}/locations/{location}/conversationProfiles/{conversation_profile} |
| ConversationProfile string `protobuf:"bytes,1,opt,name=conversation_profile,json=conversationProfile,proto3,oneof"` |
| } |
| |
| type AnnotatorSelector_SummarizationConfig_SummarizationModel_ struct { |
| // Default summarization model to be used. |
| SummarizationModel AnnotatorSelector_SummarizationConfig_SummarizationModel `protobuf:"varint,2,opt,name=summarization_model,json=summarizationModel,proto3,enum=google.cloud.contactcenterinsights.v1.AnnotatorSelector_SummarizationConfig_SummarizationModel,oneof"` |
| } |
| |
| func (*AnnotatorSelector_SummarizationConfig_ConversationProfile) isAnnotatorSelector_SummarizationConfig_ModelSource() { |
| } |
| |
| func (*AnnotatorSelector_SummarizationConfig_SummarizationModel_) isAnnotatorSelector_SummarizationConfig_ModelSource() { |
| } |
| |
| var File_google_cloud_contactcenterinsights_v1_resources_proto protoreflect.FileDescriptor |
| |
| var file_google_cloud_contactcenterinsights_v1_resources_proto_rawDesc = []byte{ |
| 0x0a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x63, |
| 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, |
| 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, |
| 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, |
| 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x1c, 0x0a, 0x0c, |
| 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x0d, |
| 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, |
| 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, |
| 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, |
| 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, |
| 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, |
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, |
| 0x04, 0x48, 0x01, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, |
| 0x65, 0x12, 0x5e, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, |
| 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, |
| 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, |
| 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, |
| 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, |
| 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, |
| 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, |
| 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, |
| 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, |
| 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, |
| 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, |
| 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, |
| 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, |
| 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, |
| 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x6e, 0x0a, 0x10, 0x71, 0x75, 0x61, |
| 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x18, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, |
| 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, |
| 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, |
| 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x0a, 0x74, 0x72, 0x61, |
| 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x57, |
| 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, |
| 0x06, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, |
| 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x74, 0x75, |
| 0x72, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, |
| 0x74, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, |
| 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x6e, |
| 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x7a, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, |
| 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x03, |
| 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, |
| 0x72, 0x79, 0x12, 0x6e, 0x0a, 0x13, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x6e, |
| 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x41, |
| 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, |
| 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x12, 0x7e, 0x0a, 0x12, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, |
| 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, |
| 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, |
| 0x11, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x6e, |
| 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x65, 0x64, |
| 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, |
| 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, |
| 0x1a, 0x5e, 0x0a, 0x0c, 0x43, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, |
| 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, |
| 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, |
| 0x6f, 0x6d, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, |
| 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x05, 0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, |
| 0x1a, 0xa9, 0x03, 0x0a, 0x0f, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, |
| 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x1c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, |
| 0x5f, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, |
| 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x63, 0x75, 0x73, 0x74, |
| 0x6f, 0x6d, 0x65, 0x72, 0x53, 0x61, 0x74, 0x69, 0x73, 0x66, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x64, |
| 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, |
| 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x44, 0x75, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6e, 0x75, 0x5f, 0x70, |
| 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x6e, 0x75, 0x50, |
| 0x61, 0x74, 0x68, 0x12, 0x6c, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, |
| 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, |
| 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x67, 0x65, |
| 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, |
| 0x6f, 0x1a, 0x88, 0x01, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, |
| 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, |
| 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, |
| 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x61, |
| 0x6d, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x69, 0x73, |
| 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0xdb, 0x08, 0x0a, |
| 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x81, 0x01, 0x0a, 0x13, |
| 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, |
| 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, |
| 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, |
| 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, |
| 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, |
| 0x72, 0x69, 0x70, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x74, 0x72, 0x61, |
| 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, |
| 0xc8, 0x07, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, |
| 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, |
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, |
| 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x6f, 0x0a, 0x05, 0x77, 0x6f, 0x72, 0x64, |
| 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, |
| 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, |
| 0x70, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x64, 0x49, 0x6e, |
| 0x66, 0x6f, 0x52, 0x05, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, |
| 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, |
| 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x12, |
| 0x6f, 0x0a, 0x13, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, |
| 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, |
| 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x12, 0x73, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, |
| 0x12, 0xaa, 0x01, 0x0a, 0x1b, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x5f, |
| 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, |
| 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, |
| 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x6e, |
| 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, |
| 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, |
| 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, |
| 0x74, 0x61, 0x52, 0x19, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x65, |
| 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x52, 0x0a, |
| 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, |
| 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, |
| 0x74, 0x1a, 0xb6, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, |
| 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, |
| 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x0a, |
| 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x6e, 0x64, |
| 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, |
| 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x5e, 0x0a, 0x19, 0x44, 0x69, |
| 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, |
| 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x1d, 0x73, 0x6d, 0x61, 0x72, 0x74, |
| 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, |
| 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, |
| 0x73, 0x6d, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, |
| 0x69, 0x73, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, |
| 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, |
| 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7d, 0x0a, 0x16, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, |
| 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, |
| 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, |
| 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, |
| 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, |
| 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3a, 0x0a, 0x06, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x12, 0x16, |
| 0x0a, 0x12, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, |
| 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, |
| 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x48, 0x41, 0x54, 0x10, 0x02, |
| 0x3a, 0x7c, 0xea, 0x41, 0x79, 0x0a, 0x31, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x76, |
| 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, |
| 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x42, 0x0a, |
| 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x78, |
| 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x04, 0x0a, 0x08, 0x41, 0x6e, 0x61, |
| 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, |
| 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, |
| 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, |
| 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, |
| 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, |
| 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, |
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x63, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, |
| 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x67, 0x0a, 0x12, 0x61, 0x6e, 0x6e, |
| 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, |
| 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, |
| 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, |
| 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, |
| 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, |
| 0x6f, 0x72, 0x3a, 0x8d, 0x01, 0xea, 0x41, 0x89, 0x01, 0x0a, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, |
| 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, |
| 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, |
| 0x73, 0x7d, 0x22, 0xdd, 0x01, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x51, 0x0a, |
| 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x12, 0x66, 0x0a, 0x11, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, |
| 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x10, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, |
| 0x6f, 0x77, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, |
| 0x63, 0x65, 0x22, 0x54, 0x0a, 0x09, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, |
| 0x1b, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x55, 0x72, 0x69, 0x12, 0x2a, 0x0a, 0x0e, |
| 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, |
| 0x63, 0x72, 0x69, 0x70, 0x74, 0x55, 0x72, 0x69, 0x22, 0x6d, 0x0a, 0x10, 0x44, 0x69, 0x61, 0x6c, |
| 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x17, |
| 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, |
| 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x52, 0x16, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, |
| 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x75, |
| 0x64, 0x69, 0x6f, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, |
| 0x75, 0x64, 0x69, 0x6f, 0x55, 0x72, 0x69, 0x22, 0xd9, 0x09, 0x0a, 0x0e, 0x41, 0x6e, 0x61, 0x6c, |
| 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x16, 0x63, |
| 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, |
| 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, |
| 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4d, |
| 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x63, 0x61, 0x6c, 0x6c, 0x41, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, |
| 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, |
| 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0xfe, 0x07, 0x0a, 0x14, 0x43, 0x61, 0x6c, 0x6c, 0x41, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, |
| 0x57, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, |
| 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, |
| 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, |
| 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x74, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, |
| 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, |
| 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4d, 0x65, |
| 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x45, |
| 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x61, |
| 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, |
| 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x74, |
| 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, |
| 0x73, 0x12, 0x71, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, |
| 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x41, 0x6e, |
| 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, |
| 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x69, 0x6e, 0x74, |
| 0x65, 0x6e, 0x74, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x0f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, |
| 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, |
| 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, |
| 0x69, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x68, 0x72, 0x61, 0x73, |
| 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, |
| 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x73, 0x12, 0x65, |
| 0x0a, 0x12, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, |
| 0x75, 0x6c, 0x74, 0x52, 0x10, 0x69, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, |
| 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x6a, 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, |
| 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, |
| 0x01, 0x1a, 0x69, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, |
| 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, |
| 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, |
| 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x79, 0x0a, 0x13, |
| 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x73, 0x45, 0x6e, |
| 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, |
| 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, 0x72, |
| 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, |
| 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x10, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, |
| 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xfa, |
| 0x41, 0x31, 0x0a, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, |
| 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, |
| 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, |
| 0x4e, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x41, 0x73, 0x73, |
| 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, |
| 0x9a, 0x01, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, |
| 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x12, |
| 0x5b, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, |
| 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x73, |
| 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x0f, |
| 0x49, 0x73, 0x73, 0x75, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, |
| 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, |
| 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, |
| 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, |
| 0x61, 0x6d, 0x65, 0x22, 0xae, 0x08, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, |
| 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, |
| 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, |
| 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, |
| 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5d, |
| 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, |
| 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, |
| 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, |
| 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x57, 0x0a, |
| 0x0c, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6c, 0x65, |
| 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x6c, 0x65, 0x6e, |
| 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x64, |
| 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, |
| 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, |
| 0x31, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, |
| 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x6a, 0x0a, 0x13, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, |
| 0x5f, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, |
| 0x74, 0x79, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, |
| 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, |
| 0x74, 0x61, 0x12, 0x64, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, |
| 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x11, 0x70, 0x68, 0x72, 0x61, |
| 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, 0x72, 0x61, |
| 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x70, |
| 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x61, |
| 0x0a, 0x10, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x61, |
| 0x74, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, |
| 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x48, |
| 0x00, 0x52, 0x0e, 0x69, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, |
| 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x67, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, |
| 0x61, 0x67, 0x12, 0x75, 0x0a, 0x19, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, |
| 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, |
| 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, |
| 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, |
| 0x52, 0x17, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, |
| 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x71, 0x0a, 0x17, 0x61, 0x6e, 0x6e, |
| 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, |
| 0x64, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, |
| 0x6e, 0x64, 0x61, 0x72, 0x79, 0x52, 0x15, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x45, 0x6e, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x42, 0x06, 0x0a, 0x04, |
| 0x64, 0x61, 0x74, 0x61, 0x22, 0x75, 0x0a, 0x12, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x77, 0x6f, |
| 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, |
| 0x52, 0x09, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x74, |
| 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, |
| 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x13, 0x0a, 0x11, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, |
| 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x22, 0xbe, 0x04, 0x0a, 0x06, |
| 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, |
| 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, |
| 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, |
| 0x65, 0x12, 0x57, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, |
| 0x74, 0x79, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, |
| 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x61, |
| 0x6c, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x73, 0x61, |
| 0x6c, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, |
| 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, |
| 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, |
| 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, |
| 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, |
| 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, |
| 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, |
| 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc2, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, |
| 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, |
| 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x45, 0x52, 0x53, 0x4f, 0x4e, |
| 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, |
| 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, |
| 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x0f, 0x0a, |
| 0x0b, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x46, 0x5f, 0x41, 0x52, 0x54, 0x10, 0x05, 0x12, 0x11, |
| 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x10, |
| 0x06, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, |
| 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x0b, |
| 0x0a, 0x07, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x44, |
| 0x41, 0x54, 0x45, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, |
| 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x49, 0x43, 0x45, 0x10, 0x0d, 0x22, 0x3b, 0x0a, 0x06, |
| 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, |
| 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, |
| 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x0f, 0x50, 0x68, 0x72, |
| 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, |
| 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, |
| 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, |
| 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x10, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, |
| 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, |
| 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x12, 0x0a, |
| 0x10, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, |
| 0x61, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, |
| 0x22, 0x0a, 0x0a, 0x08, 0x48, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb0, 0x02, 0x0a, |
| 0x11, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, |
| 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x75, 0x6e, 0x69, |
| 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, |
| 0x74, 0x69, 0x74, 0x79, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x12, 0x58, 0x0a, 0x04, |
| 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, |
| 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, |
| 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, |
| 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, |
| 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, |
| 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, |
| 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x0b, 0x4d, 0x65, |
| 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x4e, |
| 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, |
| 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x4f, 0x50, 0x45, |
| 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x22, |
| 0x3b, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, |
| 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x6e, 0x69, |
| 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, |
| 0x74, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0d, |
| 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, |
| 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, |
| 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, |
| 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, |
| 0x65, 0x22, 0x73, 0x0a, 0x0e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, |
| 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x10, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x61, 0x73, 0x73, |
| 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, |
| 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x41, 0x73, 0x73, 0x69, |
| 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x09, 0x0a, 0x0a, 0x49, 0x73, 0x73, 0x75, 0x65, |
| 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, |
| 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, |
| 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, |
| 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, |
| 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, |
| 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x63, |
| 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, |
| 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x05, 0x73, |
| 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x74, |
| 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, |
| 0x6d, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x49, 0x6e, |
| 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x69, |
| 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6a, |
| 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, |
| 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, |
| 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, |
| 0x61, 0x74, 0x73, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0d, 0x74, 0x72, 0x61, |
| 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x0a, 0x6d, 0x6f, |
| 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, |
| 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, |
| 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, |
| 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0xc8, 0x01, 0x0a, 0x0f, |
| 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, |
| 0x56, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, |
| 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x42, 0x02, 0x18, 0x01, 0x52, |
| 0x06, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x12, 0x45, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x69, 0x6e, |
| 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, |
| 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, |
| 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, |
| 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x6a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, |
| 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, |
| 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x44, 0x45, 0x50, 0x4c, |
| 0x4f, 0x59, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, |
| 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, |
| 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, |
| 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, |
| 0x10, 0x05, 0x22, 0x41, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, |
| 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, |
| 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, |
| 0x59, 0x50, 0x45, 0x5f, 0x56, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x59, 0x50, 0x45, |
| 0x5f, 0x56, 0x32, 0x10, 0x02, 0x3a, 0x77, 0xea, 0x41, 0x74, 0x0a, 0x2f, 0x63, 0x6f, 0x6e, 0x74, |
| 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, |
| 0x2f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x41, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, |
| 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, |
| 0x2f, 0x7b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x7d, 0x22, 0xfd, |
| 0x02, 0x0a, 0x05, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, |
| 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, |
| 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, |
| 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, |
| 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, |
| 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, |
| 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, |
| 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x70, |
| 0x6c, 0x65, 0x5f, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, |
| 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, |
| 0x55, 0x74, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x3a, 0x81, 0x01, 0xea, 0x41, 0x7e, |
| 0x0a, 0x2a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, |
| 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x50, 0x70, 0x72, |
| 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, |
| 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, |
| 0x73, 0x2f, 0x7b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x7d, 0x2f, |
| 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x7d, 0x22, 0xa0, |
| 0x04, 0x0a, 0x14, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x61, 0x62, |
| 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x61, |
| 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x20, 0x75, 0x6e, 0x63, |
| 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, |
| 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x03, 0x52, 0x1e, 0x75, 0x6e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, |
| 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, |
| 0x75, 0x6e, 0x74, 0x12, 0x6c, 0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x61, |
| 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, |
| 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, |
| 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, |
| 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, |
| 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x0a, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, |
| 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x65, |
| 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, |
| 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6c, 0x61, 0x62, |
| 0x65, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, |
| 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, |
| 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x85, 0x01, 0x0a, 0x0f, 0x49, 0x73, |
| 0x73, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, |
| 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, |
| 0x5c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, |
| 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x49, 0x73, 0x73, 0x75, |
| 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, |
| 0x01, 0x22, 0xa4, 0x07, 0x0a, 0x0d, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, |
| 0x05, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, |
| 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, |
| 0x67, 0x12, 0x51, 0x0a, 0x14, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, |
| 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, |
| 0x52, 0x12, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, |
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, |
| 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, |
| 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, |
| 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, |
| 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, |
| 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x50, 0x68, 0x72, 0x61, |
| 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, |
| 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, |
| 0x12, 0x74, 0x0a, 0x18, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, |
| 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, 0x72, 0x61, 0x73, |
| 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, |
| 0x15, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, |
| 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, |
| 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, |
| 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x62, 0x0a, |
| 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, |
| 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, |
| 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, |
| 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, |
| 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, |
| 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, |
| 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x11, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, |
| 0x63, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x48, 0x52, 0x41, |
| 0x53, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, |
| 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, |
| 0x06, 0x41, 0x4c, 0x4c, 0x5f, 0x4f, 0x46, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4e, 0x59, |
| 0x5f, 0x4f, 0x46, 0x10, 0x02, 0x3a, 0x80, 0x01, 0xea, 0x41, 0x7d, 0x0a, 0x32, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, |
| 0x6d, 0x2f, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, |
| 0x47, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, |
| 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, |
| 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, |
| 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, |
| 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x7d, 0x22, 0xcd, 0x02, 0x0a, 0x14, 0x50, 0x68, 0x72, |
| 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, |
| 0x70, 0x12, 0x6d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, |
| 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, |
| 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x50, 0x68, 0x72, |
| 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, |
| 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, |
| 0x12, 0x64, 0x0a, 0x12, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, |
| 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, |
| 0x52, 0x75, 0x6c, 0x65, 0x52, 0x10, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x60, 0x0a, 0x18, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, |
| 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, |
| 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x48, 0x52, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x41, 0x54, |
| 0x43, 0x48, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x54, 0x59, |
| 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, |
| 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x4c, 0x5f, 0x4f, 0x46, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, |
| 0x41, 0x4e, 0x59, 0x5f, 0x4f, 0x46, 0x10, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0f, 0x50, 0x68, 0x72, |
| 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x05, |
| 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, |
| 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, |
| 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, |
| 0x64, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, |
| 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, |
| 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x8a, 0x01, 0x0a, 0x15, 0x50, 0x68, 0x72, 0x61, |
| 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x12, 0x67, 0x0a, 0x12, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, |
| 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x22, 0x39, 0x0a, 0x10, 0x45, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, |
| 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x73, 0x65, |
| 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, |
| 0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22, |
| 0xb0, 0x09, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, |
| 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, |
| 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, |
| 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, |
| 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, |
| 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, |
| 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x44, |
| 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, |
| 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x54, 0x74, 0x6c, 0x12, 0x91, 0x01, 0x0a, 0x1c, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, |
| 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, |
| 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x50, 0x75, 0x62, |
| 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, |
| 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1a, 0x70, 0x75, |
| 0x62, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x67, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, |
| 0x67, 0x73, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x12, 0x61, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5d, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x1a, 0xa7, 0x02, 0x0a, 0x0e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x55, 0x0a, 0x27, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, |
| 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, |
| 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, |
| 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x24, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, |
| 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, |
| 0x73, 0x69, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, |
| 0x27, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x70, 0x65, |
| 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x24, |
| 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, |
| 0x74, 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, |
| 0x72, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, |
| 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, |
| 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x61, 0x6e, 0x6e, 0x6f, |
| 0x74, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x4d, 0x0a, |
| 0x1f, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, |
| 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, |
| 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x64, 0xea, 0x41, |
| 0x61, 0x0a, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, |
| 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, |
| 0x12, 0x30, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, |
| 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, |
| 0x67, 0x73, 0x22, 0x6d, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, |
| 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x54, 0x65, |
| 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, |
| 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, |
| 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x12, 0x52, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x63, 0x6f, |
| 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x41, |
| 0x22, 0x0a, 0x20, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, |
| 0x7a, 0x65, 0x72, 0x52, 0x10, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x67, |
| 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x22, 0xde, 0x08, 0x0a, 0x11, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, |
| 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x12, 0x61, |
| 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, |
| 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x41, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, |
| 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x11, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, |
| 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0a, 0x66, 0x61, |
| 0x71, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, |
| 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x71, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, |
| 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x09, 0x66, 0x61, 0x71, 0x41, 0x6e, 0x73, 0x77, 0x65, |
| 0x72, 0x12, 0x58, 0x0a, 0x0b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, |
| 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, |
| 0x6d, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, |
| 0x0a, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x7d, 0x0a, 0x18, 0x73, |
| 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x73, 0x75, 0x67, |
| 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, |
| 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, |
| 0x73, 0x65, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, |
| 0x48, 0x00, 0x52, 0x16, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, |
| 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x79, 0x0a, 0x16, 0x64, 0x69, |
| 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, |
| 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, |
| 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x15, |
| 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, |
| 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xa4, 0x01, 0x0a, 0x25, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, |
| 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, |
| 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, |
| 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, |
| 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, |
| 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, |
| 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, |
| 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, |
| 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, |
| 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x60, |
| 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, |
| 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, |
| 0x79, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, |
| 0x12, 0x5c, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, |
| 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, |
| 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, |
| 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x12, 0x5e, |
| 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, |
| 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0e, |
| 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x06, |
| 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x02, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, |
| 0x72, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x73, 0x0a, 0x11, 0x63, 0x6f, 0x72, |
| 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, |
| 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, |
| 0x77, 0x65, 0x72, 0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x6f, 0x72, 0x72, |
| 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, |
| 0x72, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, |
| 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, |
| 0x07, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x70, |
| 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x69, 0x73, |
| 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x22, 0x70, 0x0a, 0x10, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, |
| 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x4f, |
| 0x52, 0x52, 0x45, 0x43, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, |
| 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, |
| 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x15, |
| 0x0a, 0x11, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x4f, 0x52, 0x52, |
| 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x55, 0x4c, 0x4c, 0x59, 0x5f, 0x43, |
| 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x10, 0x03, 0x22, 0xca, 0x02, 0x0a, 0x15, 0x41, 0x72, 0x74, |
| 0x69, 0x63, 0x6c, 0x65, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, |
| 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, |
| 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x66, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, |
| 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, |
| 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, |
| 0x41, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, |
| 0x6e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, |
| 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, |
| 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, |
| 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, |
| 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, |
| 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc6, 0x02, 0x0a, 0x0d, 0x46, 0x61, 0x71, 0x41, 0x6e, 0x73, |
| 0x77, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, |
| 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, |
| 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, |
| 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, |
| 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, |
| 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, |
| 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x2e, 0x46, 0x61, 0x71, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, |
| 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, |
| 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, |
| 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, |
| 0x65, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, |
| 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, |
| 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, |
| 0x02, 0x0a, 0x0e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, 0x74, |
| 0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, |
| 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, |
| 0x72, 0x65, 0x12, 0x5f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, |
| 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6d, 0x61, |
| 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, |
| 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, |
| 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, |
| 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, |
| 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, |
| 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, |
| 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, |
| 0x02, 0x38, 0x01, 0x22, 0xb4, 0x02, 0x0a, 0x1a, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, |
| 0x70, 0x6f, 0x73, 0x65, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, |
| 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, |
| 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, |
| 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x6b, 0x0a, |
| 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, |
| 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, |
| 0x70, 0x6f, 0x73, 0x65, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, |
| 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, |
| 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, |
| 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x3b, 0x0a, |
| 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, |
| 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, |
| 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x19, 0x44, 0x69, |
| 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, |
| 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x61, 0x6c, 0x6f, |
| 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, |
| 0x77, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, |
| 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb1, 0x04, 0x0a, 0x27, 0x43, 0x6f, |
| 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, |
| 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, |
| 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x74, 0x65, |
| 0x78, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x60, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, |
| 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, |
| 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, |
| 0x61, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, |
| 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x65, 0x78, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, |
| 0x65, 0x12, 0x78, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x5c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, |
| 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, |
| 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, |
| 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x61, |
| 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, |
| 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, |
| 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, |
| 0x3f, 0x0a, 0x11, 0x54, 0x65, 0x78, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, |
| 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, |
| 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, |
| 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, |
| 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe5, 0x03, |
| 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, |
| 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x6c, 0x0a, 0x1b, 0x64, 0x69, 0x61, |
| 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, |
| 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, |
| 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, |
| 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x19, 0x64, 0x69, |
| 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, |
| 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, |
| 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, |
| 0x49, 0x64, 0x12, 0x39, 0x0a, 0x16, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, |
| 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, |
| 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x3d, 0x0a, |
| 0x1b, 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, |
| 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x18, 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, |
| 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x04, |
| 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, |
| 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, |
| 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, |
| 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, |
| 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, |
| 0x10, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, |
| 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x55, 0x4d, 0x41, 0x4e, 0x5f, 0x41, 0x47, 0x45, |
| 0x4e, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x54, 0x45, |
| 0x44, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x44, |
| 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x59, 0x5f, 0x41, |
| 0x47, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x42, 0x0d, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, |
| 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, |
| 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, |
| 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, |
| 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, |
| 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, |
| 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, |
| 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, |
| 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, |
| 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, |
| 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x64, 0xea, 0x41, 0x61, 0x0a, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, |
| 0x56, 0x69, 0x65, 0x77, 0x12, 0x34, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, |
| 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x76, 0x69, |
| 0x65, 0x77, 0x73, 0x2f, 0x7b, 0x76, 0x69, 0x65, 0x77, 0x7d, 0x22, 0x8e, 0x09, 0x0a, 0x11, 0x41, |
| 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, |
| 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x72, 0x75, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, |
| 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x32, |
| 0x0a, 0x15, 0x72, 0x75, 0x6e, 0x5f, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x61, 0x6e, |
| 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x72, |
| 0x75, 0x6e, 0x53, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, |
| 0x6f, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x72, 0x75, 0x6e, 0x5f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, |
| 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, |
| 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x72, 0x75, 0x6e, 0x50, 0x68, 0x72, |
| 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, |
| 0x74, 0x6f, 0x72, 0x12, 0x60, 0x0a, 0x0f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xfa, 0x41, |
| 0x34, 0x0a, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, |
| 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, |
| 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x0e, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, |
| 0x63, 0x68, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x75, 0x6e, 0x5f, 0x73, 0x65, 0x6e, |
| 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, |
| 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x75, 0x6e, 0x53, 0x65, 0x6e, 0x74, 0x69, |
| 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, |
| 0x14, 0x72, 0x75, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, |
| 0x74, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x75, 0x6e, |
| 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, |
| 0x30, 0x0a, 0x14, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6e, |
| 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, |
| 0x75, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, |
| 0x72, 0x12, 0x39, 0x0a, 0x19, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x6d, |
| 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, |
| 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x72, 0x75, 0x6e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x6f, |
| 0x64, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x57, 0x0a, 0x0c, |
| 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, |
| 0x28, 0x09, 0x42, 0x34, 0xfa, 0x41, 0x31, 0x0a, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, |
| 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x73, |
| 0x73, 0x75, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x4d, |
| 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x1b, 0x72, 0x75, 0x6e, 0x5f, 0x73, 0x75, 0x6d, |
| 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, |
| 0x61, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x72, 0x75, 0x6e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, |
| 0x74, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x7f, 0x0a, 0x14, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, |
| 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, |
| 0x74, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x75, |
| 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x52, 0x13, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xf2, 0x02, 0x0a, 0x13, 0x53, 0x75, 0x6d, 0x6d, 0x61, |
| 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x67, |
| 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, |
| 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xfa, 0x41, |
| 0x2f, 0x0a, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, |
| 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, |
| 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x73, 0x75, 0x6d, 0x6d, |
| 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x5f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, |
| 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, |
| 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, |
| 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, |
| 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x4d, 0x0a, 0x12, |
| 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x49, 0x5a, 0x41, 0x54, |
| 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, |
| 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x41, 0x53, 0x45, 0x4c, |
| 0x49, 0x4e, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x6d, |
| 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0xe0, 0x05, 0xea, 0x41, |
| 0x84, 0x01, 0x0a, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, |
| 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, |
| 0x65, 0x12, 0x53, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, |
| 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, |
| 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, |
| 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, |
| 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x7d, 0xea, 0x41, 0xd4, 0x01, 0x0a, 0x25, 0x64, 0x69, 0x61, 0x6c, |
| 0x6f, 0x67, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, |
| 0x74, 0x12, 0x4a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x7d, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x2f, |
| 0x7b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x7d, 0x12, 0x5f, 0x70, |
| 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, |
| 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, |
| 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x7d, 0xea, 0x41, |
| 0x64, 0x0a, 0x20, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, |
| 0x7a, 0x65, 0x72, 0x12, 0x40, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, |
| 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x65, 0x63, |
| 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, |
| 0x69, 0x7a, 0x65, 0x72, 0x7d, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, |
| 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x76, 0x31, |
| 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, |
| 0x50, 0x01, 0x5a, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, |
| 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2f, 0x61, 0x70, |
| 0x69, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, |
| 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x70, 0x62, 0x3b, 0x63, 0x6f, 0x6e, 0x74, |
| 0x61, 0x63, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, |
| 0x73, 0x70, 0x62, 0xaa, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, |
| 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x25, 0x47, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x43, 0x6f, 0x6e, 0x74, 0x61, |
| 0x63, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, |
| 0x5c, 0x56, 0x31, 0xea, 0x02, 0x28, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, |
| 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x43, 0x65, 0x6e, 0x74, |
| 0x65, 0x72, 0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescOnce sync.Once |
| file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescData = file_google_cloud_contactcenterinsights_v1_resources_proto_rawDesc |
| ) |
| |
| func file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescGZIP() []byte { |
| file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescOnce.Do(func() { |
| file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescData) |
| }) |
| return file_google_cloud_contactcenterinsights_v1_resources_proto_rawDescData |
| } |
| |
| var file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 10) |
| var file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 70) |
| var file_google_cloud_contactcenterinsights_v1_resources_proto_goTypes = []interface{}{ |
| (Conversation_Medium)(0), // 0: google.cloud.contactcenterinsights.v1.Conversation.Medium |
| (Entity_Type)(0), // 1: google.cloud.contactcenterinsights.v1.Entity.Type |
| (EntityMentionData_MentionType)(0), // 2: google.cloud.contactcenterinsights.v1.EntityMentionData.MentionType |
| (IssueModel_State)(0), // 3: google.cloud.contactcenterinsights.v1.IssueModel.State |
| (IssueModel_ModelType)(0), // 4: google.cloud.contactcenterinsights.v1.IssueModel.ModelType |
| (PhraseMatcher_PhraseMatcherType)(0), // 5: google.cloud.contactcenterinsights.v1.PhraseMatcher.PhraseMatcherType |
| (PhraseMatchRuleGroup_PhraseMatchRuleGroupType)(0), // 6: google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup.PhraseMatchRuleGroupType |
| (AnswerFeedback_CorrectnessLevel)(0), // 7: google.cloud.contactcenterinsights.v1.AnswerFeedback.CorrectnessLevel |
| (ConversationParticipant_Role)(0), // 8: google.cloud.contactcenterinsights.v1.ConversationParticipant.Role |
| (AnnotatorSelector_SummarizationConfig_SummarizationModel)(0), // 9: google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig.SummarizationModel |
| (*Conversation)(nil), // 10: google.cloud.contactcenterinsights.v1.Conversation |
| (*Analysis)(nil), // 11: google.cloud.contactcenterinsights.v1.Analysis |
| (*ConversationDataSource)(nil), // 12: google.cloud.contactcenterinsights.v1.ConversationDataSource |
| (*GcsSource)(nil), // 13: google.cloud.contactcenterinsights.v1.GcsSource |
| (*DialogflowSource)(nil), // 14: google.cloud.contactcenterinsights.v1.DialogflowSource |
| (*AnalysisResult)(nil), // 15: google.cloud.contactcenterinsights.v1.AnalysisResult |
| (*IssueModelResult)(nil), // 16: google.cloud.contactcenterinsights.v1.IssueModelResult |
| (*ConversationLevelSentiment)(nil), // 17: google.cloud.contactcenterinsights.v1.ConversationLevelSentiment |
| (*IssueAssignment)(nil), // 18: google.cloud.contactcenterinsights.v1.IssueAssignment |
| (*CallAnnotation)(nil), // 19: google.cloud.contactcenterinsights.v1.CallAnnotation |
| (*AnnotationBoundary)(nil), // 20: google.cloud.contactcenterinsights.v1.AnnotationBoundary |
| (*Entity)(nil), // 21: google.cloud.contactcenterinsights.v1.Entity |
| (*Intent)(nil), // 22: google.cloud.contactcenterinsights.v1.Intent |
| (*PhraseMatchData)(nil), // 23: google.cloud.contactcenterinsights.v1.PhraseMatchData |
| (*DialogflowIntent)(nil), // 24: google.cloud.contactcenterinsights.v1.DialogflowIntent |
| (*InterruptionData)(nil), // 25: google.cloud.contactcenterinsights.v1.InterruptionData |
| (*SilenceData)(nil), // 26: google.cloud.contactcenterinsights.v1.SilenceData |
| (*HoldData)(nil), // 27: google.cloud.contactcenterinsights.v1.HoldData |
| (*EntityMentionData)(nil), // 28: google.cloud.contactcenterinsights.v1.EntityMentionData |
| (*IntentMatchData)(nil), // 29: google.cloud.contactcenterinsights.v1.IntentMatchData |
| (*SentimentData)(nil), // 30: google.cloud.contactcenterinsights.v1.SentimentData |
| (*IssueMatchData)(nil), // 31: google.cloud.contactcenterinsights.v1.IssueMatchData |
| (*IssueModel)(nil), // 32: google.cloud.contactcenterinsights.v1.IssueModel |
| (*Issue)(nil), // 33: google.cloud.contactcenterinsights.v1.Issue |
| (*IssueModelLabelStats)(nil), // 34: google.cloud.contactcenterinsights.v1.IssueModelLabelStats |
| (*PhraseMatcher)(nil), // 35: google.cloud.contactcenterinsights.v1.PhraseMatcher |
| (*PhraseMatchRuleGroup)(nil), // 36: google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup |
| (*PhraseMatchRule)(nil), // 37: google.cloud.contactcenterinsights.v1.PhraseMatchRule |
| (*PhraseMatchRuleConfig)(nil), // 38: google.cloud.contactcenterinsights.v1.PhraseMatchRuleConfig |
| (*ExactMatchConfig)(nil), // 39: google.cloud.contactcenterinsights.v1.ExactMatchConfig |
| (*Settings)(nil), // 40: google.cloud.contactcenterinsights.v1.Settings |
| (*RedactionConfig)(nil), // 41: google.cloud.contactcenterinsights.v1.RedactionConfig |
| (*SpeechConfig)(nil), // 42: google.cloud.contactcenterinsights.v1.SpeechConfig |
| (*RuntimeAnnotation)(nil), // 43: google.cloud.contactcenterinsights.v1.RuntimeAnnotation |
| (*AnswerFeedback)(nil), // 44: google.cloud.contactcenterinsights.v1.AnswerFeedback |
| (*ArticleSuggestionData)(nil), // 45: google.cloud.contactcenterinsights.v1.ArticleSuggestionData |
| (*FaqAnswerData)(nil), // 46: google.cloud.contactcenterinsights.v1.FaqAnswerData |
| (*SmartReplyData)(nil), // 47: google.cloud.contactcenterinsights.v1.SmartReplyData |
| (*SmartComposeSuggestionData)(nil), // 48: google.cloud.contactcenterinsights.v1.SmartComposeSuggestionData |
| (*DialogflowInteractionData)(nil), // 49: google.cloud.contactcenterinsights.v1.DialogflowInteractionData |
| (*ConversationSummarizationSuggestionData)(nil), // 50: google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData |
| (*ConversationParticipant)(nil), // 51: google.cloud.contactcenterinsights.v1.ConversationParticipant |
| (*View)(nil), // 52: google.cloud.contactcenterinsights.v1.View |
| (*AnnotatorSelector)(nil), // 53: google.cloud.contactcenterinsights.v1.AnnotatorSelector |
| (*Conversation_CallMetadata)(nil), // 54: google.cloud.contactcenterinsights.v1.Conversation.CallMetadata |
| (*Conversation_QualityMetadata)(nil), // 55: google.cloud.contactcenterinsights.v1.Conversation.QualityMetadata |
| (*Conversation_Transcript)(nil), // 56: google.cloud.contactcenterinsights.v1.Conversation.Transcript |
| nil, // 57: google.cloud.contactcenterinsights.v1.Conversation.LabelsEntry |
| nil, // 58: google.cloud.contactcenterinsights.v1.Conversation.DialogflowIntentsEntry |
| (*Conversation_QualityMetadata_AgentInfo)(nil), // 59: google.cloud.contactcenterinsights.v1.Conversation.QualityMetadata.AgentInfo |
| (*Conversation_Transcript_TranscriptSegment)(nil), // 60: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment |
| (*Conversation_Transcript_TranscriptSegment_WordInfo)(nil), // 61: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.WordInfo |
| (*Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata)(nil), // 62: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.DialogflowSegmentMetadata |
| (*AnalysisResult_CallAnalysisMetadata)(nil), // 63: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata |
| nil, // 64: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.EntitiesEntry |
| nil, // 65: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.IntentsEntry |
| nil, // 66: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.PhraseMatchersEntry |
| nil, // 67: google.cloud.contactcenterinsights.v1.Entity.MetadataEntry |
| (*IssueModel_InputDataConfig)(nil), // 68: google.cloud.contactcenterinsights.v1.IssueModel.InputDataConfig |
| (*IssueModelLabelStats_IssueStats)(nil), // 69: google.cloud.contactcenterinsights.v1.IssueModelLabelStats.IssueStats |
| nil, // 70: google.cloud.contactcenterinsights.v1.IssueModelLabelStats.IssueStatsEntry |
| (*Settings_AnalysisConfig)(nil), // 71: google.cloud.contactcenterinsights.v1.Settings.AnalysisConfig |
| nil, // 72: google.cloud.contactcenterinsights.v1.Settings.PubsubNotificationSettingsEntry |
| nil, // 73: google.cloud.contactcenterinsights.v1.ArticleSuggestionData.MetadataEntry |
| nil, // 74: google.cloud.contactcenterinsights.v1.FaqAnswerData.MetadataEntry |
| nil, // 75: google.cloud.contactcenterinsights.v1.SmartReplyData.MetadataEntry |
| nil, // 76: google.cloud.contactcenterinsights.v1.SmartComposeSuggestionData.MetadataEntry |
| nil, // 77: google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData.TextSectionsEntry |
| nil, // 78: google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData.MetadataEntry |
| (*AnnotatorSelector_SummarizationConfig)(nil), // 79: google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig |
| (*timestamppb.Timestamp)(nil), // 80: google.protobuf.Timestamp |
| (*durationpb.Duration)(nil), // 81: google.protobuf.Duration |
| } |
| var file_google_cloud_contactcenterinsights_v1_resources_proto_depIdxs = []int32{ |
| 54, // 0: google.cloud.contactcenterinsights.v1.Conversation.call_metadata:type_name -> google.cloud.contactcenterinsights.v1.Conversation.CallMetadata |
| 80, // 1: google.cloud.contactcenterinsights.v1.Conversation.expire_time:type_name -> google.protobuf.Timestamp |
| 81, // 2: google.cloud.contactcenterinsights.v1.Conversation.ttl:type_name -> google.protobuf.Duration |
| 12, // 3: google.cloud.contactcenterinsights.v1.Conversation.data_source:type_name -> google.cloud.contactcenterinsights.v1.ConversationDataSource |
| 80, // 4: google.cloud.contactcenterinsights.v1.Conversation.create_time:type_name -> google.protobuf.Timestamp |
| 80, // 5: google.cloud.contactcenterinsights.v1.Conversation.update_time:type_name -> google.protobuf.Timestamp |
| 80, // 6: google.cloud.contactcenterinsights.v1.Conversation.start_time:type_name -> google.protobuf.Timestamp |
| 57, // 7: google.cloud.contactcenterinsights.v1.Conversation.labels:type_name -> google.cloud.contactcenterinsights.v1.Conversation.LabelsEntry |
| 55, // 8: google.cloud.contactcenterinsights.v1.Conversation.quality_metadata:type_name -> google.cloud.contactcenterinsights.v1.Conversation.QualityMetadata |
| 56, // 9: google.cloud.contactcenterinsights.v1.Conversation.transcript:type_name -> google.cloud.contactcenterinsights.v1.Conversation.Transcript |
| 0, // 10: google.cloud.contactcenterinsights.v1.Conversation.medium:type_name -> google.cloud.contactcenterinsights.v1.Conversation.Medium |
| 81, // 11: google.cloud.contactcenterinsights.v1.Conversation.duration:type_name -> google.protobuf.Duration |
| 11, // 12: google.cloud.contactcenterinsights.v1.Conversation.latest_analysis:type_name -> google.cloud.contactcenterinsights.v1.Analysis |
| 50, // 13: google.cloud.contactcenterinsights.v1.Conversation.latest_summary:type_name -> google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData |
| 43, // 14: google.cloud.contactcenterinsights.v1.Conversation.runtime_annotations:type_name -> google.cloud.contactcenterinsights.v1.RuntimeAnnotation |
| 58, // 15: google.cloud.contactcenterinsights.v1.Conversation.dialogflow_intents:type_name -> google.cloud.contactcenterinsights.v1.Conversation.DialogflowIntentsEntry |
| 80, // 16: google.cloud.contactcenterinsights.v1.Analysis.request_time:type_name -> google.protobuf.Timestamp |
| 80, // 17: google.cloud.contactcenterinsights.v1.Analysis.create_time:type_name -> google.protobuf.Timestamp |
| 15, // 18: google.cloud.contactcenterinsights.v1.Analysis.analysis_result:type_name -> google.cloud.contactcenterinsights.v1.AnalysisResult |
| 53, // 19: google.cloud.contactcenterinsights.v1.Analysis.annotator_selector:type_name -> google.cloud.contactcenterinsights.v1.AnnotatorSelector |
| 13, // 20: google.cloud.contactcenterinsights.v1.ConversationDataSource.gcs_source:type_name -> google.cloud.contactcenterinsights.v1.GcsSource |
| 14, // 21: google.cloud.contactcenterinsights.v1.ConversationDataSource.dialogflow_source:type_name -> google.cloud.contactcenterinsights.v1.DialogflowSource |
| 63, // 22: google.cloud.contactcenterinsights.v1.AnalysisResult.call_analysis_metadata:type_name -> google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata |
| 80, // 23: google.cloud.contactcenterinsights.v1.AnalysisResult.end_time:type_name -> google.protobuf.Timestamp |
| 18, // 24: google.cloud.contactcenterinsights.v1.IssueModelResult.issues:type_name -> google.cloud.contactcenterinsights.v1.IssueAssignment |
| 30, // 25: google.cloud.contactcenterinsights.v1.ConversationLevelSentiment.sentiment_data:type_name -> google.cloud.contactcenterinsights.v1.SentimentData |
| 25, // 26: google.cloud.contactcenterinsights.v1.CallAnnotation.interruption_data:type_name -> google.cloud.contactcenterinsights.v1.InterruptionData |
| 30, // 27: google.cloud.contactcenterinsights.v1.CallAnnotation.sentiment_data:type_name -> google.cloud.contactcenterinsights.v1.SentimentData |
| 26, // 28: google.cloud.contactcenterinsights.v1.CallAnnotation.silence_data:type_name -> google.cloud.contactcenterinsights.v1.SilenceData |
| 27, // 29: google.cloud.contactcenterinsights.v1.CallAnnotation.hold_data:type_name -> google.cloud.contactcenterinsights.v1.HoldData |
| 28, // 30: google.cloud.contactcenterinsights.v1.CallAnnotation.entity_mention_data:type_name -> google.cloud.contactcenterinsights.v1.EntityMentionData |
| 29, // 31: google.cloud.contactcenterinsights.v1.CallAnnotation.intent_match_data:type_name -> google.cloud.contactcenterinsights.v1.IntentMatchData |
| 23, // 32: google.cloud.contactcenterinsights.v1.CallAnnotation.phrase_match_data:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatchData |
| 31, // 33: google.cloud.contactcenterinsights.v1.CallAnnotation.issue_match_data:type_name -> google.cloud.contactcenterinsights.v1.IssueMatchData |
| 20, // 34: google.cloud.contactcenterinsights.v1.CallAnnotation.annotation_start_boundary:type_name -> google.cloud.contactcenterinsights.v1.AnnotationBoundary |
| 20, // 35: google.cloud.contactcenterinsights.v1.CallAnnotation.annotation_end_boundary:type_name -> google.cloud.contactcenterinsights.v1.AnnotationBoundary |
| 1, // 36: google.cloud.contactcenterinsights.v1.Entity.type:type_name -> google.cloud.contactcenterinsights.v1.Entity.Type |
| 67, // 37: google.cloud.contactcenterinsights.v1.Entity.metadata:type_name -> google.cloud.contactcenterinsights.v1.Entity.MetadataEntry |
| 30, // 38: google.cloud.contactcenterinsights.v1.Entity.sentiment:type_name -> google.cloud.contactcenterinsights.v1.SentimentData |
| 2, // 39: google.cloud.contactcenterinsights.v1.EntityMentionData.type:type_name -> google.cloud.contactcenterinsights.v1.EntityMentionData.MentionType |
| 30, // 40: google.cloud.contactcenterinsights.v1.EntityMentionData.sentiment:type_name -> google.cloud.contactcenterinsights.v1.SentimentData |
| 18, // 41: google.cloud.contactcenterinsights.v1.IssueMatchData.issue_assignment:type_name -> google.cloud.contactcenterinsights.v1.IssueAssignment |
| 80, // 42: google.cloud.contactcenterinsights.v1.IssueModel.create_time:type_name -> google.protobuf.Timestamp |
| 80, // 43: google.cloud.contactcenterinsights.v1.IssueModel.update_time:type_name -> google.protobuf.Timestamp |
| 3, // 44: google.cloud.contactcenterinsights.v1.IssueModel.state:type_name -> google.cloud.contactcenterinsights.v1.IssueModel.State |
| 68, // 45: google.cloud.contactcenterinsights.v1.IssueModel.input_data_config:type_name -> google.cloud.contactcenterinsights.v1.IssueModel.InputDataConfig |
| 34, // 46: google.cloud.contactcenterinsights.v1.IssueModel.training_stats:type_name -> google.cloud.contactcenterinsights.v1.IssueModelLabelStats |
| 4, // 47: google.cloud.contactcenterinsights.v1.IssueModel.model_type:type_name -> google.cloud.contactcenterinsights.v1.IssueModel.ModelType |
| 80, // 48: google.cloud.contactcenterinsights.v1.Issue.create_time:type_name -> google.protobuf.Timestamp |
| 80, // 49: google.cloud.contactcenterinsights.v1.Issue.update_time:type_name -> google.protobuf.Timestamp |
| 70, // 50: google.cloud.contactcenterinsights.v1.IssueModelLabelStats.issue_stats:type_name -> google.cloud.contactcenterinsights.v1.IssueModelLabelStats.IssueStatsEntry |
| 80, // 51: google.cloud.contactcenterinsights.v1.PhraseMatcher.revision_create_time:type_name -> google.protobuf.Timestamp |
| 5, // 52: google.cloud.contactcenterinsights.v1.PhraseMatcher.type:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatcher.PhraseMatcherType |
| 36, // 53: google.cloud.contactcenterinsights.v1.PhraseMatcher.phrase_match_rule_groups:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup |
| 80, // 54: google.cloud.contactcenterinsights.v1.PhraseMatcher.activation_update_time:type_name -> google.protobuf.Timestamp |
| 8, // 55: google.cloud.contactcenterinsights.v1.PhraseMatcher.role_match:type_name -> google.cloud.contactcenterinsights.v1.ConversationParticipant.Role |
| 80, // 56: google.cloud.contactcenterinsights.v1.PhraseMatcher.update_time:type_name -> google.protobuf.Timestamp |
| 6, // 57: google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup.type:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup.PhraseMatchRuleGroupType |
| 37, // 58: google.cloud.contactcenterinsights.v1.PhraseMatchRuleGroup.phrase_match_rules:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatchRule |
| 38, // 59: google.cloud.contactcenterinsights.v1.PhraseMatchRule.config:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatchRuleConfig |
| 39, // 60: google.cloud.contactcenterinsights.v1.PhraseMatchRuleConfig.exact_match_config:type_name -> google.cloud.contactcenterinsights.v1.ExactMatchConfig |
| 80, // 61: google.cloud.contactcenterinsights.v1.Settings.create_time:type_name -> google.protobuf.Timestamp |
| 80, // 62: google.cloud.contactcenterinsights.v1.Settings.update_time:type_name -> google.protobuf.Timestamp |
| 81, // 63: google.cloud.contactcenterinsights.v1.Settings.conversation_ttl:type_name -> google.protobuf.Duration |
| 72, // 64: google.cloud.contactcenterinsights.v1.Settings.pubsub_notification_settings:type_name -> google.cloud.contactcenterinsights.v1.Settings.PubsubNotificationSettingsEntry |
| 71, // 65: google.cloud.contactcenterinsights.v1.Settings.analysis_config:type_name -> google.cloud.contactcenterinsights.v1.Settings.AnalysisConfig |
| 41, // 66: google.cloud.contactcenterinsights.v1.Settings.redaction_config:type_name -> google.cloud.contactcenterinsights.v1.RedactionConfig |
| 42, // 67: google.cloud.contactcenterinsights.v1.Settings.speech_config:type_name -> google.cloud.contactcenterinsights.v1.SpeechConfig |
| 45, // 68: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.article_suggestion:type_name -> google.cloud.contactcenterinsights.v1.ArticleSuggestionData |
| 46, // 69: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.faq_answer:type_name -> google.cloud.contactcenterinsights.v1.FaqAnswerData |
| 47, // 70: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.smart_reply:type_name -> google.cloud.contactcenterinsights.v1.SmartReplyData |
| 48, // 71: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.smart_compose_suggestion:type_name -> google.cloud.contactcenterinsights.v1.SmartComposeSuggestionData |
| 49, // 72: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.dialogflow_interaction:type_name -> google.cloud.contactcenterinsights.v1.DialogflowInteractionData |
| 50, // 73: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.conversation_summarization_suggestion:type_name -> google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData |
| 80, // 74: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.create_time:type_name -> google.protobuf.Timestamp |
| 20, // 75: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.start_boundary:type_name -> google.cloud.contactcenterinsights.v1.AnnotationBoundary |
| 20, // 76: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.end_boundary:type_name -> google.cloud.contactcenterinsights.v1.AnnotationBoundary |
| 44, // 77: google.cloud.contactcenterinsights.v1.RuntimeAnnotation.answer_feedback:type_name -> google.cloud.contactcenterinsights.v1.AnswerFeedback |
| 7, // 78: google.cloud.contactcenterinsights.v1.AnswerFeedback.correctness_level:type_name -> google.cloud.contactcenterinsights.v1.AnswerFeedback.CorrectnessLevel |
| 73, // 79: google.cloud.contactcenterinsights.v1.ArticleSuggestionData.metadata:type_name -> google.cloud.contactcenterinsights.v1.ArticleSuggestionData.MetadataEntry |
| 74, // 80: google.cloud.contactcenterinsights.v1.FaqAnswerData.metadata:type_name -> google.cloud.contactcenterinsights.v1.FaqAnswerData.MetadataEntry |
| 75, // 81: google.cloud.contactcenterinsights.v1.SmartReplyData.metadata:type_name -> google.cloud.contactcenterinsights.v1.SmartReplyData.MetadataEntry |
| 76, // 82: google.cloud.contactcenterinsights.v1.SmartComposeSuggestionData.metadata:type_name -> google.cloud.contactcenterinsights.v1.SmartComposeSuggestionData.MetadataEntry |
| 77, // 83: google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData.text_sections:type_name -> google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData.TextSectionsEntry |
| 78, // 84: google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData.metadata:type_name -> google.cloud.contactcenterinsights.v1.ConversationSummarizationSuggestionData.MetadataEntry |
| 8, // 85: google.cloud.contactcenterinsights.v1.ConversationParticipant.role:type_name -> google.cloud.contactcenterinsights.v1.ConversationParticipant.Role |
| 80, // 86: google.cloud.contactcenterinsights.v1.View.create_time:type_name -> google.protobuf.Timestamp |
| 80, // 87: google.cloud.contactcenterinsights.v1.View.update_time:type_name -> google.protobuf.Timestamp |
| 79, // 88: google.cloud.contactcenterinsights.v1.AnnotatorSelector.summarization_config:type_name -> google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig |
| 81, // 89: google.cloud.contactcenterinsights.v1.Conversation.QualityMetadata.wait_duration:type_name -> google.protobuf.Duration |
| 59, // 90: google.cloud.contactcenterinsights.v1.Conversation.QualityMetadata.agent_info:type_name -> google.cloud.contactcenterinsights.v1.Conversation.QualityMetadata.AgentInfo |
| 60, // 91: google.cloud.contactcenterinsights.v1.Conversation.Transcript.transcript_segments:type_name -> google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment |
| 24, // 92: google.cloud.contactcenterinsights.v1.Conversation.DialogflowIntentsEntry.value:type_name -> google.cloud.contactcenterinsights.v1.DialogflowIntent |
| 80, // 93: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.message_time:type_name -> google.protobuf.Timestamp |
| 61, // 94: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.words:type_name -> google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.WordInfo |
| 51, // 95: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.segment_participant:type_name -> google.cloud.contactcenterinsights.v1.ConversationParticipant |
| 62, // 96: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.dialogflow_segment_metadata:type_name -> google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.DialogflowSegmentMetadata |
| 30, // 97: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.sentiment:type_name -> google.cloud.contactcenterinsights.v1.SentimentData |
| 81, // 98: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.WordInfo.start_offset:type_name -> google.protobuf.Duration |
| 81, // 99: google.cloud.contactcenterinsights.v1.Conversation.Transcript.TranscriptSegment.WordInfo.end_offset:type_name -> google.protobuf.Duration |
| 19, // 100: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.annotations:type_name -> google.cloud.contactcenterinsights.v1.CallAnnotation |
| 64, // 101: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.entities:type_name -> google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.EntitiesEntry |
| 17, // 102: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.sentiments:type_name -> google.cloud.contactcenterinsights.v1.ConversationLevelSentiment |
| 65, // 103: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.intents:type_name -> google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.IntentsEntry |
| 66, // 104: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.phrase_matchers:type_name -> google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.PhraseMatchersEntry |
| 16, // 105: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.issue_model_result:type_name -> google.cloud.contactcenterinsights.v1.IssueModelResult |
| 21, // 106: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.EntitiesEntry.value:type_name -> google.cloud.contactcenterinsights.v1.Entity |
| 22, // 107: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.IntentsEntry.value:type_name -> google.cloud.contactcenterinsights.v1.Intent |
| 23, // 108: google.cloud.contactcenterinsights.v1.AnalysisResult.CallAnalysisMetadata.PhraseMatchersEntry.value:type_name -> google.cloud.contactcenterinsights.v1.PhraseMatchData |
| 0, // 109: google.cloud.contactcenterinsights.v1.IssueModel.InputDataConfig.medium:type_name -> google.cloud.contactcenterinsights.v1.Conversation.Medium |
| 69, // 110: google.cloud.contactcenterinsights.v1.IssueModelLabelStats.IssueStatsEntry.value:type_name -> google.cloud.contactcenterinsights.v1.IssueModelLabelStats.IssueStats |
| 53, // 111: google.cloud.contactcenterinsights.v1.Settings.AnalysisConfig.annotator_selector:type_name -> google.cloud.contactcenterinsights.v1.AnnotatorSelector |
| 9, // 112: google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig.summarization_model:type_name -> google.cloud.contactcenterinsights.v1.AnnotatorSelector.SummarizationConfig.SummarizationModel |
| 113, // [113:113] is the sub-list for method output_type |
| 113, // [113:113] is the sub-list for method input_type |
| 113, // [113:113] is the sub-list for extension type_name |
| 113, // [113:113] is the sub-list for extension extendee |
| 0, // [0:113] is the sub-list for field type_name |
| } |
| |
| func init() { file_google_cloud_contactcenterinsights_v1_resources_proto_init() } |
| func file_google_cloud_contactcenterinsights_v1_resources_proto_init() { |
| if File_google_cloud_contactcenterinsights_v1_resources_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Analysis); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ConversationDataSource); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GcsSource); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DialogflowSource); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AnalysisResult); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueModelResult); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ConversationLevelSentiment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueAssignment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CallAnnotation); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AnnotationBoundary); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Entity); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Intent); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PhraseMatchData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DialogflowIntent); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*InterruptionData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SilenceData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*HoldData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*EntityMentionData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IntentMatchData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SentimentData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueMatchData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueModel); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Issue); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueModelLabelStats); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PhraseMatcher); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PhraseMatchRuleGroup); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PhraseMatchRule); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*PhraseMatchRuleConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ExactMatchConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Settings); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RedactionConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SpeechConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RuntimeAnnotation); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AnswerFeedback); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ArticleSuggestionData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*FaqAnswerData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SmartReplyData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SmartComposeSuggestionData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DialogflowInteractionData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ConversationSummarizationSuggestionData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ConversationParticipant); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*View); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AnnotatorSelector); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_CallMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_QualityMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_Transcript); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_QualityMetadata_AgentInfo); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_Transcript_TranscriptSegment); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_Transcript_TranscriptSegment_WordInfo); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Conversation_Transcript_TranscriptSegment_DialogflowSegmentMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AnalysisResult_CallAnalysisMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueModel_InputDataConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*IssueModelLabelStats_IssueStats); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Settings_AnalysisConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AnnotatorSelector_SummarizationConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[0].OneofWrappers = []interface{}{ |
| (*Conversation_CallMetadata_)(nil), |
| (*Conversation_ExpireTime)(nil), |
| (*Conversation_Ttl)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[2].OneofWrappers = []interface{}{ |
| (*ConversationDataSource_GcsSource)(nil), |
| (*ConversationDataSource_DialogflowSource)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[5].OneofWrappers = []interface{}{ |
| (*AnalysisResult_CallAnalysisMetadata_)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[9].OneofWrappers = []interface{}{ |
| (*CallAnnotation_InterruptionData)(nil), |
| (*CallAnnotation_SentimentData)(nil), |
| (*CallAnnotation_SilenceData)(nil), |
| (*CallAnnotation_HoldData)(nil), |
| (*CallAnnotation_EntityMentionData)(nil), |
| (*CallAnnotation_IntentMatchData)(nil), |
| (*CallAnnotation_PhraseMatchData)(nil), |
| (*CallAnnotation_IssueMatchData)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[10].OneofWrappers = []interface{}{ |
| (*AnnotationBoundary_WordIndex)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[28].OneofWrappers = []interface{}{ |
| (*PhraseMatchRuleConfig_ExactMatchConfig)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[33].OneofWrappers = []interface{}{ |
| (*RuntimeAnnotation_ArticleSuggestion)(nil), |
| (*RuntimeAnnotation_FaqAnswer)(nil), |
| (*RuntimeAnnotation_SmartReply)(nil), |
| (*RuntimeAnnotation_SmartComposeSuggestion)(nil), |
| (*RuntimeAnnotation_DialogflowInteraction)(nil), |
| (*RuntimeAnnotation_ConversationSummarizationSuggestion)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[41].OneofWrappers = []interface{}{ |
| (*ConversationParticipant_DialogflowParticipantName)(nil), |
| (*ConversationParticipant_UserId)(nil), |
| } |
| file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes[69].OneofWrappers = []interface{}{ |
| (*AnnotatorSelector_SummarizationConfig_ConversationProfile)(nil), |
| (*AnnotatorSelector_SummarizationConfig_SummarizationModel_)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_google_cloud_contactcenterinsights_v1_resources_proto_rawDesc, |
| NumEnums: 10, |
| NumMessages: 70, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_google_cloud_contactcenterinsights_v1_resources_proto_goTypes, |
| DependencyIndexes: file_google_cloud_contactcenterinsights_v1_resources_proto_depIdxs, |
| EnumInfos: file_google_cloud_contactcenterinsights_v1_resources_proto_enumTypes, |
| MessageInfos: file_google_cloud_contactcenterinsights_v1_resources_proto_msgTypes, |
| }.Build() |
| File_google_cloud_contactcenterinsights_v1_resources_proto = out.File |
| file_google_cloud_contactcenterinsights_v1_resources_proto_rawDesc = nil |
| file_google_cloud_contactcenterinsights_v1_resources_proto_goTypes = nil |
| file_google_cloud_contactcenterinsights_v1_resources_proto_depIdxs = nil |
| } |