From 8dfa07559bd2b13ce470747d99ea551b0ff81380 Mon Sep 17 00:00:00 2001 From: Michelle Bergquist <11967646+michellescripts@users.noreply.github.com> Date: Thu, 9 Feb 2023 12:23:29 -0700 Subject: [PATCH] capture custom role creation in prehog (#21123) * add e2e role creation events * add role name * reset proto * cleartext default role names * constant --- .../proto/go/usageevents/v1/usageevents.pb.go | 1098 +++++++++++++++-- .../teleport/usageevents/v1/usageevents.proto | 16 + constants.go | 2 + gen/proto/go/prehog/v1alpha/teleport.pb.go | 697 +++++++++-- gen/proto/js/prehog/v1alpha/teleport_pb.d.ts | 154 +++ gen/proto/js/prehog/v1alpha/teleport_pb.js | 1056 +++++++++++++++- lib/events/usageevents/usageevents.go | 5 + lib/services/usagereporter.go | 89 ++ lib/web/userevent.go | 50 +- proto/prehog/v1alpha/teleport.proto | 32 + web/packages/teleport/src/Roles/Roles.tsx | 19 +- .../ResourceEditor/ResourceEditor.jsx | 46 +- .../teleport/src/services/userEvent/types.ts | 4 + 13 files changed, 3006 insertions(+), 262 deletions(-) diff --git a/api/gen/proto/go/usageevents/v1/usageevents.pb.go b/api/gen/proto/go/usageevents/v1/usageevents.pb.go index 5fba2446490..36033888d48 100644 --- a/api/gen/proto/go/usageevents/v1/usageevents.pb.go +++ b/api/gen/proto/go/usageevents/v1/usageevents.pb.go @@ -1542,6 +1542,170 @@ func (m *UIDiscoverCompletedEvent) GetStatus() *DiscoverStepStatus { return nil } +// UICreateNewRoleClickEvent is an event that can be triggered during custom role creation +type UICreateNewRoleClickEvent struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UICreateNewRoleClickEvent) Reset() { *m = UICreateNewRoleClickEvent{} } +func (m *UICreateNewRoleClickEvent) String() string { return proto.CompactTextString(m) } +func (*UICreateNewRoleClickEvent) ProtoMessage() {} +func (*UICreateNewRoleClickEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_94cf2ca1c69fd564, []int{24} +} +func (m *UICreateNewRoleClickEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UICreateNewRoleClickEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UICreateNewRoleClickEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UICreateNewRoleClickEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_UICreateNewRoleClickEvent.Merge(m, src) +} +func (m *UICreateNewRoleClickEvent) XXX_Size() int { + return m.Size() +} +func (m *UICreateNewRoleClickEvent) XXX_DiscardUnknown() { + xxx_messageInfo_UICreateNewRoleClickEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_UICreateNewRoleClickEvent proto.InternalMessageInfo + +// UICreateNewRoleSaveClickEvent is an event that can be triggered during custom role creation +type UICreateNewRoleSaveClickEvent struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UICreateNewRoleSaveClickEvent) Reset() { *m = UICreateNewRoleSaveClickEvent{} } +func (m *UICreateNewRoleSaveClickEvent) String() string { return proto.CompactTextString(m) } +func (*UICreateNewRoleSaveClickEvent) ProtoMessage() {} +func (*UICreateNewRoleSaveClickEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_94cf2ca1c69fd564, []int{25} +} +func (m *UICreateNewRoleSaveClickEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UICreateNewRoleSaveClickEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UICreateNewRoleSaveClickEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UICreateNewRoleSaveClickEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_UICreateNewRoleSaveClickEvent.Merge(m, src) +} +func (m *UICreateNewRoleSaveClickEvent) XXX_Size() int { + return m.Size() +} +func (m *UICreateNewRoleSaveClickEvent) XXX_DiscardUnknown() { + xxx_messageInfo_UICreateNewRoleSaveClickEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_UICreateNewRoleSaveClickEvent proto.InternalMessageInfo + +// UICreateNewRoleCancelClickEvent is an event that can be triggered during custom role creation +type UICreateNewRoleCancelClickEvent struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UICreateNewRoleCancelClickEvent) Reset() { *m = UICreateNewRoleCancelClickEvent{} } +func (m *UICreateNewRoleCancelClickEvent) String() string { return proto.CompactTextString(m) } +func (*UICreateNewRoleCancelClickEvent) ProtoMessage() {} +func (*UICreateNewRoleCancelClickEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_94cf2ca1c69fd564, []int{26} +} +func (m *UICreateNewRoleCancelClickEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UICreateNewRoleCancelClickEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UICreateNewRoleCancelClickEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UICreateNewRoleCancelClickEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_UICreateNewRoleCancelClickEvent.Merge(m, src) +} +func (m *UICreateNewRoleCancelClickEvent) XXX_Size() int { + return m.Size() +} +func (m *UICreateNewRoleCancelClickEvent) XXX_DiscardUnknown() { + xxx_messageInfo_UICreateNewRoleCancelClickEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_UICreateNewRoleCancelClickEvent proto.InternalMessageInfo + +// UICreateNewRoleViewDocumentationClickEvent is an event that can be triggered during custom role creation +type UICreateNewRoleViewDocumentationClickEvent struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UICreateNewRoleViewDocumentationClickEvent) Reset() { + *m = UICreateNewRoleViewDocumentationClickEvent{} +} +func (m *UICreateNewRoleViewDocumentationClickEvent) String() string { + return proto.CompactTextString(m) +} +func (*UICreateNewRoleViewDocumentationClickEvent) ProtoMessage() {} +func (*UICreateNewRoleViewDocumentationClickEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_94cf2ca1c69fd564, []int{27} +} +func (m *UICreateNewRoleViewDocumentationClickEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UICreateNewRoleViewDocumentationClickEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UICreateNewRoleViewDocumentationClickEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UICreateNewRoleViewDocumentationClickEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_UICreateNewRoleViewDocumentationClickEvent.Merge(m, src) +} +func (m *UICreateNewRoleViewDocumentationClickEvent) XXX_Size() int { + return m.Size() +} +func (m *UICreateNewRoleViewDocumentationClickEvent) XXX_DiscardUnknown() { + xxx_messageInfo_UICreateNewRoleViewDocumentationClickEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_UICreateNewRoleViewDocumentationClickEvent proto.InternalMessageInfo + // UsageEventOneOf is a message that can accept a oneof of any supported // external usage event. type UsageEventOneOf struct { @@ -1568,6 +1732,10 @@ type UsageEventOneOf struct { // *UsageEventOneOf_UiDiscoverPrincipalsConfigureEvent // *UsageEventOneOf_UiDiscoverTestConnectionEvent // *UsageEventOneOf_UiDiscoverCompletedEvent + // *UsageEventOneOf_UiCreateNewRoleClick + // *UsageEventOneOf_UiCreateNewRoleSaveClick + // *UsageEventOneOf_UiCreateNewRoleCancelClick + // *UsageEventOneOf_UiCreateNewRoleViewDocumentationClick Event isUsageEventOneOf_Event `protobuf_oneof:"event"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1578,7 +1746,7 @@ func (m *UsageEventOneOf) Reset() { *m = UsageEventOneOf{} } func (m *UsageEventOneOf) String() string { return proto.CompactTextString(m) } func (*UsageEventOneOf) ProtoMessage() {} func (*UsageEventOneOf) Descriptor() ([]byte, []int) { - return fileDescriptor_94cf2ca1c69fd564, []int{24} + return fileDescriptor_94cf2ca1c69fd564, []int{28} } func (m *UsageEventOneOf) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1676,6 +1844,18 @@ type UsageEventOneOf_UiDiscoverTestConnectionEvent struct { type UsageEventOneOf_UiDiscoverCompletedEvent struct { UiDiscoverCompletedEvent *UIDiscoverCompletedEvent `protobuf:"bytes,22,opt,name=ui_discover_completed_event,json=uiDiscoverCompletedEvent,proto3,oneof" json:"ui_discover_completed_event,omitempty"` } +type UsageEventOneOf_UiCreateNewRoleClick struct { + UiCreateNewRoleClick *UICreateNewRoleClickEvent `protobuf:"bytes,23,opt,name=ui_create_new_role_click,json=uiCreateNewRoleClick,proto3,oneof" json:"ui_create_new_role_click,omitempty"` +} +type UsageEventOneOf_UiCreateNewRoleSaveClick struct { + UiCreateNewRoleSaveClick *UICreateNewRoleSaveClickEvent `protobuf:"bytes,24,opt,name=ui_create_new_role_save_click,json=uiCreateNewRoleSaveClick,proto3,oneof" json:"ui_create_new_role_save_click,omitempty"` +} +type UsageEventOneOf_UiCreateNewRoleCancelClick struct { + UiCreateNewRoleCancelClick *UICreateNewRoleCancelClickEvent `protobuf:"bytes,25,opt,name=ui_create_new_role_cancel_click,json=uiCreateNewRoleCancelClick,proto3,oneof" json:"ui_create_new_role_cancel_click,omitempty"` +} +type UsageEventOneOf_UiCreateNewRoleViewDocumentationClick struct { + UiCreateNewRoleViewDocumentationClick *UICreateNewRoleViewDocumentationClickEvent `protobuf:"bytes,26,opt,name=ui_create_new_role_view_documentation_click,json=uiCreateNewRoleViewDocumentationClick,proto3,oneof" json:"ui_create_new_role_view_documentation_click,omitempty"` +} func (*UsageEventOneOf_UiBannerClick) isUsageEventOneOf_Event() {} func (*UsageEventOneOf_UiOnboardCompleteGoToDashboardClick) isUsageEventOneOf_Event() {} @@ -1698,6 +1878,10 @@ func (*UsageEventOneOf_UiDiscoverDatabaseConfigureIamPolicyEvent) isUsageEventOn func (*UsageEventOneOf_UiDiscoverPrincipalsConfigureEvent) isUsageEventOneOf_Event() {} func (*UsageEventOneOf_UiDiscoverTestConnectionEvent) isUsageEventOneOf_Event() {} func (*UsageEventOneOf_UiDiscoverCompletedEvent) isUsageEventOneOf_Event() {} +func (*UsageEventOneOf_UiCreateNewRoleClick) isUsageEventOneOf_Event() {} +func (*UsageEventOneOf_UiCreateNewRoleSaveClick) isUsageEventOneOf_Event() {} +func (*UsageEventOneOf_UiCreateNewRoleCancelClick) isUsageEventOneOf_Event() {} +func (*UsageEventOneOf_UiCreateNewRoleViewDocumentationClick) isUsageEventOneOf_Event() {} func (m *UsageEventOneOf) GetEvent() isUsageEventOneOf_Event { if m != nil { @@ -1853,6 +2037,34 @@ func (m *UsageEventOneOf) GetUiDiscoverCompletedEvent() *UIDiscoverCompletedEven return nil } +func (m *UsageEventOneOf) GetUiCreateNewRoleClick() *UICreateNewRoleClickEvent { + if x, ok := m.GetEvent().(*UsageEventOneOf_UiCreateNewRoleClick); ok { + return x.UiCreateNewRoleClick + } + return nil +} + +func (m *UsageEventOneOf) GetUiCreateNewRoleSaveClick() *UICreateNewRoleSaveClickEvent { + if x, ok := m.GetEvent().(*UsageEventOneOf_UiCreateNewRoleSaveClick); ok { + return x.UiCreateNewRoleSaveClick + } + return nil +} + +func (m *UsageEventOneOf) GetUiCreateNewRoleCancelClick() *UICreateNewRoleCancelClickEvent { + if x, ok := m.GetEvent().(*UsageEventOneOf_UiCreateNewRoleCancelClick); ok { + return x.UiCreateNewRoleCancelClick + } + return nil +} + +func (m *UsageEventOneOf) GetUiCreateNewRoleViewDocumentationClick() *UICreateNewRoleViewDocumentationClickEvent { + if x, ok := m.GetEvent().(*UsageEventOneOf_UiCreateNewRoleViewDocumentationClick); ok { + return x.UiCreateNewRoleViewDocumentationClick + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*UsageEventOneOf) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -1877,6 +2089,10 @@ func (*UsageEventOneOf) XXX_OneofWrappers() []interface{} { (*UsageEventOneOf_UiDiscoverPrincipalsConfigureEvent)(nil), (*UsageEventOneOf_UiDiscoverTestConnectionEvent)(nil), (*UsageEventOneOf_UiDiscoverCompletedEvent)(nil), + (*UsageEventOneOf_UiCreateNewRoleClick)(nil), + (*UsageEventOneOf_UiCreateNewRoleSaveClick)(nil), + (*UsageEventOneOf_UiCreateNewRoleCancelClick)(nil), + (*UsageEventOneOf_UiCreateNewRoleViewDocumentationClick)(nil), } } @@ -1907,6 +2123,10 @@ func init() { proto.RegisterType((*UIDiscoverPrincipalsConfigureEvent)(nil), "teleport.usageevents.v1.UIDiscoverPrincipalsConfigureEvent") proto.RegisterType((*UIDiscoverTestConnectionEvent)(nil), "teleport.usageevents.v1.UIDiscoverTestConnectionEvent") proto.RegisterType((*UIDiscoverCompletedEvent)(nil), "teleport.usageevents.v1.UIDiscoverCompletedEvent") + proto.RegisterType((*UICreateNewRoleClickEvent)(nil), "teleport.usageevents.v1.UICreateNewRoleClickEvent") + proto.RegisterType((*UICreateNewRoleSaveClickEvent)(nil), "teleport.usageevents.v1.UICreateNewRoleSaveClickEvent") + proto.RegisterType((*UICreateNewRoleCancelClickEvent)(nil), "teleport.usageevents.v1.UICreateNewRoleCancelClickEvent") + proto.RegisterType((*UICreateNewRoleViewDocumentationClickEvent)(nil), "teleport.usageevents.v1.UICreateNewRoleViewDocumentationClickEvent") proto.RegisterType((*UsageEventOneOf)(nil), "teleport.usageevents.v1.UsageEventOneOf") } @@ -1915,119 +2135,129 @@ func init() { } var fileDescriptor_94cf2ca1c69fd564 = []byte{ - // 1784 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x99, 0xcf, 0x6f, 0xe4, 0x48, - 0x15, 0xc7, 0xdb, 0x9d, 0x99, 0x4c, 0xe6, 0xcd, 0x4e, 0xe2, 0x2d, 0x76, 0x67, 0x7a, 0x98, 0x24, - 0x93, 0xe9, 0xf9, 0x95, 0x64, 0x56, 0xe9, 0xcd, 0xee, 0x02, 0x0b, 0xbb, 0x30, 0xea, 0xb8, 0x9d, - 0xb8, 0x77, 0x92, 0x74, 0x6f, 0xd9, 0xbd, 0x2b, 0xb8, 0x94, 0x1c, 0xbb, 0xd2, 0x63, 0x8d, 0xdb, - 0x6e, 0xd9, 0xe5, 0x2c, 0x11, 0x42, 0x08, 0x84, 0x10, 0xd2, 0x48, 0x08, 0x6e, 0x48, 0x48, 0x5c, - 0xe0, 0x80, 0x10, 0x77, 0xce, 0xdc, 0x38, 0xf2, 0x27, 0xa0, 0xf9, 0x0f, 0x38, 0x70, 0x00, 0x81, - 0x40, 0x2e, 0xff, 0xec, 0x9f, 0x36, 0x23, 0x4e, 0x99, 0x5b, 0xb7, 0xeb, 0xd5, 0x7b, 0x9f, 0xf7, - 0xaa, 0x6c, 0xd7, 0xf7, 0x19, 0xb6, 0x18, 0xb5, 0xe9, 0xd0, 0xf5, 0x58, 0x23, 0xf0, 0xf5, 0x3e, - 0xa5, 0x67, 0xd4, 0x61, 0x7e, 0xe3, 0x6c, 0x37, 0xff, 0x77, 0x67, 0xe8, 0xb9, 0xcc, 0x45, 0x37, - 0x13, 0xd3, 0x9d, 0xfc, 0xd8, 0xd9, 0x6e, 0x7d, 0x1b, 0x50, 0xaf, 0xbd, 0xa7, 0x3b, 0x0e, 0xf5, - 0x24, 0xdb, 0x32, 0x9e, 0xcb, 0xe1, 0x08, 0x7a, 0x0b, 0x2e, 0xeb, 0x36, 0xf5, 0x58, 0x4d, 0xd8, - 0x10, 0x36, 0xaf, 0xe2, 0xe8, 0x4f, 0x7d, 0x1f, 0x36, 0x7b, 0xed, 0x8e, 0x73, 0xe2, 0xea, 0x9e, - 0x29, 0xb9, 0x83, 0xa1, 0x4d, 0x19, 0x3d, 0x70, 0x35, 0xb7, 0xa5, 0xfb, 0xcf, 0xa2, 0x8b, 0x99, - 0x87, 0x2f, 0xc3, 0x52, 0xe0, 0x53, 0xcf, 0xd1, 0x07, 0x34, 0x76, 0x92, 0xfe, 0xaf, 0x3f, 0x80, - 0x7b, 0xa9, 0x9f, 0xa6, 0x69, 0xee, 0x5b, 0x9e, 0xcf, 0x30, 0xf5, 0xdd, 0xc0, 0x33, 0x68, 0xe6, - 0xa2, 0xbe, 0x9d, 0x0b, 0x37, 0x6e, 0x76, 0xa8, 0xb3, 0x3c, 0x70, 0xfd, 0x09, 0xdc, 0x4d, 0x6d, - 0x55, 0xca, 0x24, 0x8f, 0x9a, 0xd4, 0x61, 0x96, 0x6e, 0xab, 0xc1, 0xc9, 0xc0, 0x62, 0xc5, 0x4c, - 0xdf, 0x87, 0x07, 0xa9, 0x03, 0x4c, 0xfb, 0x96, 0x1f, 0xfa, 0x7f, 0xa6, 0xdb, 0x36, 0x75, 0xfa, - 0xb4, 0xa4, 0x13, 0x74, 0x0b, 0x96, 0x06, 0xa7, 0x3a, 0x61, 0xe7, 0x43, 0x5a, 0xab, 0xf2, 0xb1, - 0x2b, 0x83, 0x53, 0x5d, 0x3b, 0x1f, 0x52, 0xb4, 0x06, 0x60, 0xbb, 0x7d, 0xcb, 0x21, 0xa7, 0xb6, - 0xfb, 0x45, 0x6d, 0x81, 0x0f, 0x5e, 0xe5, 0x57, 0xf6, 0x6d, 0xf7, 0x8b, 0x88, 0x1f, 0x53, 0xc3, - 0x3d, 0xa3, 0xde, 0xb9, 0xe4, 0x9a, 0xd4, 0x97, 0x5c, 0x87, 0x59, 0x4e, 0x40, 0x4b, 0xd6, 0xf4, - 0x23, 0x58, 0x9b, 0x70, 0x30, 0x3c, 0x2f, 0x39, 0xf9, 0x63, 0x58, 0x1f, 0x9b, 0xdc, 0xf5, 0x2c, - 0x87, 0x95, 0x9c, 0x5d, 0x07, 0xb1, 0x65, 0xf9, 0x7c, 0xf2, 0x11, 0x65, 0xba, 0xa9, 0x33, 0x1d, - 0x2d, 0x43, 0xd5, 0x32, 0x63, 0xcb, 0xaa, 0x65, 0xd6, 0x75, 0xa8, 0x25, 0x36, 0xc9, 0x12, 0xa6, - 0xb6, 0x32, 0x2c, 0x79, 0xf1, 0x35, 0x3e, 0x63, 0xf9, 0xbd, 0xad, 0x9d, 0x19, 0xdb, 0x75, 0x67, - 0xdc, 0x09, 0x4e, 0xa7, 0xd6, 0x9f, 0x03, 0x4a, 0x46, 0x55, 0x46, 0x87, 0x2a, 0xd3, 0x59, 0xe0, - 0xa3, 0x27, 0xb0, 0xe8, 0xf3, 0x5f, 0xb1, 0xeb, 0x47, 0x85, 0xae, 0xa3, 0x89, 0x38, 0x9e, 0x16, - 0xde, 0x0a, 0xd4, 0xf3, 0x5c, 0x2f, 0x5e, 0xd0, 0xe8, 0x4f, 0xfd, 0xb7, 0x02, 0xdc, 0xe8, 0xb5, - 0x73, 0x53, 0x3c, 0x46, 0xcd, 0xa8, 0x54, 0x32, 0x2c, 0x0d, 0xe2, 0xd4, 0x78, 0xcc, 0x6b, 0x25, - 0xd2, 0x49, 0x6a, 0x81, 0xd3, 0xa9, 0x48, 0x4a, 0xc1, 0xab, 0xdc, 0xc9, 0xe3, 0x12, 0xe0, 0x49, - 0xd6, 0x09, 0x7c, 0xfd, 0xdf, 0x02, 0x6c, 0x64, 0x98, 0x49, 0xd1, 0x54, 0x6a, 0x53, 0x83, 0x59, - 0xae, 0xf3, 0x7f, 0x05, 0x3e, 0xca, 0x2d, 0x63, 0x84, 0xbc, 0x5b, 0x7a, 0x19, 0x33, 0x77, 0x89, - 0x8b, 0x5c, 0xfe, 0x0b, 0xaf, 0x9e, 0xff, 0x3f, 0x04, 0x58, 0xcd, 0xf2, 0x6f, 0xd1, 0xa1, 0xed, - 0x9e, 0xab, 0xd4, 0x3b, 0xb3, 0x0c, 0x7a, 0xe1, 0x73, 0xff, 0x97, 0x00, 0x77, 0x72, 0xb9, 0xeb, - 0x4c, 0x3f, 0xd1, 0x7d, 0x9a, 0x3c, 0xdb, 0x2e, 0x7c, 0xfa, 0x3f, 0xac, 0xc2, 0xfd, 0xc9, 0xf4, - 0x25, 0xd7, 0x39, 0xb5, 0xfa, 0x81, 0x47, 0x8f, 0xb4, 0x43, 0xf5, 0xc2, 0xd7, 0xe0, 0x67, 0x55, - 0xd8, 0xcd, 0x6f, 0x7f, 0xff, 0x39, 0x73, 0x87, 0x4d, 0x83, 0x59, 0x67, 0xb4, 0x65, 0x79, 0xd4, - 0x60, 0xae, 0x77, 0xae, 0xb9, 0xae, 0xed, 0xb7, 0x1d, 0x9f, 0xe9, 0xb6, 0x7d, 0xe1, 0x0b, 0xf2, - 0xa2, 0x0a, 0x3b, 0x45, 0x05, 0x49, 0xb7, 0xc8, 0x85, 0xaf, 0xc6, 0x1f, 0xaa, 0xf0, 0x30, 0xab, - 0x46, 0x33, 0x60, 0x6e, 0xf2, 0x9b, 0x9a, 0x49, 0x6c, 0xff, 0xa2, 0x57, 0x01, 0x3d, 0x82, 0x95, - 0xc4, 0xa1, 0x4f, 0x0c, 0x37, 0x70, 0x58, 0xed, 0xd2, 0x86, 0xb0, 0xb9, 0x80, 0x97, 0xd3, 0xcb, - 0x52, 0x78, 0xb5, 0xfe, 0x93, 0x2a, 0x6c, 0xcd, 0x79, 0xa2, 0xb4, 0x9b, 0x47, 0x5d, 0xd7, 0xb6, - 0x8c, 0xf3, 0x0b, 0xbf, 0x6f, 0xfe, 0x23, 0x40, 0x3d, 0x2b, 0x44, 0x78, 0x54, 0x34, 0xac, 0xa1, - 0x6e, 0xfb, 0xaf, 0xcf, 0x9d, 0xf3, 0x4f, 0x21, 0x3c, 0x6e, 0x27, 0x06, 0x1a, 0xf5, 0x99, 0xe4, - 0x3a, 0xce, 0x6b, 0x72, 0xa8, 0xfa, 0xbb, 0x00, 0xb5, 0x2c, 0xf9, 0x44, 0x08, 0x9a, 0x17, 0x3e, - 0xef, 0xbf, 0xdd, 0x84, 0x95, 0x5e, 0x68, 0xcd, 0x33, 0xed, 0x38, 0xb4, 0x73, 0x8a, 0x7a, 0xb0, - 0x12, 0x58, 0xe4, 0x84, 0xeb, 0x67, 0x62, 0x84, 0x7a, 0x29, 0xce, 0x7a, 0x76, 0x84, 0x49, 0xb9, - 0xad, 0x54, 0xf0, 0xf5, 0xc0, 0xca, 0x5d, 0x45, 0xbf, 0x12, 0x60, 0x2b, 0xb0, 0x88, 0x1b, 0xe9, - 0x51, 0x62, 0xc4, 0x35, 0x26, 0x7d, 0x97, 0x30, 0x97, 0x98, 0x89, 0xde, 0x8e, 0x23, 0x46, 0x39, - 0x35, 0xe7, 0x44, 0x2c, 0x27, 0xda, 0x95, 0x0a, 0xbe, 0x17, 0x58, 0x85, 0xb6, 0xe8, 0x85, 0x00, - 0xf7, 0x72, 0x74, 0xba, 0x69, 0x92, 0xd3, 0x50, 0x9c, 0x93, 0xa4, 0xde, 0x31, 0xd7, 0x25, 0xce, - 0xf5, 0x71, 0x31, 0xd7, 0xec, 0x26, 0x80, 0x52, 0xc1, 0xeb, 0x29, 0xd2, 0x54, 0xb3, 0xf1, 0x5a, - 0x4d, 0xa1, 0xb1, 0x75, 0x96, 0xae, 0xce, 0xe5, 0xb2, 0xb5, 0x2a, 0xe8, 0x38, 0x8c, 0xd4, 0x6a, - 0xb6, 0x2d, 0xfa, 0xb1, 0x00, 0x1b, 0x39, 0x3a, 0x9f, 0x32, 0x62, 0xa4, 0xcd, 0x09, 0xe2, 0xf3, - 0xc6, 0x42, 0x6d, 0x91, 0x43, 0x7d, 0xa3, 0x18, 0x6a, 0x56, 0x6b, 0x43, 0xa9, 0xe0, 0xd5, 0x94, - 0x66, 0x8a, 0x11, 0xfa, 0xb9, 0x00, 0xf7, 0x73, 0x18, 0x5e, 0xac, 0x02, 0x88, 0x91, 0xb4, 0x38, - 0x12, 0x94, 0x2b, 0x1c, 0xe5, 0x5b, 0xc5, 0x28, 0xf3, 0x9a, 0x24, 0x4a, 0x05, 0x6f, 0xa4, 0x38, - 0x33, 0x0c, 0x93, 0xca, 0x78, 0x71, 0xdb, 0x81, 0x18, 0xae, 0xc9, 0x5f, 0xc0, 0x51, 0xdb, 0x23, - 0x5e, 0xae, 0xa5, 0xc2, 0xca, 0x14, 0x34, 0x4d, 0xa2, 0xca, 0xcc, 0x36, 0x42, 0xdf, 0x85, 0xd5, - 0x69, 0x14, 0xc3, 0xf3, 0x98, 0xe0, 0x2a, 0x27, 0xf8, 0x6a, 0x79, 0x82, 0x7c, 0xd7, 0x45, 0xa9, - 0xe0, 0xda, 0x44, 0xf4, 0xd8, 0x00, 0x7d, 0x0f, 0xd6, 0x26, 0x23, 0x0f, 0x3d, 0xcb, 0x61, 0x71, - 0x68, 0xe0, 0xa1, 0xbf, 0x56, 0x36, 0xf4, 0x58, 0xcf, 0x46, 0xa9, 0xe0, 0x5b, 0x63, 0xb1, 0x33, - 0x0b, 0x64, 0xc3, 0xad, 0xc0, 0x22, 0x66, 0xfc, 0xb4, 0x23, 0x7e, 0xd4, 0xc1, 0x20, 0xdc, 0x79, - 0xed, 0x1a, 0x0f, 0xdc, 0x98, 0x13, 0x78, 0x5a, 0xe7, 0x43, 0xa9, 0xe0, 0x1b, 0x81, 0x35, 0xb5, - 0x27, 0xf2, 0x22, 0xda, 0x7e, 0x69, 0xb8, 0xf4, 0xd6, 0xf4, 0x93, 0x56, 0x44, 0x1c, 0xf9, 0x0d, - 0x1e, 0xf9, 0xeb, 0x25, 0x22, 0x4f, 0x6f, 0x66, 0x44, 0x3b, 0xaf, 0xa0, 0xe1, 0xf1, 0x03, 0xbe, - 0xf1, 0x52, 0x18, 0x93, 0xb7, 0x05, 0x88, 0x1f, 0xf5, 0x05, 0x62, 0x90, 0xeb, 0x1c, 0xe4, 0x2b, - 0x25, 0x40, 0x26, 0xbb, 0x0a, 0xd1, 0x9e, 0x9b, 0xd3, 0x75, 0xf8, 0x69, 0xf4, 0x00, 0xcd, 0x08, - 0xe2, 0xb3, 0x64, 0x76, 0x5f, 0x46, 0x10, 0xcb, 0x1c, 0xe2, 0xc3, 0x32, 0x10, 0xd3, 0xe4, 0xbd, - 0x52, 0xc1, 0x77, 0x72, 0x1c, 0x53, 0x3b, 0x00, 0xbf, 0x8c, 0x9e, 0x9e, 0x93, 0x28, 0x46, 0x72, - 0x98, 0x23, 0x03, 0x66, 0xfb, 0x31, 0xd0, 0x0a, 0x07, 0xfa, 0xe6, 0xff, 0x00, 0x34, 0x29, 0xb8, - 0x95, 0x0a, 0xbe, 0x3f, 0x49, 0x95, 0xd9, 0x31, 0x3b, 0xd6, 0x1c, 0x7f, 0x12, 0xe0, 0xc3, 0xd1, - 0x75, 0xe2, 0x72, 0x8d, 0xe8, 0x5c, 0xaf, 0x11, 0x33, 0x11, 0x6c, 0x84, 0x85, 0x12, 0x96, 0x58, - 0x91, 0x86, 0x8d, 0x49, 0x45, 0x4e, 0xfa, 0x49, 0xa9, 0xf5, 0x2b, 0x25, 0x8b, 0x95, 0x0a, 0xde, - 0xcd, 0x2f, 0x6a, 0x39, 0x2d, 0xfd, 0x47, 0x01, 0x3e, 0x28, 0x95, 0x43, 0x56, 0xee, 0x88, 0xff, - 0x4d, 0xce, 0x7f, 0xf0, 0xca, 0xfc, 0xa3, 0x67, 0x71, 0xa5, 0x82, 0x77, 0x8a, 0xe0, 0xc7, 0x4e, - 0xef, 0xbf, 0x16, 0xe0, 0x71, 0x9e, 0x5c, 0x0f, 0xc2, 0x93, 0x47, 0xaa, 0x0f, 0x49, 0xa6, 0x99, - 0x22, 0x60, 0xc4, 0x81, 0x9f, 0x94, 0x00, 0x9e, 0x27, 0x34, 0x95, 0x0a, 0x7e, 0x98, 0x81, 0xce, - 0x95, 0xa4, 0xbf, 0x13, 0xa0, 0x51, 0xb0, 0x73, 0x2d, 0x7d, 0x40, 0x86, 0x5c, 0x93, 0xc5, 0x90, - 0x5f, 0xe2, 0x90, 0x7b, 0xaf, 0xb2, 0x7f, 0x47, 0xe5, 0x9d, 0x52, 0xc1, 0x5b, 0x73, 0x36, 0x71, - 0x5b, 0x1f, 0xe4, 0xb5, 0xe0, 0x2f, 0x04, 0x78, 0x98, 0x47, 0x1d, 0xa6, 0x92, 0x69, 0x62, 0xdd, - 0xdf, 0xe2, 0x84, 0x1f, 0x95, 0x20, 0x9c, 0xa5, 0xbb, 0x94, 0x0a, 0xae, 0x67, 0x68, 0x33, 0xd5, - 0xd9, 0x8f, 0x04, 0xb8, 0x9b, 0x67, 0x62, 0xd4, 0x67, 0x21, 0x8d, 0x33, 0xf2, 0x3c, 0x7e, 0xbb, - 0xf0, 0xed, 0x37, 0x47, 0x04, 0x29, 0x15, 0xbc, 0x96, 0x91, 0x4c, 0x53, 0x49, 0x1e, 0xdc, 0xce, - 0x33, 0x24, 0xe7, 0xdc, 0xe4, 0x3d, 0x74, 0xa3, 0xe0, 0xe4, 0x3f, 0x4b, 0x85, 0x44, 0xaf, 0xdd, - 0xe9, 0x63, 0x7b, 0x57, 0xe0, 0x32, 0xf7, 0xf0, 0xc9, 0xa5, 0xa5, 0xaa, 0xb8, 0x10, 0x3e, 0xa9, - 0xd3, 0x63, 0x51, 0x9f, 0xb2, 0xf4, 0x4d, 0xc8, 0x5f, 0xc1, 0xdb, 0xbf, 0x5f, 0xcc, 0x3e, 0x6e, - 0x24, 0xfb, 0x0f, 0xdd, 0x85, 0xb5, 0x56, 0x5b, 0x95, 0x3a, 0x9f, 0xc9, 0x98, 0x60, 0x59, 0xed, - 0xf4, 0xb0, 0x24, 0x93, 0xde, 0xb1, 0xda, 0x95, 0xa5, 0xf6, 0x7e, 0x5b, 0x6e, 0x89, 0x15, 0xb4, - 0x0a, 0xb5, 0x49, 0x13, 0x55, 0xc6, 0x9f, 0xc9, 0x58, 0x14, 0xd0, 0x06, 0xac, 0x4e, 0x8e, 0x3e, - 0xed, 0xed, 0xc9, 0xf8, 0x58, 0xd6, 0x64, 0x55, 0xac, 0xa2, 0xf7, 0xa1, 0x31, 0x69, 0xd1, 0x6a, - 0x6a, 0xcd, 0xbd, 0xa6, 0x2a, 0x93, 0x6e, 0x47, 0xd5, 0x0e, 0xb0, 0xac, 0x12, 0x55, 0x3e, 0xdc, - 0x27, 0x4a, 0x47, 0xd5, 0xe4, 0x96, 0xb8, 0x80, 0xde, 0x85, 0x77, 0xe6, 0x4c, 0x3a, 0xfa, 0xb6, - 0xfa, 0xe9, 0xe1, 0xc8, 0x8c, 0x4b, 0xe8, 0x3d, 0xd8, 0x99, 0x37, 0xa3, 0x73, 0x7c, 0xd0, 0x69, - 0xed, 0x8d, 0xcc, 0xb9, 0x8c, 0x1e, 0xc3, 0xa3, 0x32, 0x68, 0xb8, 0xa5, 0x8a, 0x8b, 0x68, 0x13, - 0xee, 0x17, 0x22, 0x85, 0x96, 0x57, 0xd0, 0x43, 0xa8, 0x4f, 0x5a, 0x36, 0xbb, 0xdd, 0xc3, 0xb6, - 0xd4, 0xd4, 0xda, 0x9d, 0x63, 0xa2, 0x68, 0x5a, 0x57, 0x5c, 0x42, 0x0f, 0xe0, 0xee, 0x7c, 0x3b, - 0x4d, 0xea, 0x8a, 0x57, 0xa7, 0x9b, 0x7d, 0xde, 0x3e, 0x6e, 0x75, 0x3e, 0x57, 0x49, 0x4b, 0x56, - 0x9f, 0x6a, 0x9d, 0xae, 0x08, 0xe8, 0x1d, 0xd8, 0x9c, 0xc3, 0xa7, 0x7e, 0x7a, 0x18, 0xad, 0x19, - 0x67, 0xbc, 0x56, 0x50, 0xe0, 0x2c, 0x75, 0xb9, 0xa5, 0x2a, 0xed, 0x7d, 0x4d, 0x7c, 0x03, 0x7d, - 0x00, 0xef, 0x96, 0xf2, 0x9f, 0x2f, 0xf1, 0xf5, 0x82, 0x38, 0x58, 0x6e, 0xb5, 0x47, 0x97, 0x7e, - 0xb9, 0xec, 0xa2, 0x1c, 0x48, 0x5d, 0x71, 0xa5, 0xd4, 0xa2, 0x84, 0x96, 0x62, 0xe9, 0xf2, 0x84, - 0xd6, 0x6f, 0x6e, 0xff, 0x46, 0x80, 0xe5, 0xd1, 0xaf, 0x68, 0xe8, 0x0e, 0xdc, 0x4e, 0x1d, 0xa8, - 0x5a, 0x53, 0xeb, 0xa9, 0x63, 0x37, 0xca, 0x6d, 0xb8, 0x39, 0x6e, 0xa0, 0xf6, 0x24, 0x49, 0x56, - 0x55, 0x51, 0x98, 0x3a, 0xf8, 0xb4, 0xdd, 0xed, 0xca, 0x2d, 0xb1, 0x8a, 0x6e, 0xc1, 0xdb, 0xe3, - 0x83, 0x32, 0xc6, 0x1d, 0x2c, 0x2e, 0x4c, 0x9b, 0xd7, 0xdc, 0xeb, 0x60, 0xbe, 0xe7, 0xf7, 0x3a, - 0x7f, 0x7e, 0xb9, 0x2e, 0xfc, 0xe5, 0xe5, 0xba, 0xf0, 0xd7, 0x97, 0xeb, 0xc2, 0x77, 0x9a, 0x7d, - 0x8b, 0x3d, 0x0b, 0x4e, 0x76, 0x0c, 0x77, 0xd0, 0xe8, 0x7b, 0xfa, 0x99, 0xc5, 0xf4, 0xf0, 0xf1, - 0xa4, 0xdb, 0x8d, 0xf4, 0xe3, 0xba, 0x3e, 0xb4, 0x1a, 0x7d, 0xea, 0x34, 0xf8, 0x97, 0xf4, 0x46, - 0xdf, 0x1d, 0xfb, 0xda, 0x7e, 0xb2, 0xc8, 0x07, 0xde, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x2e, 0xf2, 0x3e, 0x8f, 0x1f, 0x00, 0x00, + // 1949 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x9a, 0xcd, 0x6f, 0xe4, 0x48, + 0xf9, 0xc7, 0xed, 0xce, 0x4c, 0x26, 0x53, 0xb3, 0x93, 0xf4, 0xd6, 0x6f, 0x76, 0xa6, 0x33, 0x79, + 0xef, 0x79, 0x4b, 0x32, 0xa3, 0xf4, 0x66, 0x76, 0x7f, 0xb0, 0xb0, 0x0b, 0xa3, 0x8e, 0xdb, 0x89, + 0x7b, 0x27, 0x49, 0xf7, 0x96, 0xbb, 0x67, 0x05, 0x97, 0x52, 0xc5, 0xae, 0xf4, 0x58, 0xe3, 0xb6, + 0x5b, 0x76, 0xb9, 0x43, 0x0b, 0xa1, 0x15, 0x08, 0x21, 0xa4, 0x91, 0x10, 0xdc, 0x90, 0x90, 0x90, + 0x10, 0x1c, 0x10, 0xe2, 0xce, 0x99, 0x1b, 0x47, 0xfe, 0x04, 0x34, 0xff, 0x03, 0x07, 0x10, 0x68, + 0x91, 0xcb, 0xaf, 0xfd, 0x6a, 0x33, 0xe2, 0x94, 0xbd, 0xc5, 0xae, 0xa7, 0x9e, 0xe7, 0xf3, 0x3c, + 0x55, 0xb6, 0xeb, 0xfb, 0xa4, 0xc1, 0x0e, 0xa3, 0x26, 0xed, 0xd9, 0x0e, 0xab, 0x78, 0x2e, 0xe9, + 0x50, 0xda, 0xa7, 0x16, 0x73, 0x2b, 0xfd, 0xfd, 0xf4, 0xe5, 0x5e, 0xcf, 0xb1, 0x99, 0x0d, 0xef, + 0x44, 0xa6, 0x7b, 0xe9, 0xb1, 0xfe, 0x7e, 0x79, 0x17, 0xc0, 0x76, 0xfd, 0x80, 0x58, 0x16, 0x75, + 0x24, 0xd3, 0xd0, 0x5e, 0xc9, 0xfe, 0x08, 0xbc, 0x05, 0xae, 0x12, 0x93, 0x3a, 0xac, 0x24, 0x6e, + 0x8a, 0xdb, 0xd7, 0x51, 0x70, 0x51, 0x3e, 0x04, 0xdb, 0xed, 0x7a, 0xc3, 0x3a, 0xb3, 0x89, 0xa3, + 0x4b, 0x76, 0xb7, 0x67, 0x52, 0x46, 0x8f, 0xec, 0x96, 0x5d, 0x23, 0xee, 0xcb, 0xe0, 0x66, 0xe2, + 0xe1, 0x2e, 0x58, 0xf0, 0x5c, 0xea, 0x58, 0xa4, 0x4b, 0x43, 0x27, 0xf1, 0x75, 0xf9, 0x01, 0xb8, + 0x17, 0xfb, 0xa9, 0xea, 0xfa, 0xa1, 0xe1, 0xb8, 0x0c, 0x51, 0xd7, 0xf6, 0x1c, 0x8d, 0x26, 0x2e, + 0xca, 0xbb, 0xa9, 0x70, 0xa3, 0x66, 0xc7, 0x84, 0xa5, 0x81, 0xcb, 0xcf, 0xc0, 0x56, 0x6c, 0xab, + 0x52, 0x26, 0x39, 0x54, 0xa7, 0x16, 0x33, 0x88, 0xa9, 0x7a, 0x67, 0x5d, 0x83, 0x65, 0x33, 0xfd, + 0x00, 0x3c, 0x88, 0x1d, 0x20, 0xda, 0x31, 0x5c, 0xdf, 0xff, 0x4b, 0x62, 0x9a, 0xd4, 0xea, 0xd0, + 0x9c, 0x4e, 0xe0, 0x32, 0x58, 0xe8, 0x9e, 0x13, 0xcc, 0x06, 0x3d, 0x5a, 0x2a, 0xf0, 0xb1, 0x6b, + 0xdd, 0x73, 0xd2, 0x1a, 0xf4, 0x28, 0x5c, 0x03, 0xc0, 0xb4, 0x3b, 0x86, 0x85, 0xcf, 0x4d, 0xfb, + 0xa2, 0x34, 0xc7, 0x07, 0xaf, 0xf3, 0x3b, 0x87, 0xa6, 0x7d, 0x11, 0xf0, 0x23, 0xaa, 0xd9, 0x7d, + 0xea, 0x0c, 0x24, 0x5b, 0xa7, 0xae, 0x64, 0x5b, 0xcc, 0xb0, 0x3c, 0x9a, 0xb3, 0xa6, 0x1f, 0x83, + 0xb5, 0x31, 0x07, 0xbd, 0x41, 0xce, 0xc9, 0x9f, 0x80, 0xf5, 0x91, 0xc9, 0x4d, 0xc7, 0xb0, 0x58, + 0xce, 0xd9, 0x65, 0x50, 0xac, 0x19, 0x2e, 0x9f, 0x7c, 0x42, 0x19, 0xd1, 0x09, 0x23, 0x70, 0x11, + 0x14, 0x0c, 0x3d, 0xb4, 0x2c, 0x18, 0x7a, 0x99, 0x80, 0x52, 0x64, 0x13, 0x2d, 0x61, 0x6c, 0x2b, + 0x83, 0x05, 0x27, 0xbc, 0xc7, 0x67, 0x2c, 0x3e, 0xdd, 0xd9, 0x9b, 0xb2, 0x5d, 0xf7, 0x46, 0x9d, + 0xa0, 0x78, 0x6a, 0xf9, 0x15, 0x80, 0xd1, 0xa8, 0xca, 0x68, 0x4f, 0x65, 0x84, 0x79, 0x2e, 0x7c, + 0x06, 0xe6, 0x5d, 0xfe, 0x57, 0xe8, 0xfa, 0x51, 0xa6, 0xeb, 0x60, 0x22, 0x0a, 0xa7, 0xf9, 0x8f, + 0x02, 0x75, 0x1c, 0xdb, 0x09, 0x17, 0x34, 0xb8, 0x28, 0xff, 0x4e, 0x04, 0xb7, 0xdb, 0xf5, 0xd4, + 0x14, 0x87, 0x51, 0x3d, 0x28, 0x95, 0x0c, 0x16, 0xba, 0x61, 0x6a, 0x3c, 0xe6, 0x8d, 0x1c, 0xe9, + 0x44, 0xb5, 0x40, 0xf1, 0x54, 0x28, 0xc5, 0xe0, 0x05, 0xee, 0xe4, 0x71, 0x0e, 0xf0, 0x28, 0xeb, + 0x08, 0xbe, 0xfc, 0x6f, 0x11, 0x6c, 0x26, 0x98, 0x51, 0xd1, 0x54, 0x6a, 0x52, 0x8d, 0x19, 0xb6, + 0xf5, 0x3f, 0x05, 0x3e, 0x49, 0x2d, 0x63, 0x80, 0xbc, 0x9f, 0x7b, 0x19, 0x13, 0x77, 0x91, 0x8b, + 0x54, 0xfe, 0x73, 0x6f, 0x9f, 0xff, 0x3f, 0x44, 0xb0, 0x9a, 0xe4, 0x5f, 0xa3, 0x3d, 0xd3, 0x1e, + 0xa8, 0xd4, 0xe9, 0x1b, 0x1a, 0xbd, 0xf4, 0xb9, 0xff, 0x4b, 0x04, 0x1b, 0xa9, 0xdc, 0x09, 0x23, + 0x67, 0xc4, 0xa5, 0xd1, 0xbb, 0xed, 0xd2, 0xa7, 0xff, 0xc3, 0x02, 0xb8, 0x3f, 0x9e, 0xbe, 0x64, + 0x5b, 0xe7, 0x46, 0xc7, 0x73, 0xe8, 0x49, 0xeb, 0x58, 0xbd, 0xf4, 0x35, 0xf8, 0x59, 0x01, 0xec, + 0xa7, 0xb7, 0xbf, 0xfb, 0x8a, 0xd9, 0xbd, 0xaa, 0xc6, 0x8c, 0x3e, 0xad, 0x19, 0x0e, 0xd5, 0x98, + 0xed, 0x0c, 0x5a, 0xb6, 0x6d, 0xba, 0x75, 0xcb, 0x65, 0xc4, 0x34, 0x2f, 0x7d, 0x41, 0x5e, 0x17, + 0xc0, 0x5e, 0x56, 0x41, 0xe2, 0x2d, 0x72, 0xe9, 0xab, 0xf1, 0xc7, 0x02, 0x78, 0x98, 0x54, 0xa3, + 0xea, 0x31, 0x3b, 0xfa, 0x9b, 0xea, 0x51, 0x6c, 0xf7, 0xb2, 0x57, 0x01, 0x3e, 0x02, 0x4b, 0x91, + 0x43, 0x17, 0x6b, 0xb6, 0x67, 0xb1, 0xd2, 0x95, 0x4d, 0x71, 0x7b, 0x0e, 0x2d, 0xc6, 0xb7, 0x25, + 0xff, 0x6e, 0xf9, 0x27, 0x05, 0xb0, 0x33, 0xe3, 0x8d, 0x52, 0xaf, 0x9e, 0x34, 0x6d, 0xd3, 0xd0, + 0x06, 0x97, 0x7e, 0xdf, 0x7c, 0x29, 0x82, 0x72, 0x52, 0x08, 0xff, 0xa8, 0xa8, 0x19, 0x3d, 0x62, + 0xba, 0x5f, 0x9d, 0x27, 0xe7, 0x9f, 0xa2, 0x7f, 0xdc, 0x8e, 0x0c, 0x5a, 0xd4, 0x65, 0x92, 0x6d, + 0x59, 0x5f, 0x91, 0x43, 0xd5, 0xdf, 0x45, 0x50, 0x4a, 0x92, 0x8f, 0x84, 0xa0, 0x7e, 0xe9, 0xf3, + 0x5e, 0x01, 0xcb, 0xed, 0xba, 0xe4, 0x50, 0xc2, 0xe8, 0x29, 0xbd, 0x40, 0xb6, 0x99, 0x16, 0xab, + 0x1b, 0xfe, 0x86, 0x18, 0x1a, 0x54, 0x49, 0x3f, 0x6d, 0xb0, 0xe5, 0x9f, 0xc6, 0x86, 0x67, 0x13, + 0x4b, 0xa3, 0x66, 0xca, 0xe4, 0x09, 0xd8, 0x1d, 0x31, 0x79, 0x61, 0xd0, 0x8b, 0x9a, 0xad, 0x79, + 0x5d, 0x6a, 0x31, 0xe2, 0x6f, 0xae, 0x94, 0xf5, 0x97, 0x2b, 0x60, 0xa9, 0xed, 0xc3, 0xf3, 0xcb, + 0x86, 0x45, 0x1b, 0xe7, 0xb0, 0x0d, 0x96, 0x3c, 0x03, 0x9f, 0x71, 0x39, 0x8f, 0x35, 0xdf, 0x36, + 0x5c, 0x84, 0xe9, 0x09, 0x8f, 0xab, 0x7f, 0x45, 0x40, 0x37, 0x3d, 0x23, 0x75, 0x17, 0xfe, 0x4a, + 0x04, 0x3b, 0x9e, 0x81, 0xed, 0x40, 0x1e, 0x63, 0x2d, 0x5c, 0x72, 0xdc, 0xb1, 0x31, 0xb3, 0xb1, + 0x1e, 0xc9, 0xff, 0x30, 0x62, 0x50, 0xe2, 0xea, 0x8c, 0x88, 0xf9, 0x7a, 0x08, 0x8a, 0x80, 0xee, + 0x79, 0x46, 0xa6, 0x2d, 0x7c, 0x2d, 0x82, 0x7b, 0x29, 0x3a, 0xa2, 0xeb, 0xf8, 0xdc, 0x70, 0x5c, + 0x86, 0xa3, 0xe5, 0x0f, 0xb9, 0xae, 0x70, 0xae, 0x4f, 0xb2, 0xb9, 0xa6, 0xf7, 0x24, 0x14, 0x01, + 0xad, 0xc7, 0x48, 0x13, 0xcd, 0x46, 0x6b, 0x35, 0x81, 0xc6, 0x24, 0x2c, 0x5e, 0x9d, 0xab, 0x79, + 0x6b, 0x95, 0xd1, 0x00, 0x19, 0xaa, 0xd5, 0x74, 0x5b, 0xf8, 0x63, 0x11, 0x6c, 0xa6, 0xe8, 0x5c, + 0xca, 0xb0, 0x16, 0xf7, 0x4a, 0xb0, 0xcb, 0xfb, 0x1c, 0xa5, 0x79, 0x0e, 0xf5, 0xcd, 0x6c, 0xa8, + 0x69, 0x9d, 0x16, 0x45, 0x40, 0xab, 0x31, 0xcd, 0x04, 0x23, 0xf8, 0x73, 0x11, 0xdc, 0x4f, 0x61, + 0x38, 0xa1, 0x28, 0xc1, 0x5a, 0xd4, 0x71, 0x89, 0x50, 0xae, 0x71, 0x94, 0x6f, 0x67, 0xa3, 0xcc, + 0xea, 0xd9, 0x28, 0x02, 0xda, 0x8c, 0x71, 0xa6, 0x18, 0x46, 0x95, 0x71, 0xc2, 0x2e, 0x08, 0xd6, + 0x6c, 0x9d, 0x9f, 0x07, 0x82, 0x2e, 0x4c, 0xb8, 0x5c, 0x0b, 0x99, 0x95, 0xc9, 0xe8, 0xe1, 0x04, + 0x95, 0x99, 0x6e, 0x04, 0xbf, 0x07, 0x56, 0x27, 0x51, 0xf4, 0x06, 0x21, 0xc1, 0x75, 0x4e, 0xf0, + 0xb5, 0xfc, 0x04, 0xe9, 0x26, 0x90, 0x22, 0xa0, 0xd2, 0x58, 0xf4, 0xd0, 0x00, 0x7e, 0x1f, 0xac, + 0x8d, 0x47, 0xee, 0x39, 0x86, 0xc5, 0xc2, 0xd0, 0x80, 0x87, 0xfe, 0x7a, 0xde, 0xd0, 0x23, 0x2d, + 0x24, 0x45, 0x40, 0xcb, 0x23, 0xb1, 0x13, 0x0b, 0x68, 0x82, 0x65, 0xcf, 0xc0, 0x7a, 0xf8, 0xf2, + 0xc5, 0x6e, 0xd0, 0x50, 0xc1, 0xdc, 0x79, 0xe9, 0x06, 0x0f, 0x5c, 0x99, 0x11, 0x78, 0x52, 0x23, + 0x46, 0x11, 0xd0, 0x6d, 0xcf, 0x98, 0xd8, 0xa2, 0x79, 0x1d, 0x6c, 0xbf, 0x38, 0x5c, 0xfc, 0x68, + 0xba, 0x51, 0x67, 0x24, 0x8c, 0xfc, 0x0e, 0x8f, 0xfc, 0x8d, 0x1c, 0x91, 0x27, 0xf7, 0x56, 0x82, + 0x9d, 0x97, 0xd1, 0x7f, 0xf9, 0x82, 0x6f, 0xbc, 0x18, 0x46, 0xe7, 0x5d, 0x0a, 0xec, 0x06, 0x6d, + 0x8a, 0x10, 0xe4, 0x26, 0x07, 0xf9, 0xff, 0x1c, 0x20, 0xe3, 0x4d, 0x8e, 0x60, 0xcf, 0xcd, 0x68, + 0x82, 0xfc, 0x34, 0x78, 0x81, 0x26, 0x04, 0xe1, 0xd1, 0x36, 0x79, 0x2e, 0x03, 0x88, 0x45, 0x0e, + 0xf1, 0x51, 0x1e, 0x88, 0x49, 0xdd, 0x06, 0x45, 0x40, 0x1b, 0x29, 0x8e, 0x89, 0x0d, 0x89, 0x5f, + 0x06, 0x6f, 0xcf, 0x71, 0x14, 0x2d, 0x3a, 0x5b, 0xe2, 0x2e, 0x33, 0xdd, 0x10, 0x68, 0x89, 0x03, + 0x7d, 0xeb, 0xbf, 0x00, 0x1a, 0xd7, 0xff, 0x8a, 0x80, 0xee, 0x8f, 0x53, 0x25, 0x76, 0xcc, 0x0c, + 0x25, 0xd0, 0x9f, 0x45, 0xf0, 0xd1, 0xf0, 0x3a, 0x71, 0xf5, 0x88, 0x09, 0x97, 0x8f, 0x58, 0x8f, + 0xf4, 0x23, 0x66, 0xbe, 0xa2, 0xc6, 0x46, 0x20, 0xa9, 0x43, 0xd2, 0x22, 0x27, 0xfd, 0x34, 0xd7, + 0xfa, 0xe5, 0x52, 0xe9, 0x8a, 0x80, 0xf6, 0xd3, 0x8b, 0x9a, 0x4f, 0xda, 0xff, 0x49, 0x04, 0x1f, + 0xe6, 0xca, 0x21, 0x29, 0x77, 0xc0, 0xff, 0x2e, 0xe7, 0x3f, 0x7a, 0x6b, 0xfe, 0x61, 0x69, 0xa0, + 0x08, 0x68, 0x2f, 0x0b, 0x7e, 0x44, 0x4c, 0xfc, 0x5a, 0x04, 0x8f, 0xd3, 0xe4, 0xc4, 0xf3, 0x4f, + 0x1e, 0xb1, 0x5c, 0xc5, 0x89, 0x84, 0x0b, 0x80, 0x21, 0x07, 0x7e, 0x96, 0x03, 0x78, 0x96, 0xee, + 0x55, 0x04, 0xf4, 0x30, 0x01, 0x9d, 0xa9, 0x90, 0x7f, 0x2f, 0x82, 0x4a, 0xc6, 0xce, 0x35, 0x48, + 0x17, 0xf7, 0xb8, 0x44, 0x0c, 0x21, 0xff, 0x8f, 0x43, 0x1e, 0xbc, 0xcd, 0xfe, 0x1d, 0x56, 0x9b, + 0x8a, 0x80, 0x76, 0x66, 0x6c, 0xe2, 0x3a, 0xe9, 0xa6, 0xa5, 0xe9, 0x2f, 0x44, 0xf0, 0x30, 0x8d, + 0xda, 0x8b, 0x15, 0xdc, 0xd8, 0xba, 0xdf, 0xe2, 0x84, 0x1f, 0xe7, 0x20, 0x9c, 0x26, 0x03, 0x15, + 0x01, 0x95, 0x13, 0xb4, 0xa9, 0x62, 0xf1, 0x47, 0x22, 0xd8, 0x4a, 0x33, 0x31, 0xea, 0x32, 0x9f, + 0xc6, 0x1a, 0x7a, 0x1f, 0xbf, 0x97, 0xf9, 0xf5, 0x9b, 0xa1, 0xc9, 0x14, 0x01, 0xad, 0x25, 0x24, + 0x93, 0x44, 0x9b, 0x03, 0x56, 0xd2, 0x0c, 0xd1, 0x39, 0x37, 0xfa, 0x0e, 0xdd, 0xce, 0x10, 0x22, + 0xd3, 0x44, 0x51, 0xf0, 0xd9, 0x9d, 0x22, 0x98, 0x4c, 0x50, 0xf2, 0x0c, 0xff, 0x10, 0x46, 0x18, + 0xc5, 0x16, 0xbd, 0xc0, 0x8e, 0x6d, 0x46, 0xc7, 0x8d, 0x3b, 0x3c, 0xe0, 0xd3, 0x19, 0x01, 0xa7, + 0xc8, 0x11, 0x45, 0x40, 0xb7, 0x3c, 0x63, 0x7c, 0x10, 0x0e, 0xf8, 0x47, 0x7e, 0x34, 0x9a, 0x4b, + 0xfa, 0x51, 0xc8, 0x52, 0x66, 0x85, 0x67, 0x88, 0x9c, 0x20, 0xd1, 0xc9, 0x06, 0xf0, 0x0b, 0xb0, + 0x31, 0x29, 0x51, 0x2e, 0x82, 0xc2, 0xe0, 0xcb, 0x99, 0x1f, 0x98, 0x99, 0x02, 0x4a, 0x11, 0xd0, + 0xdd, 0xd1, 0xac, 0x13, 0x13, 0xf8, 0x9b, 0xe0, 0x15, 0x32, 0x4a, 0xd0, 0x37, 0xe8, 0x05, 0xd6, + 0xd3, 0x22, 0x2b, 0xa4, 0xb9, 0xcb, 0x69, 0xa4, 0xbc, 0x34, 0x33, 0xb4, 0x9a, 0x22, 0xa0, 0x07, + 0x23, 0x60, 0x93, 0xad, 0x0f, 0xae, 0x81, 0xab, 0x3c, 0xc0, 0xa7, 0x57, 0x16, 0x0a, 0xc5, 0x39, + 0xff, 0xbb, 0x1d, 0x1f, 0x92, 0x3b, 0x94, 0xc5, 0xe7, 0x22, 0x0e, 0xb8, 0xfb, 0x87, 0xf9, 0xe4, + 0x3f, 0x6f, 0xd1, 0xdb, 0x08, 0x6e, 0x81, 0xb5, 0x5a, 0x5d, 0x95, 0x1a, 0x2f, 0x64, 0x84, 0x91, + 0xac, 0x36, 0xda, 0x48, 0x92, 0x71, 0xfb, 0x54, 0x6d, 0xca, 0x52, 0xfd, 0xb0, 0x2e, 0xd7, 0x8a, + 0x02, 0x5c, 0x05, 0xa5, 0x71, 0x13, 0x55, 0x46, 0x2f, 0x64, 0x54, 0x14, 0xe1, 0x26, 0x58, 0x1d, + 0x1f, 0x7d, 0xde, 0x3e, 0x90, 0xd1, 0xa9, 0xdc, 0x92, 0xd5, 0x62, 0x01, 0x7e, 0x00, 0x2a, 0xe3, + 0x16, 0xb5, 0x6a, 0xab, 0x7a, 0x50, 0x55, 0x65, 0xdc, 0x6c, 0xa8, 0xad, 0x23, 0x24, 0xab, 0x58, + 0x95, 0x8f, 0x0f, 0xb1, 0xd2, 0x50, 0x5b, 0x72, 0xad, 0x38, 0x07, 0xdf, 0x07, 0x4f, 0x66, 0x4c, + 0x3a, 0xf9, 0x8e, 0xfa, 0xd9, 0xf1, 0xd0, 0x8c, 0x2b, 0xf0, 0x29, 0xd8, 0x9b, 0x35, 0xa3, 0x71, + 0x7a, 0xd4, 0xa8, 0x1d, 0x0c, 0xcd, 0xb9, 0x0a, 0x1f, 0x83, 0x47, 0x79, 0xd0, 0x50, 0x4d, 0x2d, + 0xce, 0xc3, 0x6d, 0x70, 0x3f, 0x13, 0xc9, 0xb7, 0xbc, 0x06, 0x1f, 0x82, 0xf2, 0xb8, 0x65, 0xb5, + 0xd9, 0x3c, 0xae, 0x4b, 0xd5, 0x56, 0xbd, 0x71, 0x8a, 0x95, 0x56, 0xab, 0x59, 0x5c, 0x80, 0x0f, + 0xc0, 0xd6, 0x6c, 0xbb, 0x96, 0xd4, 0x2c, 0x5e, 0x9f, 0x6c, 0xf6, 0x79, 0xfd, 0xb4, 0xd6, 0xf8, + 0x5c, 0xc5, 0x35, 0x59, 0x7d, 0xde, 0x6a, 0x34, 0x8b, 0x00, 0x3e, 0x01, 0xdb, 0x33, 0xf8, 0xd4, + 0xcf, 0x8e, 0x83, 0x35, 0xe3, 0x8c, 0x37, 0x32, 0x0a, 0x9c, 0xa4, 0x2e, 0xd7, 0x54, 0xa5, 0x7e, + 0xd8, 0x2a, 0xbe, 0x03, 0x3f, 0x04, 0xef, 0xe7, 0xf2, 0x9f, 0x2e, 0xf1, 0xcd, 0x8c, 0x38, 0x48, + 0xae, 0xd5, 0x87, 0x97, 0x7e, 0x31, 0xef, 0xa2, 0x1c, 0x49, 0xcd, 0xe2, 0x52, 0xae, 0x45, 0xf1, + 0x2d, 0x8b, 0xb9, 0xcb, 0xe3, 0x5b, 0xbf, 0xbb, 0xfb, 0x5b, 0x11, 0x2c, 0x0e, 0xff, 0x8b, 0x17, + 0x6e, 0x80, 0x95, 0xd8, 0x81, 0xda, 0xaa, 0xb6, 0xda, 0xea, 0xc8, 0x83, 0xb2, 0x02, 0xee, 0x8c, + 0x1a, 0xa8, 0x6d, 0x49, 0x92, 0x55, 0xb5, 0x28, 0x4e, 0x1c, 0x7c, 0x5e, 0x6f, 0x36, 0xe5, 0x5a, + 0xb1, 0x00, 0x97, 0xc1, 0x7b, 0xa3, 0x83, 0x32, 0x42, 0x0d, 0x54, 0x9c, 0x9b, 0x34, 0xaf, 0x7a, + 0xd0, 0x40, 0x7c, 0xcf, 0x1f, 0x34, 0xfe, 0xf2, 0x66, 0x5d, 0xfc, 0xeb, 0x9b, 0x75, 0xf1, 0x6f, + 0x6f, 0xd6, 0xc5, 0xef, 0x56, 0x3b, 0x06, 0x7b, 0xe9, 0x9d, 0xed, 0x69, 0x76, 0xb7, 0xd2, 0x71, + 0x48, 0xdf, 0x08, 0x5e, 0x15, 0xc4, 0xac, 0xc4, 0xbf, 0xfc, 0x20, 0x3d, 0xa3, 0xd2, 0xa1, 0x56, + 0x85, 0xff, 0xcc, 0xa3, 0xd2, 0xb1, 0x47, 0x7e, 0x0a, 0x72, 0x36, 0xcf, 0x07, 0x3e, 0xf8, 0x4f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1f, 0xda, 0x74, 0x2c, 0x22, 0x00, 0x00, } func (m *UIBannerClickEvent) Marshal() (dAtA []byte, err error) { @@ -3190,6 +3420,114 @@ func (m *UIDiscoverCompletedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } +func (m *UICreateNewRoleClickEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UICreateNewRoleClickEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UICreateNewRoleClickEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *UICreateNewRoleSaveClickEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UICreateNewRoleSaveClickEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UICreateNewRoleSaveClickEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *UICreateNewRoleCancelClickEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UICreateNewRoleCancelClickEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UICreateNewRoleCancelClickEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + +func (m *UICreateNewRoleViewDocumentationClickEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UICreateNewRoleViewDocumentationClickEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UICreateNewRoleViewDocumentationClickEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + return len(dAtA) - i, nil +} + func (m *UsageEventOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3681,6 +4019,98 @@ func (m *UsageEventOneOf_UiDiscoverCompletedEvent) MarshalToSizedBuffer(dAtA []b } return len(dAtA) - i, nil } +func (m *UsageEventOneOf_UiCreateNewRoleClick) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UsageEventOneOf_UiCreateNewRoleClick) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UiCreateNewRoleClick != nil { + { + size, err := m.UiCreateNewRoleClick.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintUsageevents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + return len(dAtA) - i, nil +} +func (m *UsageEventOneOf_UiCreateNewRoleSaveClick) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UsageEventOneOf_UiCreateNewRoleSaveClick) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UiCreateNewRoleSaveClick != nil { + { + size, err := m.UiCreateNewRoleSaveClick.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintUsageevents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + return len(dAtA) - i, nil +} +func (m *UsageEventOneOf_UiCreateNewRoleCancelClick) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UsageEventOneOf_UiCreateNewRoleCancelClick) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UiCreateNewRoleCancelClick != nil { + { + size, err := m.UiCreateNewRoleCancelClick.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintUsageevents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xca + } + return len(dAtA) - i, nil +} +func (m *UsageEventOneOf_UiCreateNewRoleViewDocumentationClick) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UsageEventOneOf_UiCreateNewRoleViewDocumentationClick) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.UiCreateNewRoleViewDocumentationClick != nil { + { + size, err := m.UiCreateNewRoleViewDocumentationClick.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintUsageevents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd2 + } + return len(dAtA) - i, nil +} func encodeVarintUsageevents(dAtA []byte, offset int, v uint64) int { offset -= sovUsageevents(v) base := offset @@ -4173,6 +4603,54 @@ func (m *UIDiscoverCompletedEvent) Size() (n int) { return n } +func (m *UICreateNewRoleClickEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *UICreateNewRoleSaveClickEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *UICreateNewRoleCancelClickEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *UICreateNewRoleViewDocumentationClickEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *UsageEventOneOf) Size() (n int) { if m == nil { return 0 @@ -4440,6 +4918,54 @@ func (m *UsageEventOneOf_UiDiscoverCompletedEvent) Size() (n int) { } return n } +func (m *UsageEventOneOf_UiCreateNewRoleClick) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UiCreateNewRoleClick != nil { + l = m.UiCreateNewRoleClick.Size() + n += 2 + l + sovUsageevents(uint64(l)) + } + return n +} +func (m *UsageEventOneOf_UiCreateNewRoleSaveClick) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UiCreateNewRoleSaveClick != nil { + l = m.UiCreateNewRoleSaveClick.Size() + n += 2 + l + sovUsageevents(uint64(l)) + } + return n +} +func (m *UsageEventOneOf_UiCreateNewRoleCancelClick) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UiCreateNewRoleCancelClick != nil { + l = m.UiCreateNewRoleCancelClick.Size() + n += 2 + l + sovUsageevents(uint64(l)) + } + return n +} +func (m *UsageEventOneOf_UiCreateNewRoleViewDocumentationClick) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.UiCreateNewRoleViewDocumentationClick != nil { + l = m.UiCreateNewRoleViewDocumentationClick.Size() + n += 2 + l + sovUsageevents(uint64(l)) + } + return n +} func sovUsageevents(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 @@ -7340,6 +7866,210 @@ func (m *UIDiscoverCompletedEvent) Unmarshal(dAtA []byte) error { } return nil } +func (m *UICreateNewRoleClickEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UICreateNewRoleClickEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UICreateNewRoleClickEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipUsageevents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthUsageevents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UICreateNewRoleSaveClickEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UICreateNewRoleSaveClickEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UICreateNewRoleSaveClickEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipUsageevents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthUsageevents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UICreateNewRoleCancelClickEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UICreateNewRoleCancelClickEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UICreateNewRoleCancelClickEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipUsageevents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthUsageevents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UICreateNewRoleViewDocumentationClickEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UICreateNewRoleViewDocumentationClickEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UICreateNewRoleViewDocumentationClickEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipUsageevents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthUsageevents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *UsageEventOneOf) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -8104,6 +8834,146 @@ func (m *UsageEventOneOf) Unmarshal(dAtA []byte) error { } m.Event = &UsageEventOneOf_UiDiscoverCompletedEvent{v} iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UiCreateNewRoleClick", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthUsageevents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthUsageevents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &UICreateNewRoleClickEvent{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Event = &UsageEventOneOf_UiCreateNewRoleClick{v} + iNdEx = postIndex + case 24: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UiCreateNewRoleSaveClick", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthUsageevents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthUsageevents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &UICreateNewRoleSaveClickEvent{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Event = &UsageEventOneOf_UiCreateNewRoleSaveClick{v} + iNdEx = postIndex + case 25: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UiCreateNewRoleCancelClick", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthUsageevents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthUsageevents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &UICreateNewRoleCancelClickEvent{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Event = &UsageEventOneOf_UiCreateNewRoleCancelClick{v} + iNdEx = postIndex + case 26: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UiCreateNewRoleViewDocumentationClick", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUsageevents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthUsageevents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthUsageevents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &UICreateNewRoleViewDocumentationClickEvent{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Event = &UsageEventOneOf_UiCreateNewRoleViewDocumentationClick{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipUsageevents(dAtA[iNdEx:]) diff --git a/api/proto/teleport/usageevents/v1/usageevents.proto b/api/proto/teleport/usageevents/v1/usageevents.proto index 4e716d2f7de..0bb238e7683 100644 --- a/api/proto/teleport/usageevents/v1/usageevents.proto +++ b/api/proto/teleport/usageevents/v1/usageevents.proto @@ -233,6 +233,18 @@ message UIDiscoverCompletedEvent { DiscoverStepStatus status = 3; } +// UICreateNewRoleClickEvent is an event that can be triggered during custom role creation +message UICreateNewRoleClickEvent {} + +// UICreateNewRoleSaveClickEvent is an event that can be triggered during custom role creation +message UICreateNewRoleSaveClickEvent {} + +// UICreateNewRoleCancelClickEvent is an event that can be triggered during custom role creation +message UICreateNewRoleCancelClickEvent {} + +// UICreateNewRoleViewDocumentationClickEvent is an event that can be triggered during custom role creation +message UICreateNewRoleViewDocumentationClickEvent {} + // UsageEventOneOf is a message that can accept a oneof of any supported // external usage event. message UsageEventOneOf { @@ -258,6 +270,10 @@ message UsageEventOneOf { UIDiscoverPrincipalsConfigureEvent ui_discover_principals_configure_event = 20; UIDiscoverTestConnectionEvent ui_discover_test_connection_event = 21; UIDiscoverCompletedEvent ui_discover_completed_event = 22; + UICreateNewRoleClickEvent ui_create_new_role_click = 23; + UICreateNewRoleSaveClickEvent ui_create_new_role_save_click = 24; + UICreateNewRoleCancelClickEvent ui_create_new_role_cancel_click = 25; + UICreateNewRoleViewDocumentationClickEvent ui_create_new_role_view_documentation_click = 26; } reserved 2; //UIOnboardGetStartedClickEvent reserved "ui_onboard_get_started_click"; diff --git a/constants.go b/constants.go index 2b329942da9..eed9bc58bcd 100644 --- a/constants.go +++ b/constants.go @@ -596,6 +596,8 @@ const ( PresetAuditorRoleName = "auditor" ) +var PresetRoles = []string{PresetEditorRoleName, PresetAccessRoleName, PresetAuditorRoleName} + // MinClientVersion is the minimum client version required by the server. var MinClientVersion string diff --git a/gen/proto/go/prehog/v1alpha/teleport.pb.go b/gen/proto/go/prehog/v1alpha/teleport.pb.go index 508027f5684..6cb6344c3cd 100644 --- a/gen/proto/go/prehog/v1alpha/teleport.pb.go +++ b/gen/proto/go/prehog/v1alpha/teleport.pb.go @@ -1910,6 +1910,256 @@ func (x *UIDiscoverCompletedEvent) GetStatus() *DiscoverStepStatus { return nil } +// RoleCreateEvent is emitted when user creates a custom role. +type RoleCreateEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // anonymized + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + // anonymized + RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` +} + +func (x *RoleCreateEvent) Reset() { + *x = RoleCreateEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RoleCreateEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoleCreateEvent) ProtoMessage() {} + +func (x *RoleCreateEvent) ProtoReflect() protoreflect.Message { + mi := &file_prehog_v1alpha_teleport_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 RoleCreateEvent.ProtoReflect.Descriptor instead. +func (*RoleCreateEvent) Descriptor() ([]byte, []int) { + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{29} +} + +func (x *RoleCreateEvent) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *RoleCreateEvent) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +type UICreateNewRoleClickEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // anonymized + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` +} + +func (x *UICreateNewRoleClickEvent) Reset() { + *x = UICreateNewRoleClickEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UICreateNewRoleClickEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UICreateNewRoleClickEvent) ProtoMessage() {} + +func (x *UICreateNewRoleClickEvent) ProtoReflect() protoreflect.Message { + mi := &file_prehog_v1alpha_teleport_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 UICreateNewRoleClickEvent.ProtoReflect.Descriptor instead. +func (*UICreateNewRoleClickEvent) Descriptor() ([]byte, []int) { + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{30} +} + +func (x *UICreateNewRoleClickEvent) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +type UICreateNewRoleSaveClickEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // anonymized + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` +} + +func (x *UICreateNewRoleSaveClickEvent) Reset() { + *x = UICreateNewRoleSaveClickEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UICreateNewRoleSaveClickEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UICreateNewRoleSaveClickEvent) ProtoMessage() {} + +func (x *UICreateNewRoleSaveClickEvent) ProtoReflect() protoreflect.Message { + mi := &file_prehog_v1alpha_teleport_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 UICreateNewRoleSaveClickEvent.ProtoReflect.Descriptor instead. +func (*UICreateNewRoleSaveClickEvent) Descriptor() ([]byte, []int) { + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{31} +} + +func (x *UICreateNewRoleSaveClickEvent) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +type UICreateNewRoleCancelClickEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // anonymized + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` +} + +func (x *UICreateNewRoleCancelClickEvent) Reset() { + *x = UICreateNewRoleCancelClickEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UICreateNewRoleCancelClickEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UICreateNewRoleCancelClickEvent) ProtoMessage() {} + +func (x *UICreateNewRoleCancelClickEvent) ProtoReflect() protoreflect.Message { + mi := &file_prehog_v1alpha_teleport_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 UICreateNewRoleCancelClickEvent.ProtoReflect.Descriptor instead. +func (*UICreateNewRoleCancelClickEvent) Descriptor() ([]byte, []int) { + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{32} +} + +func (x *UICreateNewRoleCancelClickEvent) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +type UICreateNewRoleViewDocumentationClickEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // anonymized + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` +} + +func (x *UICreateNewRoleViewDocumentationClickEvent) Reset() { + *x = UICreateNewRoleViewDocumentationClickEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UICreateNewRoleViewDocumentationClickEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UICreateNewRoleViewDocumentationClickEvent) ProtoMessage() {} + +func (x *UICreateNewRoleViewDocumentationClickEvent) ProtoReflect() protoreflect.Message { + mi := &file_prehog_v1alpha_teleport_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 UICreateNewRoleViewDocumentationClickEvent.ProtoReflect.Descriptor instead. +func (*UICreateNewRoleViewDocumentationClickEvent) Descriptor() ([]byte, []int) { + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{33} +} + +func (x *UICreateNewRoleViewDocumentationClickEvent) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + type SubmitEventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1948,13 +2198,18 @@ type SubmitEventRequest struct { // *SubmitEventRequest_UiDiscoverPrincipalsConfigureEvent // *SubmitEventRequest_UiDiscoverTestConnectionEvent // *SubmitEventRequest_UiDiscoverCompletedEvent + // *SubmitEventRequest_RoleCreate + // *SubmitEventRequest_UiCreateNewRoleClick + // *SubmitEventRequest_UiCreateNewRoleSaveClick + // *SubmitEventRequest_UiCreateNewRoleCancelClick + // *SubmitEventRequest_UiCreateNewRoleViewDocumentationClick Event isSubmitEventRequest_Event `protobuf_oneof:"event"` } func (x *SubmitEventRequest) Reset() { *x = SubmitEventRequest{} if protoimpl.UnsafeEnabled { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1967,7 +2222,7 @@ func (x *SubmitEventRequest) String() string { func (*SubmitEventRequest) ProtoMessage() {} func (x *SubmitEventRequest) ProtoReflect() protoreflect.Message { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[29] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1980,7 +2235,7 @@ func (x *SubmitEventRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitEventRequest.ProtoReflect.Descriptor instead. func (*SubmitEventRequest) Descriptor() ([]byte, []int) { - return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{29} + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{34} } func (x *SubmitEventRequest) GetClusterName() string { @@ -2193,6 +2448,41 @@ func (x *SubmitEventRequest) GetUiDiscoverCompletedEvent() *UIDiscoverCompletedE return nil } +func (x *SubmitEventRequest) GetRoleCreate() *RoleCreateEvent { + if x, ok := x.GetEvent().(*SubmitEventRequest_RoleCreate); ok { + return x.RoleCreate + } + return nil +} + +func (x *SubmitEventRequest) GetUiCreateNewRoleClick() *UICreateNewRoleClickEvent { + if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleClick); ok { + return x.UiCreateNewRoleClick + } + return nil +} + +func (x *SubmitEventRequest) GetUiCreateNewRoleSaveClick() *UICreateNewRoleSaveClickEvent { + if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleSaveClick); ok { + return x.UiCreateNewRoleSaveClick + } + return nil +} + +func (x *SubmitEventRequest) GetUiCreateNewRoleCancelClick() *UICreateNewRoleCancelClickEvent { + if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleCancelClick); ok { + return x.UiCreateNewRoleCancelClick + } + return nil +} + +func (x *SubmitEventRequest) GetUiCreateNewRoleViewDocumentationClick() *UICreateNewRoleViewDocumentationClickEvent { + if x, ok := x.GetEvent().(*SubmitEventRequest_UiCreateNewRoleViewDocumentationClick); ok { + return x.UiCreateNewRoleViewDocumentationClick + } + return nil +} + type isSubmitEventRequest_Event interface { isSubmitEventRequest_Event() } @@ -2310,6 +2600,26 @@ type SubmitEventRequest_UiDiscoverCompletedEvent struct { UiDiscoverCompletedEvent *UIDiscoverCompletedEvent `protobuf:"bytes,30,opt,name=ui_discover_completed_event,json=uiDiscoverCompletedEvent,proto3,oneof"` } +type SubmitEventRequest_RoleCreate struct { + RoleCreate *RoleCreateEvent `protobuf:"bytes,31,opt,name=role_create,json=roleCreate,proto3,oneof"` +} + +type SubmitEventRequest_UiCreateNewRoleClick struct { + UiCreateNewRoleClick *UICreateNewRoleClickEvent `protobuf:"bytes,32,opt,name=ui_create_new_role_click,json=uiCreateNewRoleClick,proto3,oneof"` +} + +type SubmitEventRequest_UiCreateNewRoleSaveClick struct { + UiCreateNewRoleSaveClick *UICreateNewRoleSaveClickEvent `protobuf:"bytes,33,opt,name=ui_create_new_role_save_click,json=uiCreateNewRoleSaveClick,proto3,oneof"` +} + +type SubmitEventRequest_UiCreateNewRoleCancelClick struct { + UiCreateNewRoleCancelClick *UICreateNewRoleCancelClickEvent `protobuf:"bytes,34,opt,name=ui_create_new_role_cancel_click,json=uiCreateNewRoleCancelClick,proto3,oneof"` +} + +type SubmitEventRequest_UiCreateNewRoleViewDocumentationClick struct { + UiCreateNewRoleViewDocumentationClick *UICreateNewRoleViewDocumentationClickEvent `protobuf:"bytes,35,opt,name=ui_create_new_role_view_documentation_click,json=uiCreateNewRoleViewDocumentationClick,proto3,oneof"` +} + func (*SubmitEventRequest_UserLogin) isSubmitEventRequest_Event() {} func (*SubmitEventRequest_SsoCreate) isSubmitEventRequest_Event() {} @@ -2366,6 +2676,16 @@ func (*SubmitEventRequest_UiDiscoverTestConnectionEvent) isSubmitEventRequest_Ev func (*SubmitEventRequest_UiDiscoverCompletedEvent) isSubmitEventRequest_Event() {} +func (*SubmitEventRequest_RoleCreate) isSubmitEventRequest_Event() {} + +func (*SubmitEventRequest_UiCreateNewRoleClick) isSubmitEventRequest_Event() {} + +func (*SubmitEventRequest_UiCreateNewRoleSaveClick) isSubmitEventRequest_Event() {} + +func (*SubmitEventRequest_UiCreateNewRoleCancelClick) isSubmitEventRequest_Event() {} + +func (*SubmitEventRequest_UiCreateNewRoleViewDocumentationClick) isSubmitEventRequest_Event() {} + type SubmitEventResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2375,7 +2695,7 @@ type SubmitEventResponse struct { func (x *SubmitEventResponse) Reset() { *x = SubmitEventResponse{} if protoimpl.UnsafeEnabled { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2388,7 +2708,7 @@ func (x *SubmitEventResponse) String() string { func (*SubmitEventResponse) ProtoMessage() {} func (x *SubmitEventResponse) ProtoReflect() protoreflect.Message { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[30] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2401,7 +2721,7 @@ func (x *SubmitEventResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitEventResponse.ProtoReflect.Descriptor instead. func (*SubmitEventResponse) Descriptor() ([]byte, []int) { - return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{30} + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{35} } type HelloTeleportRequest struct { @@ -2413,7 +2733,7 @@ type HelloTeleportRequest struct { func (x *HelloTeleportRequest) Reset() { *x = HelloTeleportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2426,7 +2746,7 @@ func (x *HelloTeleportRequest) String() string { func (*HelloTeleportRequest) ProtoMessage() {} func (x *HelloTeleportRequest) ProtoReflect() protoreflect.Message { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[31] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2439,7 +2759,7 @@ func (x *HelloTeleportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HelloTeleportRequest.ProtoReflect.Descriptor instead. func (*HelloTeleportRequest) Descriptor() ([]byte, []int) { - return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{31} + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{36} } type HelloTeleportResponse struct { @@ -2451,7 +2771,7 @@ type HelloTeleportResponse struct { func (x *HelloTeleportResponse) Reset() { *x = HelloTeleportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2464,7 +2784,7 @@ func (x *HelloTeleportResponse) String() string { func (*HelloTeleportResponse) ProtoMessage() {} func (x *HelloTeleportResponse) ProtoReflect() protoreflect.Message { - mi := &file_prehog_v1alpha_teleport_proto_msgTypes[32] + mi := &file_prehog_v1alpha_teleport_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2477,7 +2797,7 @@ func (x *HelloTeleportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HelloTeleportResponse.ProtoReflect.Descriptor instead. func (*HelloTeleportResponse) Descriptor() ([]byte, []int) { - return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{32} + return file_prehog_v1alpha_teleport_proto_rawDescGZIP(), []int{37} } var File_prehog_v1alpha_teleport_proto protoreflect.FileDescriptor @@ -2754,7 +3074,28 @@ var file_prehog_v1alpha_teleport_proto_rawDesc = []byte{ 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x65, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xec, 0x1a, 0x0a, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4b, 0x0a, 0x0f, + 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x38, 0x0a, 0x19, 0x55, 0x49, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, + 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x1d, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x3e, 0x0a, 0x1f, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, + 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x49, 0x0a, 0x2a, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, + 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9a, 0x1f, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, @@ -2966,94 +3307,129 @@ var file_prehog_v1alpha_teleport_proto_rawDesc = []byte{ 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x18, 0x75, 0x69, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x1c, 0x75, - 0x69, 0x5f, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2a, 0xaa, 0x06, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, - 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x49, 0x53, - 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4b, - 0x55, 0x42, 0x45, 0x52, 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x33, 0x0a, 0x2f, 0x44, - 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, - 0x45, 0x53, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x03, - 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, - 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, - 0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, - 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, - 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, - 0x53, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, - 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x44, - 0x53, 0x10, 0x06, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, - 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, - 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x52, 0x44, 0x53, 0x10, 0x07, 0x12, 0x26, 0x0a, - 0x22, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, - 0x54, 0x54, 0x50, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, - 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x09, 0x12, 0x25, 0x0a, 0x21, - 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x4b, 0x54, 0x4f, - 0x50, 0x10, 0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, - 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, - 0x45, 0x5f, 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x44, 0x53, 0x10, - 0x0b, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, - 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x53, 0x48, 0x49, 0x46, - 0x54, 0x10, 0x0c, 0x12, 0x34, 0x0a, 0x30, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, - 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, - 0x45, 0x5f, 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x4c, 0x46, - 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, - 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x53, 0x5f, 0x53, 0x45, - 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x44, - 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, - 0x45, 0x53, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, - 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x47, 0x43, 0x50, - 0x10, 0x10, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, - 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, - 0x5f, 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x11, - 0x2a, 0xa3, 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, - 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19, - 0x0a, 0x15, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, - 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x4f, - 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x32, 0xd4, 0x01, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, - 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x42, + 0x0a, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x1f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x12, 0x63, 0x0a, 0x18, 0x75, 0x69, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x20, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, + 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x14, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, + 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x12, 0x70, 0x0a, 0x1d, 0x75, 0x69, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x61, + 0x76, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, - 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3f, 0x5a, - 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, - 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, - 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x53, + 0x61, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x18, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x12, 0x76, 0x0a, 0x1f, 0x75, 0x69, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, + 0x6f, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x63, + 0x6b, 0x12, 0x98, 0x01, 0x0a, 0x2b, 0x75, 0x69, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x55, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x25, 0x75, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x65, 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x42, 0x07, 0x0a, 0x05, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x1c, 0x75, 0x69, 0x5f, + 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x48, 0x65, 0x6c, 0x6c, + 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2a, 0xaa, 0x06, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, + 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4b, 0x55, 0x42, + 0x45, 0x52, 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x33, 0x0a, 0x2f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, + 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, + 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x30, + 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x59, 0x53, + 0x51, 0x4c, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x32, 0x0a, 0x2e, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, + 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, 0x4f, 0x53, 0x54, + 0x45, 0x44, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, + 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, + 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x44, 0x53, 0x10, + 0x06, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, + 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x52, 0x44, 0x53, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x54, 0x54, + 0x50, 0x10, 0x08, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, + 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x09, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x4b, 0x54, 0x4f, 0x50, 0x10, + 0x0a, 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, + 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x44, 0x53, 0x10, 0x0b, 0x12, + 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, + 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x53, 0x48, 0x49, 0x46, 0x54, 0x10, + 0x0c, 0x12, 0x34, 0x0a, 0x30, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, + 0x53, 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x48, + 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x30, 0x0a, 0x2c, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x53, 0x5f, 0x53, 0x45, 0x4c, 0x46, + 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, + 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, + 0x5f, 0x47, 0x43, 0x50, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, + 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x10, + 0x12, 0x2c, 0x0a, 0x28, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x53, + 0x51, 0x4c, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x11, 0x2a, 0xa3, + 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, + 0x45, 0x44, 0x10, 0x04, 0x32, 0xd4, 0x01, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0d, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x70, + 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3f, 0x5a, 0x3d, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, + 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3069,7 +3445,7 @@ func file_prehog_v1alpha_teleport_proto_rawDescGZIP() []byte { } var file_prehog_v1alpha_teleport_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_prehog_v1alpha_teleport_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_prehog_v1alpha_teleport_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_prehog_v1alpha_teleport_proto_goTypes = []interface{}{ (DiscoverResource)(0), // 0: prehog.v1alpha.DiscoverResource (DiscoverStatus)(0), // 1: prehog.v1alpha.DiscoverStatus @@ -3102,15 +3478,20 @@ var file_prehog_v1alpha_teleport_proto_goTypes = []interface{}{ (*UIDiscoverPrincipalsConfigureEvent)(nil), // 28: prehog.v1alpha.UIDiscoverPrincipalsConfigureEvent (*UIDiscoverTestConnectionEvent)(nil), // 29: prehog.v1alpha.UIDiscoverTestConnectionEvent (*UIDiscoverCompletedEvent)(nil), // 30: prehog.v1alpha.UIDiscoverCompletedEvent - (*SubmitEventRequest)(nil), // 31: prehog.v1alpha.SubmitEventRequest - (*SubmitEventResponse)(nil), // 32: prehog.v1alpha.SubmitEventResponse - (*HelloTeleportRequest)(nil), // 33: prehog.v1alpha.HelloTeleportRequest - (*HelloTeleportResponse)(nil), // 34: prehog.v1alpha.HelloTeleportResponse - (*durationpb.Duration)(nil), // 35: google.protobuf.Duration - (*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp + (*RoleCreateEvent)(nil), // 31: prehog.v1alpha.RoleCreateEvent + (*UICreateNewRoleClickEvent)(nil), // 32: prehog.v1alpha.UICreateNewRoleClickEvent + (*UICreateNewRoleSaveClickEvent)(nil), // 33: prehog.v1alpha.UICreateNewRoleSaveClickEvent + (*UICreateNewRoleCancelClickEvent)(nil), // 34: prehog.v1alpha.UICreateNewRoleCancelClickEvent + (*UICreateNewRoleViewDocumentationClickEvent)(nil), // 35: prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent + (*SubmitEventRequest)(nil), // 36: prehog.v1alpha.SubmitEventRequest + (*SubmitEventResponse)(nil), // 37: prehog.v1alpha.SubmitEventResponse + (*HelloTeleportRequest)(nil), // 38: prehog.v1alpha.HelloTeleportRequest + (*HelloTeleportResponse)(nil), // 39: prehog.v1alpha.HelloTeleportResponse + (*durationpb.Duration)(nil), // 40: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 41: google.protobuf.Timestamp } var file_prehog_v1alpha_teleport_proto_depIdxs = []int32{ - 35, // 0: prehog.v1alpha.UserCertificateIssuedEvent.ttl:type_name -> google.protobuf.Duration + 40, // 0: prehog.v1alpha.UserCertificateIssuedEvent.ttl:type_name -> google.protobuf.Duration 0, // 1: prehog.v1alpha.DiscoverResourceMetadata.resource:type_name -> prehog.v1alpha.DiscoverResource 1, // 2: prehog.v1alpha.DiscoverStepStatus.status:type_name -> prehog.v1alpha.DiscoverStatus 16, // 3: prehog.v1alpha.UIDiscoverStartedEvent.metadata:type_name -> prehog.v1alpha.DiscoverMetadata @@ -3148,7 +3529,7 @@ var file_prehog_v1alpha_teleport_proto_depIdxs = []int32{ 16, // 35: prehog.v1alpha.UIDiscoverCompletedEvent.metadata:type_name -> prehog.v1alpha.DiscoverMetadata 17, // 36: prehog.v1alpha.UIDiscoverCompletedEvent.resource:type_name -> prehog.v1alpha.DiscoverResourceMetadata 18, // 37: prehog.v1alpha.UIDiscoverCompletedEvent.status:type_name -> prehog.v1alpha.DiscoverStepStatus - 36, // 38: prehog.v1alpha.SubmitEventRequest.timestamp:type_name -> google.protobuf.Timestamp + 41, // 38: prehog.v1alpha.SubmitEventRequest.timestamp:type_name -> google.protobuf.Timestamp 2, // 39: prehog.v1alpha.SubmitEventRequest.user_login:type_name -> prehog.v1alpha.UserLoginEvent 3, // 40: prehog.v1alpha.SubmitEventRequest.sso_create:type_name -> prehog.v1alpha.SSOCreateEvent 4, // 41: prehog.v1alpha.SubmitEventRequest.resource_create:type_name -> prehog.v1alpha.ResourceCreateEvent @@ -3176,15 +3557,20 @@ var file_prehog_v1alpha_teleport_proto_depIdxs = []int32{ 28, // 63: prehog.v1alpha.SubmitEventRequest.ui_discover_principals_configure_event:type_name -> prehog.v1alpha.UIDiscoverPrincipalsConfigureEvent 29, // 64: prehog.v1alpha.SubmitEventRequest.ui_discover_test_connection_event:type_name -> prehog.v1alpha.UIDiscoverTestConnectionEvent 30, // 65: prehog.v1alpha.SubmitEventRequest.ui_discover_completed_event:type_name -> prehog.v1alpha.UIDiscoverCompletedEvent - 31, // 66: prehog.v1alpha.TeleportReportingService.SubmitEvent:input_type -> prehog.v1alpha.SubmitEventRequest - 33, // 67: prehog.v1alpha.TeleportReportingService.HelloTeleport:input_type -> prehog.v1alpha.HelloTeleportRequest - 32, // 68: prehog.v1alpha.TeleportReportingService.SubmitEvent:output_type -> prehog.v1alpha.SubmitEventResponse - 34, // 69: prehog.v1alpha.TeleportReportingService.HelloTeleport:output_type -> prehog.v1alpha.HelloTeleportResponse - 68, // [68:70] is the sub-list for method output_type - 66, // [66:68] is the sub-list for method input_type - 66, // [66:66] is the sub-list for extension type_name - 66, // [66:66] is the sub-list for extension extendee - 0, // [0:66] is the sub-list for field type_name + 31, // 66: prehog.v1alpha.SubmitEventRequest.role_create:type_name -> prehog.v1alpha.RoleCreateEvent + 32, // 67: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_click:type_name -> prehog.v1alpha.UICreateNewRoleClickEvent + 33, // 68: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_save_click:type_name -> prehog.v1alpha.UICreateNewRoleSaveClickEvent + 34, // 69: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_cancel_click:type_name -> prehog.v1alpha.UICreateNewRoleCancelClickEvent + 35, // 70: prehog.v1alpha.SubmitEventRequest.ui_create_new_role_view_documentation_click:type_name -> prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent + 36, // 71: prehog.v1alpha.TeleportReportingService.SubmitEvent:input_type -> prehog.v1alpha.SubmitEventRequest + 38, // 72: prehog.v1alpha.TeleportReportingService.HelloTeleport:input_type -> prehog.v1alpha.HelloTeleportRequest + 37, // 73: prehog.v1alpha.TeleportReportingService.SubmitEvent:output_type -> prehog.v1alpha.SubmitEventResponse + 39, // 74: prehog.v1alpha.TeleportReportingService.HelloTeleport:output_type -> prehog.v1alpha.HelloTeleportResponse + 73, // [73:75] is the sub-list for method output_type + 71, // [71:73] is the sub-list for method input_type + 71, // [71:71] is the sub-list for extension type_name + 71, // [71:71] is the sub-list for extension extendee + 0, // [0:71] is the sub-list for field type_name } func init() { file_prehog_v1alpha_teleport_proto_init() } @@ -3542,7 +3928,7 @@ func file_prehog_v1alpha_teleport_proto_init() { } } file_prehog_v1alpha_teleport_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitEventRequest); i { + switch v := v.(*RoleCreateEvent); i { case 0: return &v.state case 1: @@ -3554,7 +3940,7 @@ func file_prehog_v1alpha_teleport_proto_init() { } } file_prehog_v1alpha_teleport_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitEventResponse); i { + switch v := v.(*UICreateNewRoleClickEvent); i { case 0: return &v.state case 1: @@ -3566,7 +3952,7 @@ func file_prehog_v1alpha_teleport_proto_init() { } } file_prehog_v1alpha_teleport_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HelloTeleportRequest); i { + switch v := v.(*UICreateNewRoleSaveClickEvent); i { case 0: return &v.state case 1: @@ -3578,6 +3964,66 @@ func file_prehog_v1alpha_teleport_proto_init() { } } file_prehog_v1alpha_teleport_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UICreateNewRoleCancelClickEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_prehog_v1alpha_teleport_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UICreateNewRoleViewDocumentationClickEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_prehog_v1alpha_teleport_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitEventRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_prehog_v1alpha_teleport_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitEventResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_prehog_v1alpha_teleport_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelloTeleportRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_prehog_v1alpha_teleport_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HelloTeleportResponse); i { case 0: return &v.state @@ -3590,7 +4036,7 @@ func file_prehog_v1alpha_teleport_proto_init() { } } } - file_prehog_v1alpha_teleport_proto_msgTypes[29].OneofWrappers = []interface{}{ + file_prehog_v1alpha_teleport_proto_msgTypes[34].OneofWrappers = []interface{}{ (*SubmitEventRequest_UserLogin)(nil), (*SubmitEventRequest_SsoCreate)(nil), (*SubmitEventRequest_ResourceCreate)(nil), @@ -3618,6 +4064,11 @@ func file_prehog_v1alpha_teleport_proto_init() { (*SubmitEventRequest_UiDiscoverPrincipalsConfigureEvent)(nil), (*SubmitEventRequest_UiDiscoverTestConnectionEvent)(nil), (*SubmitEventRequest_UiDiscoverCompletedEvent)(nil), + (*SubmitEventRequest_RoleCreate)(nil), + (*SubmitEventRequest_UiCreateNewRoleClick)(nil), + (*SubmitEventRequest_UiCreateNewRoleSaveClick)(nil), + (*SubmitEventRequest_UiCreateNewRoleCancelClick)(nil), + (*SubmitEventRequest_UiCreateNewRoleViewDocumentationClick)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -3625,7 +4076,7 @@ func file_prehog_v1alpha_teleport_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_prehog_v1alpha_teleport_proto_rawDesc, NumEnums: 2, - NumMessages: 33, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/proto/js/prehog/v1alpha/teleport_pb.d.ts b/gen/proto/js/prehog/v1alpha/teleport_pb.d.ts index 0c0a7fdac4d..fc8a5c3c425 100644 --- a/gen/proto/js/prehog/v1alpha/teleport_pb.d.ts +++ b/gen/proto/js/prehog/v1alpha/teleport_pb.d.ts @@ -873,6 +873,115 @@ export namespace UIDiscoverCompletedEvent { } } +export class RoleCreateEvent extends jspb.Message { + getUserName(): string; + setUserName(value: string): RoleCreateEvent; + + getRoleName(): string; + setRoleName(value: string): RoleCreateEvent; + + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RoleCreateEvent.AsObject; + static toObject(includeInstance: boolean, msg: RoleCreateEvent): RoleCreateEvent.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: RoleCreateEvent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RoleCreateEvent; + static deserializeBinaryFromReader(message: RoleCreateEvent, reader: jspb.BinaryReader): RoleCreateEvent; +} + +export namespace RoleCreateEvent { + export type AsObject = { + userName: string, + roleName: string, + } +} + +export class UICreateNewRoleClickEvent extends jspb.Message { + getUserName(): string; + setUserName(value: string): UICreateNewRoleClickEvent; + + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UICreateNewRoleClickEvent.AsObject; + static toObject(includeInstance: boolean, msg: UICreateNewRoleClickEvent): UICreateNewRoleClickEvent.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: UICreateNewRoleClickEvent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UICreateNewRoleClickEvent; + static deserializeBinaryFromReader(message: UICreateNewRoleClickEvent, reader: jspb.BinaryReader): UICreateNewRoleClickEvent; +} + +export namespace UICreateNewRoleClickEvent { + export type AsObject = { + userName: string, + } +} + +export class UICreateNewRoleSaveClickEvent extends jspb.Message { + getUserName(): string; + setUserName(value: string): UICreateNewRoleSaveClickEvent; + + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UICreateNewRoleSaveClickEvent.AsObject; + static toObject(includeInstance: boolean, msg: UICreateNewRoleSaveClickEvent): UICreateNewRoleSaveClickEvent.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: UICreateNewRoleSaveClickEvent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UICreateNewRoleSaveClickEvent; + static deserializeBinaryFromReader(message: UICreateNewRoleSaveClickEvent, reader: jspb.BinaryReader): UICreateNewRoleSaveClickEvent; +} + +export namespace UICreateNewRoleSaveClickEvent { + export type AsObject = { + userName: string, + } +} + +export class UICreateNewRoleCancelClickEvent extends jspb.Message { + getUserName(): string; + setUserName(value: string): UICreateNewRoleCancelClickEvent; + + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UICreateNewRoleCancelClickEvent.AsObject; + static toObject(includeInstance: boolean, msg: UICreateNewRoleCancelClickEvent): UICreateNewRoleCancelClickEvent.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: UICreateNewRoleCancelClickEvent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UICreateNewRoleCancelClickEvent; + static deserializeBinaryFromReader(message: UICreateNewRoleCancelClickEvent, reader: jspb.BinaryReader): UICreateNewRoleCancelClickEvent; +} + +export namespace UICreateNewRoleCancelClickEvent { + export type AsObject = { + userName: string, + } +} + +export class UICreateNewRoleViewDocumentationClickEvent extends jspb.Message { + getUserName(): string; + setUserName(value: string): UICreateNewRoleViewDocumentationClickEvent; + + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UICreateNewRoleViewDocumentationClickEvent.AsObject; + static toObject(includeInstance: boolean, msg: UICreateNewRoleViewDocumentationClickEvent): UICreateNewRoleViewDocumentationClickEvent.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: UICreateNewRoleViewDocumentationClickEvent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UICreateNewRoleViewDocumentationClickEvent; + static deserializeBinaryFromReader(message: UICreateNewRoleViewDocumentationClickEvent, reader: jspb.BinaryReader): UICreateNewRoleViewDocumentationClickEvent; +} + +export namespace UICreateNewRoleViewDocumentationClickEvent { + export type AsObject = { + userName: string, + } +} + export class SubmitEventRequest extends jspb.Message { getClusterName(): string; setClusterName(value: string): SubmitEventRequest; @@ -1046,6 +1155,36 @@ export class SubmitEventRequest extends jspb.Message { setUiDiscoverCompletedEvent(value?: UIDiscoverCompletedEvent): SubmitEventRequest; + hasRoleCreate(): boolean; + clearRoleCreate(): void; + getRoleCreate(): RoleCreateEvent | undefined; + setRoleCreate(value?: RoleCreateEvent): SubmitEventRequest; + + + hasUiCreateNewRoleClick(): boolean; + clearUiCreateNewRoleClick(): void; + getUiCreateNewRoleClick(): UICreateNewRoleClickEvent | undefined; + setUiCreateNewRoleClick(value?: UICreateNewRoleClickEvent): SubmitEventRequest; + + + hasUiCreateNewRoleSaveClick(): boolean; + clearUiCreateNewRoleSaveClick(): void; + getUiCreateNewRoleSaveClick(): UICreateNewRoleSaveClickEvent | undefined; + setUiCreateNewRoleSaveClick(value?: UICreateNewRoleSaveClickEvent): SubmitEventRequest; + + + hasUiCreateNewRoleCancelClick(): boolean; + clearUiCreateNewRoleCancelClick(): void; + getUiCreateNewRoleCancelClick(): UICreateNewRoleCancelClickEvent | undefined; + setUiCreateNewRoleCancelClick(value?: UICreateNewRoleCancelClickEvent): SubmitEventRequest; + + + hasUiCreateNewRoleViewDocumentationClick(): boolean; + clearUiCreateNewRoleViewDocumentationClick(): void; + getUiCreateNewRoleViewDocumentationClick(): UICreateNewRoleViewDocumentationClickEvent | undefined; + setUiCreateNewRoleViewDocumentationClick(value?: UICreateNewRoleViewDocumentationClickEvent): SubmitEventRequest; + + getEventCase(): SubmitEventRequest.EventCase; serializeBinary(): Uint8Array; @@ -1089,6 +1228,11 @@ export namespace SubmitEventRequest { uiDiscoverPrincipalsConfigureEvent?: UIDiscoverPrincipalsConfigureEvent.AsObject, uiDiscoverTestConnectionEvent?: UIDiscoverTestConnectionEvent.AsObject, uiDiscoverCompletedEvent?: UIDiscoverCompletedEvent.AsObject, + roleCreate?: RoleCreateEvent.AsObject, + uiCreateNewRoleClick?: UICreateNewRoleClickEvent.AsObject, + uiCreateNewRoleSaveClick?: UICreateNewRoleSaveClickEvent.AsObject, + uiCreateNewRoleCancelClick?: UICreateNewRoleCancelClickEvent.AsObject, + uiCreateNewRoleViewDocumentationClick?: UICreateNewRoleViewDocumentationClickEvent.AsObject, } export enum EventCase { @@ -1148,6 +1292,16 @@ export namespace SubmitEventRequest { UI_DISCOVER_COMPLETED_EVENT = 30, + ROLE_CREATE = 31, + + UI_CREATE_NEW_ROLE_CLICK = 32, + + UI_CREATE_NEW_ROLE_SAVE_CLICK = 33, + + UI_CREATE_NEW_ROLE_CANCEL_CLICK = 34, + + UI_CREATE_NEW_ROLE_VIEW_DOCUMENTATION_CLICK = 35, + } } diff --git a/gen/proto/js/prehog/v1alpha/teleport_pb.js b/gen/proto/js/prehog/v1alpha/teleport_pb.js index 8d026cf7cda..5745cd5c4b2 100644 --- a/gen/proto/js/prehog/v1alpha/teleport_pb.js +++ b/gen/proto/js/prehog/v1alpha/teleport_pb.js @@ -27,12 +27,17 @@ goog.exportSymbol('proto.prehog.v1alpha.DiscoverStepStatus', null, global); goog.exportSymbol('proto.prehog.v1alpha.HelloTeleportRequest', null, global); goog.exportSymbol('proto.prehog.v1alpha.HelloTeleportResponse', null, global); goog.exportSymbol('proto.prehog.v1alpha.ResourceCreateEvent', null, global); +goog.exportSymbol('proto.prehog.v1alpha.RoleCreateEvent', null, global); goog.exportSymbol('proto.prehog.v1alpha.SSOCreateEvent', null, global); goog.exportSymbol('proto.prehog.v1alpha.SessionStartEvent', null, global); goog.exportSymbol('proto.prehog.v1alpha.SubmitEventRequest', null, global); goog.exportSymbol('proto.prehog.v1alpha.SubmitEventRequest.EventCase', null, global); goog.exportSymbol('proto.prehog.v1alpha.SubmitEventResponse', null, global); goog.exportSymbol('proto.prehog.v1alpha.UIBannerClickEvent', null, global); +goog.exportSymbol('proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent', null, global); +goog.exportSymbol('proto.prehog.v1alpha.UICreateNewRoleClickEvent', null, global); +goog.exportSymbol('proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent', null, global); +goog.exportSymbol('proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent', null, global); goog.exportSymbol('proto.prehog.v1alpha.UIDiscoverAutoDiscoveredResourcesEvent', null, global); goog.exportSymbol('proto.prehog.v1alpha.UIDiscoverCompletedEvent', null, global); goog.exportSymbol('proto.prehog.v1alpha.UIDiscoverDatabaseConfigureIAMPolicyEvent', null, global); @@ -664,6 +669,111 @@ if (goog.DEBUG && !COMPILED) { */ proto.prehog.v1alpha.UIDiscoverCompletedEvent.displayName = 'proto.prehog.v1alpha.UIDiscoverCompletedEvent'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.prehog.v1alpha.RoleCreateEvent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.prehog.v1alpha.RoleCreateEvent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.prehog.v1alpha.RoleCreateEvent.displayName = 'proto.prehog.v1alpha.RoleCreateEvent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.prehog.v1alpha.UICreateNewRoleClickEvent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.prehog.v1alpha.UICreateNewRoleClickEvent.displayName = 'proto.prehog.v1alpha.UICreateNewRoleClickEvent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.displayName = 'proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.displayName = 'proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.displayName = 'proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -6385,6 +6495,686 @@ proto.prehog.v1alpha.UIDiscoverCompletedEvent.prototype.hasStatus = function() { + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.prehog.v1alpha.RoleCreateEvent.prototype.toObject = function(opt_includeInstance) { + return proto.prehog.v1alpha.RoleCreateEvent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.prehog.v1alpha.RoleCreateEvent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.RoleCreateEvent.toObject = function(includeInstance, msg) { + var f, obj = { + userName: jspb.Message.getFieldWithDefault(msg, 1, ""), + roleName: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.prehog.v1alpha.RoleCreateEvent} + */ +proto.prehog.v1alpha.RoleCreateEvent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.prehog.v1alpha.RoleCreateEvent; + return proto.prehog.v1alpha.RoleCreateEvent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.prehog.v1alpha.RoleCreateEvent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.prehog.v1alpha.RoleCreateEvent} + */ +proto.prehog.v1alpha.RoleCreateEvent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setRoleName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.prehog.v1alpha.RoleCreateEvent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.prehog.v1alpha.RoleCreateEvent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.prehog.v1alpha.RoleCreateEvent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.RoleCreateEvent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRoleName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string user_name = 1; + * @return {string} + */ +proto.prehog.v1alpha.RoleCreateEvent.prototype.getUserName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.prehog.v1alpha.RoleCreateEvent} returns this + */ +proto.prehog.v1alpha.RoleCreateEvent.prototype.setUserName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string role_name = 2; + * @return {string} + */ +proto.prehog.v1alpha.RoleCreateEvent.prototype.getRoleName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.prehog.v1alpha.RoleCreateEvent} returns this + */ +proto.prehog.v1alpha.RoleCreateEvent.prototype.setRoleName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.prototype.toObject = function(opt_includeInstance) { + return proto.prehog.v1alpha.UICreateNewRoleClickEvent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.prehog.v1alpha.UICreateNewRoleClickEvent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.toObject = function(includeInstance, msg) { + var f, obj = { + userName: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.prehog.v1alpha.UICreateNewRoleClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.prehog.v1alpha.UICreateNewRoleClickEvent; + return proto.prehog.v1alpha.UICreateNewRoleClickEvent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.prehog.v1alpha.UICreateNewRoleClickEvent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.prehog.v1alpha.UICreateNewRoleClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.prehog.v1alpha.UICreateNewRoleClickEvent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.prehog.v1alpha.UICreateNewRoleClickEvent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_name = 1; + * @return {string} + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.prototype.getUserName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.prehog.v1alpha.UICreateNewRoleClickEvent} returns this + */ +proto.prehog.v1alpha.UICreateNewRoleClickEvent.prototype.setUserName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.prototype.toObject = function(opt_includeInstance) { + return proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.toObject = function(includeInstance, msg) { + var f, obj = { + userName: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent; + return proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_name = 1; + * @return {string} + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.prototype.getUserName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} returns this + */ +proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.prototype.setUserName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.prototype.toObject = function(opt_includeInstance) { + return proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.toObject = function(includeInstance, msg) { + var f, obj = { + userName: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent; + return proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_name = 1; + * @return {string} + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.prototype.getUserName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} returns this + */ +proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.prototype.setUserName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.prototype.toObject = function(opt_includeInstance) { + return proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.toObject = function(includeInstance, msg) { + var f, obj = { + userName: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent; + return proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_name = 1; + * @return {string} + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.prototype.getUserName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} returns this + */ +proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.prototype.setUserName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + /** * Oneof group definitions for this message. Each group defines the field * numbers belonging to that group. When of these fields' value is set, all @@ -6393,7 +7183,7 @@ proto.prehog.v1alpha.UIDiscoverCompletedEvent.prototype.hasStatus = function() { * @private {!Array>} * @const */ -proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_ = [[3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]]; +proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_ = [[3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]]; /** * @enum {number} @@ -6426,7 +7216,12 @@ proto.prehog.v1alpha.SubmitEventRequest.EventCase = { UI_DISCOVER_DATABASE_CONFIGURE_IAM_POLICY_EVENT: 27, UI_DISCOVER_PRINCIPALS_CONFIGURE_EVENT: 28, UI_DISCOVER_TEST_CONNECTION_EVENT: 29, - UI_DISCOVER_COMPLETED_EVENT: 30 + UI_DISCOVER_COMPLETED_EVENT: 30, + ROLE_CREATE: 31, + UI_CREATE_NEW_ROLE_CLICK: 32, + UI_CREATE_NEW_ROLE_SAVE_CLICK: 33, + UI_CREATE_NEW_ROLE_CANCEL_CLICK: 34, + UI_CREATE_NEW_ROLE_VIEW_DOCUMENTATION_CLICK: 35 }; /** @@ -6495,7 +7290,12 @@ proto.prehog.v1alpha.SubmitEventRequest.toObject = function(includeInstance, msg uiDiscoverDatabaseConfigureIamPolicyEvent: (f = msg.getUiDiscoverDatabaseConfigureIamPolicyEvent()) && proto.prehog.v1alpha.UIDiscoverDatabaseConfigureIAMPolicyEvent.toObject(includeInstance, f), uiDiscoverPrincipalsConfigureEvent: (f = msg.getUiDiscoverPrincipalsConfigureEvent()) && proto.prehog.v1alpha.UIDiscoverPrincipalsConfigureEvent.toObject(includeInstance, f), uiDiscoverTestConnectionEvent: (f = msg.getUiDiscoverTestConnectionEvent()) && proto.prehog.v1alpha.UIDiscoverTestConnectionEvent.toObject(includeInstance, f), - uiDiscoverCompletedEvent: (f = msg.getUiDiscoverCompletedEvent()) && proto.prehog.v1alpha.UIDiscoverCompletedEvent.toObject(includeInstance, f) + uiDiscoverCompletedEvent: (f = msg.getUiDiscoverCompletedEvent()) && proto.prehog.v1alpha.UIDiscoverCompletedEvent.toObject(includeInstance, f), + roleCreate: (f = msg.getRoleCreate()) && proto.prehog.v1alpha.RoleCreateEvent.toObject(includeInstance, f), + uiCreateNewRoleClick: (f = msg.getUiCreateNewRoleClick()) && proto.prehog.v1alpha.UICreateNewRoleClickEvent.toObject(includeInstance, f), + uiCreateNewRoleSaveClick: (f = msg.getUiCreateNewRoleSaveClick()) && proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.toObject(includeInstance, f), + uiCreateNewRoleCancelClick: (f = msg.getUiCreateNewRoleCancelClick()) && proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.toObject(includeInstance, f), + uiCreateNewRoleViewDocumentationClick: (f = msg.getUiCreateNewRoleViewDocumentationClick()) && proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.toObject(includeInstance, f) }; if (includeInstance) { @@ -6676,6 +7476,31 @@ proto.prehog.v1alpha.SubmitEventRequest.deserializeBinaryFromReader = function(m reader.readMessage(value,proto.prehog.v1alpha.UIDiscoverCompletedEvent.deserializeBinaryFromReader); msg.setUiDiscoverCompletedEvent(value); break; + case 31: + var value = new proto.prehog.v1alpha.RoleCreateEvent; + reader.readMessage(value,proto.prehog.v1alpha.RoleCreateEvent.deserializeBinaryFromReader); + msg.setRoleCreate(value); + break; + case 32: + var value = new proto.prehog.v1alpha.UICreateNewRoleClickEvent; + reader.readMessage(value,proto.prehog.v1alpha.UICreateNewRoleClickEvent.deserializeBinaryFromReader); + msg.setUiCreateNewRoleClick(value); + break; + case 33: + var value = new proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent; + reader.readMessage(value,proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.deserializeBinaryFromReader); + msg.setUiCreateNewRoleSaveClick(value); + break; + case 34: + var value = new proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent; + reader.readMessage(value,proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.deserializeBinaryFromReader); + msg.setUiCreateNewRoleCancelClick(value); + break; + case 35: + var value = new proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent; + reader.readMessage(value,proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.deserializeBinaryFromReader); + msg.setUiCreateNewRoleViewDocumentationClick(value); + break; default: reader.skipField(); break; @@ -6936,6 +7761,46 @@ proto.prehog.v1alpha.SubmitEventRequest.serializeBinaryToWriter = function(messa proto.prehog.v1alpha.UIDiscoverCompletedEvent.serializeBinaryToWriter ); } + f = message.getRoleCreate(); + if (f != null) { + writer.writeMessage( + 31, + f, + proto.prehog.v1alpha.RoleCreateEvent.serializeBinaryToWriter + ); + } + f = message.getUiCreateNewRoleClick(); + if (f != null) { + writer.writeMessage( + 32, + f, + proto.prehog.v1alpha.UICreateNewRoleClickEvent.serializeBinaryToWriter + ); + } + f = message.getUiCreateNewRoleSaveClick(); + if (f != null) { + writer.writeMessage( + 33, + f, + proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent.serializeBinaryToWriter + ); + } + f = message.getUiCreateNewRoleCancelClick(); + if (f != null) { + writer.writeMessage( + 34, + f, + proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent.serializeBinaryToWriter + ); + } + f = message.getUiCreateNewRoleViewDocumentationClick(); + if (f != null) { + writer.writeMessage( + 35, + f, + proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent.serializeBinaryToWriter + ); + } }; @@ -7993,6 +8858,191 @@ proto.prehog.v1alpha.SubmitEventRequest.prototype.hasUiDiscoverCompletedEvent = }; +/** + * optional RoleCreateEvent role_create = 31; + * @return {?proto.prehog.v1alpha.RoleCreateEvent} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.getRoleCreate = function() { + return /** @type{?proto.prehog.v1alpha.RoleCreateEvent} */ ( + jspb.Message.getWrapperField(this, proto.prehog.v1alpha.RoleCreateEvent, 31)); +}; + + +/** + * @param {?proto.prehog.v1alpha.RoleCreateEvent|undefined} value + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this +*/ +proto.prehog.v1alpha.SubmitEventRequest.prototype.setRoleCreate = function(value) { + return jspb.Message.setOneofWrapperField(this, 31, proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.clearRoleCreate = function() { + return this.setRoleCreate(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.hasRoleCreate = function() { + return jspb.Message.getField(this, 31) != null; +}; + + +/** + * optional UICreateNewRoleClickEvent ui_create_new_role_click = 32; + * @return {?proto.prehog.v1alpha.UICreateNewRoleClickEvent} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.getUiCreateNewRoleClick = function() { + return /** @type{?proto.prehog.v1alpha.UICreateNewRoleClickEvent} */ ( + jspb.Message.getWrapperField(this, proto.prehog.v1alpha.UICreateNewRoleClickEvent, 32)); +}; + + +/** + * @param {?proto.prehog.v1alpha.UICreateNewRoleClickEvent|undefined} value + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this +*/ +proto.prehog.v1alpha.SubmitEventRequest.prototype.setUiCreateNewRoleClick = function(value) { + return jspb.Message.setOneofWrapperField(this, 32, proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.clearUiCreateNewRoleClick = function() { + return this.setUiCreateNewRoleClick(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.hasUiCreateNewRoleClick = function() { + return jspb.Message.getField(this, 32) != null; +}; + + +/** + * optional UICreateNewRoleSaveClickEvent ui_create_new_role_save_click = 33; + * @return {?proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.getUiCreateNewRoleSaveClick = function() { + return /** @type{?proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent} */ ( + jspb.Message.getWrapperField(this, proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent, 33)); +}; + + +/** + * @param {?proto.prehog.v1alpha.UICreateNewRoleSaveClickEvent|undefined} value + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this +*/ +proto.prehog.v1alpha.SubmitEventRequest.prototype.setUiCreateNewRoleSaveClick = function(value) { + return jspb.Message.setOneofWrapperField(this, 33, proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.clearUiCreateNewRoleSaveClick = function() { + return this.setUiCreateNewRoleSaveClick(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.hasUiCreateNewRoleSaveClick = function() { + return jspb.Message.getField(this, 33) != null; +}; + + +/** + * optional UICreateNewRoleCancelClickEvent ui_create_new_role_cancel_click = 34; + * @return {?proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.getUiCreateNewRoleCancelClick = function() { + return /** @type{?proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent} */ ( + jspb.Message.getWrapperField(this, proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent, 34)); +}; + + +/** + * @param {?proto.prehog.v1alpha.UICreateNewRoleCancelClickEvent|undefined} value + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this +*/ +proto.prehog.v1alpha.SubmitEventRequest.prototype.setUiCreateNewRoleCancelClick = function(value) { + return jspb.Message.setOneofWrapperField(this, 34, proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.clearUiCreateNewRoleCancelClick = function() { + return this.setUiCreateNewRoleCancelClick(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.hasUiCreateNewRoleCancelClick = function() { + return jspb.Message.getField(this, 34) != null; +}; + + +/** + * optional UICreateNewRoleViewDocumentationClickEvent ui_create_new_role_view_documentation_click = 35; + * @return {?proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.getUiCreateNewRoleViewDocumentationClick = function() { + return /** @type{?proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent} */ ( + jspb.Message.getWrapperField(this, proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent, 35)); +}; + + +/** + * @param {?proto.prehog.v1alpha.UICreateNewRoleViewDocumentationClickEvent|undefined} value + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this +*/ +proto.prehog.v1alpha.SubmitEventRequest.prototype.setUiCreateNewRoleViewDocumentationClick = function(value) { + return jspb.Message.setOneofWrapperField(this, 35, proto.prehog.v1alpha.SubmitEventRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.prehog.v1alpha.SubmitEventRequest} returns this + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.clearUiCreateNewRoleViewDocumentationClick = function() { + return this.setUiCreateNewRoleViewDocumentationClick(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.prehog.v1alpha.SubmitEventRequest.prototype.hasUiCreateNewRoleViewDocumentationClick = function() { + return jspb.Message.getField(this, 35) != null; +}; + + diff --git a/lib/events/usageevents/usageevents.go b/lib/events/usageevents/usageevents.go index d2b116d6eae..2cba3367aa7 100644 --- a/lib/events/usageevents/usageevents.go +++ b/lib/events/usageevents/usageevents.go @@ -104,6 +104,11 @@ func (u *UsageLogger) reportAuditEvent(ctx context.Context, event apievents.Audi return trace.Wrap(u.report(&services.UsageSSOCreate{ ConnectorType: types.KindSAMLConnector, })) + case *apievents.RoleCreate: + return trace.Wrap(u.report(&services.UsageRoleCreate{ + UserName: e.User, + RoleName: e.ResourceMetadata.Name, + })) } return nil diff --git a/lib/services/usagereporter.go b/lib/services/usagereporter.go index 200b13d7160..89c8d28848d 100644 --- a/lib/services/usagereporter.go +++ b/lib/services/usagereporter.go @@ -27,8 +27,10 @@ import ( "github.com/gravitational/trace" "github.com/jonboulle/clockwork" "github.com/sirupsen/logrus" + "golang.org/x/exp/slices" "google.golang.org/protobuf/types/known/timestamppb" + "github.com/gravitational/teleport" usageevents "github.com/gravitational/teleport/api/gen/proto/go/usageevents/v1" "github.com/gravitational/teleport/api/types" prehogv1 "github.com/gravitational/teleport/gen/proto/go/prehog/v1alpha" @@ -262,6 +264,77 @@ func (u *UsageUIRecoveryCodesPrintClick) Anonymize(a utils.Anonymizer) prehogv1. } } +// UsageRoleCreate is an event emitted when a custom role is created. +type UsageRoleCreate prehogv1.RoleCreateEvent + +func (u *UsageRoleCreate) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest { + role := u.RoleName + if !slices.Contains(teleport.PresetRoles, u.RoleName) { + role = a.AnonymizeString(u.RoleName) + } + + return prehogv1.SubmitEventRequest{ + Event: &prehogv1.SubmitEventRequest_RoleCreate{ + RoleCreate: &prehogv1.RoleCreateEvent{ + UserName: a.AnonymizeString(u.UserName), + RoleName: role, + }, + }, + } +} + +// UsageUICreateNewRoleClickEvent is a UI event sent when a user prints recovery codes. +type UsageUICreateNewRoleClickEvent prehogv1.UICreateNewRoleClickEvent + +func (u *UsageUICreateNewRoleClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest { + return prehogv1.SubmitEventRequest{ + Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleClick{ + UiCreateNewRoleClick: &prehogv1.UICreateNewRoleClickEvent{ + UserName: a.AnonymizeString(u.UserName), + }, + }, + } +} + +// UsageUICreateNewRoleSaveClickEvent is a UI event sent when a user prints recovery codes. +type UsageUICreateNewRoleSaveClickEvent prehogv1.UICreateNewRoleSaveClickEvent + +func (u *UsageUICreateNewRoleSaveClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest { + return prehogv1.SubmitEventRequest{ + Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleSaveClick{ + UiCreateNewRoleSaveClick: &prehogv1.UICreateNewRoleSaveClickEvent{ + UserName: a.AnonymizeString(u.UserName), + }, + }, + } +} + +// UsageUICreateNewRoleCancelClickEvent is a UI event sent when a user prints recovery codes. +type UsageUICreateNewRoleCancelClickEvent prehogv1.UICreateNewRoleCancelClickEvent + +func (u *UsageUICreateNewRoleCancelClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest { + return prehogv1.SubmitEventRequest{ + Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleCancelClick{ + UiCreateNewRoleCancelClick: &prehogv1.UICreateNewRoleCancelClickEvent{ + UserName: a.AnonymizeString(u.UserName), + }, + }, + } +} + +// UsageUICreateNewRoleViewDocumentationClickEvent is a UI event sent when a user prints recovery codes. +type UsageUICreateNewRoleViewDocumentationClickEvent prehogv1.UICreateNewRoleViewDocumentationClickEvent + +func (u *UsageUICreateNewRoleViewDocumentationClickEvent) Anonymize(a utils.Anonymizer) prehogv1.SubmitEventRequest { + return prehogv1.SubmitEventRequest{ + Event: &prehogv1.SubmitEventRequest_UiCreateNewRoleViewDocumentationClick{ + UiCreateNewRoleViewDocumentationClick: &prehogv1.UICreateNewRoleViewDocumentationClickEvent{ + UserName: a.AnonymizeString(u.UserName), + }, + }, + } +} + // UsageCertificateIssued is an event emitted when a certificate has been // issued, used to track the duration and restriction. type UsageCertificateIssued prehogv1.UserCertificateIssuedEvent @@ -331,6 +404,22 @@ func ConvertUsageEvent(event *usageevents.UsageEventOneOf, identityUsername stri return &UsageUIRecoveryCodesPrintClick{ UserName: e.UiRecoveryCodesPrintClick.Username, }, nil + case *usageevents.UsageEventOneOf_UiCreateNewRoleClick: + return &UsageUICreateNewRoleClickEvent{ + UserName: identityUsername, + }, nil + case *usageevents.UsageEventOneOf_UiCreateNewRoleSaveClick: + return &UsageUICreateNewRoleSaveClickEvent{ + UserName: identityUsername, + }, nil + case *usageevents.UsageEventOneOf_UiCreateNewRoleCancelClick: + return &UsageUICreateNewRoleCancelClickEvent{ + UserName: identityUsername, + }, nil + case *usageevents.UsageEventOneOf_UiCreateNewRoleViewDocumentationClick: + return &UsageUICreateNewRoleViewDocumentationClickEvent{ + UserName: identityUsername, + }, nil case *usageevents.UsageEventOneOf_UiDiscoverStartedEvent: ret := &UsageUIDiscoverStartedEvent{ Metadata: discoverMetadataToPrehog(e.UiDiscoverStartedEvent.Metadata, identityUsername), diff --git a/lib/web/userevent.go b/lib/web/userevent.go index 57c436625fa..7c2518a63a2 100644 --- a/lib/web/userevent.go +++ b/lib/web/userevent.go @@ -29,18 +29,22 @@ import ( "github.com/gravitational/teleport/lib/httplib" ) -// these constants are 1:1 with user events found in the webapps codebase -// packages/teleport/src/services/userEvent/UserEvents/userEvents.ts +// these constants are 1:1 with user events found in the web directory +// web/packages/teleport/src/services/userEvent/types.ts const ( - bannerClickEvent = "tp.ui.banner.click" - setCredentialSubmitEvent = "tp.ui.onboard.setCredential.submit" - registerChallengeSubmitEvent = "tp.ui.onboard.registerChallenge.submit" - addFirstResourceClickEvent = "tp.ui.onboard.addFirstResource.click" - addFirstResourceLaterClickEvent = "tp.ui.onboard.addFirstResourceLater.click" - recoveryCodesContinueClickEvent = "tp.ui.recoveryCodesContinue.click" - recoveryCodesCopyClickEvent = "tp.ui.recoveryCodesCopy.click" - recoveryCodesPrintClickEvent = "tp.ui.recoveryCodesPrint.click" - completeGoToDashboardClickEvent = "tp.ui.onboard.completeGoToDashboard.click" + bannerClickEvent = "tp.ui.banner.click" + setCredentialSubmitEvent = "tp.ui.onboard.setCredential.submit" + registerChallengeSubmitEvent = "tp.ui.onboard.registerChallenge.submit" + addFirstResourceClickEvent = "tp.ui.onboard.addFirstResource.click" + addFirstResourceLaterClickEvent = "tp.ui.onboard.addFirstResourceLater.click" + completeGoToDashboardClickEvent = "tp.ui.onboard.completeGoToDashboard.click" + recoveryCodesContinueClickEvent = "tp.ui.recoveryCodesContinue.click" + recoveryCodesCopyClickEvent = "tp.ui.recoveryCodesCopy.click" + recoveryCodesPrintClickEvent = "tp.ui.recoveryCodesPrint.click" + createNewRoleClickEvent = "tp.ui.createNewRole.click" + createNewRoleSaveClickEvent = "tp.ui.createNewRoleSave.click" + createNewRoleCancelClickEvent = "tp.ui.createNewRoleCancel.click" + createNewRoleViewDocumentationClickEvent = "tp.ui.createNewRoleViewDocumentation.click" uiDiscoverStartedEvent = "tp.ui.discover.started" uiDiscoverResourceSelectionEvent = "tp.ui.discover.resourceSelection" @@ -251,6 +255,30 @@ func convertUserEventRequestToUsageEvent(req createUserEventRequest) (*v1.UsageE } return event, nil + case createNewRoleClickEvent: + return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleClick{ + UiCreateNewRoleClick: &v1.UICreateNewRoleClickEvent{}, + }}, + nil + + case createNewRoleSaveClickEvent: + return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleSaveClick{ + UiCreateNewRoleSaveClick: &v1.UICreateNewRoleSaveClickEvent{}, + }}, + nil + + case createNewRoleCancelClickEvent: + return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleCancelClick{ + UiCreateNewRoleCancelClick: &v1.UICreateNewRoleCancelClickEvent{}, + }}, + nil + + case createNewRoleViewDocumentationClickEvent: + return &v1.UsageEventOneOf{Event: &v1.UsageEventOneOf_UiCreateNewRoleViewDocumentationClick{ + UiCreateNewRoleViewDocumentationClick: &v1.UICreateNewRoleViewDocumentationClickEvent{}, + }}, + nil + } return nil, trace.BadParameter("invalid event %s", req.Event) diff --git a/proto/prehog/v1alpha/teleport.proto b/proto/prehog/v1alpha/teleport.proto index 636b681a014..bdc6c2da7bd 100644 --- a/proto/prehog/v1alpha/teleport.proto +++ b/proto/prehog/v1alpha/teleport.proto @@ -272,6 +272,31 @@ message UIDiscoverCompletedEvent { DiscoverStepStatus status = 3; } +// RoleCreateEvent is emitted when user creates a custom role. +message RoleCreateEvent { + // anonymized + string user_name = 1; + // anonymized + string role_name = 2; +} + +message UICreateNewRoleClickEvent { + //anonymized + string user_name = 1; +} +message UICreateNewRoleSaveClickEvent { + //anonymized + string user_name = 1; +} +message UICreateNewRoleCancelClickEvent { + //anonymized + string user_name = 1; +} +message UICreateNewRoleViewDocumentationClickEvent { + //anonymized + string user_name = 1; +} + message SubmitEventRequest { // anonymized string cluster_name = 1; @@ -318,6 +343,13 @@ message SubmitEventRequest { UIDiscoverPrincipalsConfigureEvent ui_discover_principals_configure_event = 28; UIDiscoverTestConnectionEvent ui_discover_test_connection_event = 29; UIDiscoverCompletedEvent ui_discover_completed_event = 30; + + RoleCreateEvent role_create = 31; + + UICreateNewRoleClickEvent ui_create_new_role_click = 32; + UICreateNewRoleSaveClickEvent ui_create_new_role_save_click = 33; + UICreateNewRoleCancelClickEvent ui_create_new_role_cancel_click = 34; + UICreateNewRoleViewDocumentationClickEvent ui_create_new_role_view_documentation_click = 35; } reserved 8; // UIOnboardGetStartedClickEvent reserved "ui_onboard_get_started_click"; diff --git a/web/packages/teleport/src/Roles/Roles.tsx b/web/packages/teleport/src/Roles/Roles.tsx index ed56ac13673..b55e75c1eb5 100644 --- a/web/packages/teleport/src/Roles/Roles.tsx +++ b/web/packages/teleport/src/Roles/Roles.tsx @@ -16,7 +16,7 @@ limitations under the License. import React from 'react'; -import { Indicator, Flex, Box, ButtonPrimary, Text, Alert, Link } from 'design'; +import { Alert, Box, ButtonPrimary, Flex, Indicator, Link, Text } from 'design'; import { FeatureBox, @@ -26,10 +26,12 @@ import { import ResourceEditor from 'teleport/components/ResourceEditor'; import useResources from 'teleport/components/useResources'; import useTeleport from 'teleport/useTeleport'; +import { CaptureEvent, userEventService } from 'teleport/services/userEvent'; import RoleList from './RoleList'; import DeleteRole from './DeleteRole'; import useRoles, { State } from './useRoles'; + import templates from './templates'; export default function Container() { @@ -50,15 +52,19 @@ export function Roles(props: State) { return save(name, content, isNew); } + const handleCreate = () => { + resources.create('role'); + + userEventService.captureUserEvent({ + event: CaptureEvent.CreateNewRoleClickEvent, + }); + }; + return ( Roles - resources.create('role')} - > + CREATE NEW ROLE @@ -115,6 +121,7 @@ export function Roles(props: State) { onSave={handleSave} onClose={resources.disregard} directions={} + kind={resources.item.kind} /> )} {resources.status === 'removing' && ( diff --git a/web/packages/teleport/src/components/ResourceEditor/ResourceEditor.jsx b/web/packages/teleport/src/components/ResourceEditor/ResourceEditor.jsx index c92c77015f1..a2c26b63f90 100644 --- a/web/packages/teleport/src/components/ResourceEditor/ResourceEditor.jsx +++ b/web/packages/teleport/src/components/ResourceEditor/ResourceEditor.jsx @@ -18,18 +18,20 @@ import React from 'react'; import PropTypes from 'prop-types'; import Dialog, { DialogHeader, DialogTitle } from 'design/Dialog'; import { + Box, + ButtonOutlined, ButtonPrimary, ButtonSecondary, - ButtonOutlined, Flex, - Text, - Box, LabelInput, + Text, } from 'design'; import TextEditor from 'shared/components/TextEditor'; import * as Alerts from 'design/Alert'; import { useAttempt, useState } from 'shared/hooks'; +import { CaptureEvent, userEventService } from 'teleport/services/userEvent'; + export default function ResourceEditor(props) { const { title, @@ -39,13 +41,35 @@ export default function ResourceEditor(props) { docsURL = null, onClose, isNew, + kind = '', } = props; const { attempt, attemptActions, content, isDirty, setContent } = useEditor(text); + const roleResource = kind === 'role'; + const onSave = () => { - attemptActions.do(() => props.onSave(content)).then(() => onClose()); + attemptActions + .do(() => props.onSave(content)) + .then(() => { + if (roleResource) { + userEventService.captureUserEvent({ + event: CaptureEvent.CreateNewRoleSaveClickEvent, + }); + } + onClose(); + }); + }; + + const handleClose = () => { + if (roleResource) { + userEventService.captureUserEvent({ + event: CaptureEvent.CreateNewRoleCancelClickEvent, + }); + } + + onClose(); }; const isSaveDisabled = attempt.isProcessing || (!isDirty && !isNew); @@ -78,7 +102,10 @@ export default function ResourceEditor(props) { Save changes - + CANCEL @@ -108,6 +135,14 @@ export default function ResourceEditor(props) { target="_blank" width="100%" rel="noreferrer" + onClick={() => { + if (roleResource) { + userEventService.captureUserEvent({ + event: + CaptureEvent.CreateNewRoleViewDocumentationClickEvent, + }); + } + }} > VIEW DOCUMENTATION @@ -128,6 +163,7 @@ ResourceEditor.propTypes = { onClose: PropTypes.func.isRequired, isNew: PropTypes.bool.isRequired, directions: PropTypes.element, + kind: PropTypes.string, }; const dialogCss = () => ` diff --git a/web/packages/teleport/src/services/userEvent/types.ts b/web/packages/teleport/src/services/userEvent/types.ts index b77bd4c86aa..3a1deb7a75f 100644 --- a/web/packages/teleport/src/services/userEvent/types.ts +++ b/web/packages/teleport/src/services/userEvent/types.ts @@ -19,6 +19,10 @@ export enum CaptureEvent { BannerClickEvent = 'tp.ui.banner.click', OnboardAddFirstResourceClickEvent = 'tp.ui.onboard.addFirstResource.click', OnboardAddFirstResourceLaterClickEvent = 'tp.ui.onboard.addFirstResourceLater.click', + CreateNewRoleClickEvent = 'tp.ui.createNewRole.click', + CreateNewRoleSaveClickEvent = 'tp.ui.createNewRoleSave.click', + CreateNewRoleCancelClickEvent = 'tp.ui.createNewRoleCancel.click', + CreateNewRoleViewDocumentationClickEvent = 'tp.ui.createNewRoleViewDocumentation.click', // PreUserEvent types // these events are unauthenticated,