diff --git a/CHANGELOG.md b/CHANGELOG.md
index e85799ce..c65621db 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -357,4 +357,10 @@ Release 1.8.11
New Features:
#### resource/coralogix_dashboard
* Adding support for `markdown` and `horizonal_bar_chart` widgets.
-* Adding support for `color_scheme` and `sort_by` for `bar_chart`.
\ No newline at end of file
+* Adding support for `color_scheme` and `sort_by` for `bar_chart`.
+
+Release 1.9.0
+Breaking Changes:
+#### resource/coralogix_webhook
+* All webhook types changed from `TypeList` to `SingleNestedAttribute` e.g. - `slack { }` => `slack = { }`.
+* Linkage between webhook and alert was changed from webhook's `id` to webhook's `external_id`. e.g.- `integration_id = coralogix_webhook.slack_webhook.id` => `integration_id = coralogix_webhook.slack_webhook.external_id`
\ No newline at end of file
diff --git a/coralogix/clientset/grpc/webhooks/audit_log.pb.go b/coralogix/clientset/grpc/webhooks/audit_log.pb.go
new file mode 100644
index 00000000..e81ce41e
--- /dev/null
+++ b/coralogix/clientset/grpc/webhooks/audit_log.pb.go
@@ -0,0 +1,182 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.8
+// source: com/coralogix/outgoing_webhooks/v1/audit_log.proto
+
+package __
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ descriptorpb "google.golang.org/protobuf/types/descriptorpb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type AuditLogDescription struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
+}
+
+func (x *AuditLogDescription) Reset() {
+ *x = AuditLogDescription{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AuditLogDescription) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AuditLogDescription) ProtoMessage() {}
+
+func (x *AuditLogDescription) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AuditLogDescription.ProtoReflect.Descriptor instead.
+func (*AuditLogDescription) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *AuditLogDescription) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+var file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_extTypes = []protoimpl.ExtensionInfo{
+ {
+ ExtendedType: (*descriptorpb.MethodOptions)(nil),
+ ExtensionType: (*AuditLogDescription)(nil),
+ Field: 5005,
+ Name: "com.coralogix.outgoing_webhooks.v1.audit_log_description",
+ Tag: "bytes,5005,opt,name=audit_log_description",
+ Filename: "com/coralogix/outgoing_webhooks/v1/audit_log.proto",
+ },
+}
+
+// Extension fields to descriptorpb.MethodOptions.
+var (
+ // optional com.coralogix.outgoing_webhooks.v1.AuditLogDescription audit_log_description = 5005;
+ E_AuditLogDescription = &file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_extTypes[0]
+)
+
+var File_com_coralogix_outgoing_webhooks_v1_audit_log_proto protoreflect.FileDescriptor
+
+var file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDesc = []byte{
+ 0x0a, 0x32, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2f,
+ 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f,
+ 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4c, 0x0a, 0x13, 0x41, 0x75,
+ 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73,
+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x8f, 0x01, 0x0a, 0x15, 0x61, 0x75, 0x64,
+ 0x69, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x8d, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41,
+ 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x65, 0x73, 0x63,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x03, 0x5a, 0x01, 0x2e, 0x62,
+ 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescOnce sync.Once
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescData = file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDesc
+)
+
+func file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescGZIP() []byte {
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescOnce.Do(func() {
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescData)
+ })
+ return file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDescData
+}
+
+var file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_goTypes = []interface{}{
+ (*AuditLogDescription)(nil), // 0: com.coralogix.outgoing_webhooks.v1.AuditLogDescription
+ (*descriptorpb.MethodOptions)(nil), // 1: google.protobuf.MethodOptions
+}
+var file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_depIdxs = []int32{
+ 1, // 0: com.coralogix.outgoing_webhooks.v1.audit_log_description:extendee -> google.protobuf.MethodOptions
+ 0, // 1: com.coralogix.outgoing_webhooks.v1.audit_log_description:type_name -> com.coralogix.outgoing_webhooks.v1.AuditLogDescription
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 1, // [1:2] is the sub-list for extension type_name
+ 0, // [0:1] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_init() }
+func file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_init() {
+ if File_com_coralogix_outgoing_webhooks_v1_audit_log_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AuditLogDescription); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_msgTypes[0].OneofWrappers = []interface{}{}
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 1,
+ NumServices: 0,
+ },
+ GoTypes: file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_goTypes,
+ DependencyIndexes: file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_depIdxs,
+ MessageInfos: file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_msgTypes,
+ ExtensionInfos: file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_extTypes,
+ }.Build()
+ File_com_coralogix_outgoing_webhooks_v1_audit_log_proto = out.File
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_rawDesc = nil
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_goTypes = nil
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_depIdxs = nil
+}
diff --git a/coralogix/clientset/grpc/webhooks/outgoing_webhook.pb.go b/coralogix/clientset/grpc/webhooks/outgoing_webhook.pb.go
new file mode 100644
index 00000000..638ee158
--- /dev/null
+++ b/coralogix/clientset/grpc/webhooks/outgoing_webhook.pb.go
@@ -0,0 +1,2021 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.8
+// source: com/coralogix/outgoing_webhooks/v1/outgoing_webhook.proto
+
+package __
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type WebhookType int32
+
+const (
+ WebhookType_UNKNOWN WebhookType = 0
+ WebhookType_GENERIC WebhookType = 1
+ WebhookType_SLACK WebhookType = 2
+ WebhookType_PAGERDUTY WebhookType = 3
+ WebhookType_SEND_LOG WebhookType = 4
+ WebhookType_EMAIL_GROUP WebhookType = 5
+ WebhookType_MICROSOFT_TEAMS WebhookType = 6
+ WebhookType_JIRA WebhookType = 7
+ WebhookType_OPSGENIE WebhookType = 8
+ WebhookType_DEMISTO WebhookType = 9
+)
+
+// Enum value maps for WebhookType.
+var (
+ WebhookType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "GENERIC",
+ 2: "SLACK",
+ 3: "PAGERDUTY",
+ 4: "SEND_LOG",
+ 5: "EMAIL_GROUP",
+ 6: "MICROSOFT_TEAMS",
+ 7: "JIRA",
+ 8: "OPSGENIE",
+ 9: "DEMISTO",
+ }
+ WebhookType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "GENERIC": 1,
+ "SLACK": 2,
+ "PAGERDUTY": 3,
+ "SEND_LOG": 4,
+ "EMAIL_GROUP": 5,
+ "MICROSOFT_TEAMS": 6,
+ "JIRA": 7,
+ "OPSGENIE": 8,
+ "DEMISTO": 9,
+ }
+)
+
+func (x WebhookType) Enum() *WebhookType {
+ p := new(WebhookType)
+ *p = x
+ return p
+}
+
+func (x WebhookType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (WebhookType) Descriptor() protoreflect.EnumDescriptor {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes[0].Descriptor()
+}
+
+func (WebhookType) Type() protoreflect.EnumType {
+ return &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes[0]
+}
+
+func (x WebhookType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use WebhookType.Descriptor instead.
+func (WebhookType) EnumDescriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{0}
+}
+
+type GenericWebhookConfig_MethodType int32
+
+const (
+ GenericWebhookConfig_UNKNOWN GenericWebhookConfig_MethodType = 0
+ GenericWebhookConfig_GET GenericWebhookConfig_MethodType = 1
+ GenericWebhookConfig_POST GenericWebhookConfig_MethodType = 2
+ GenericWebhookConfig_PUT GenericWebhookConfig_MethodType = 3
+)
+
+// Enum value maps for GenericWebhookConfig_MethodType.
+var (
+ GenericWebhookConfig_MethodType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "GET",
+ 2: "POST",
+ 3: "PUT",
+ }
+ GenericWebhookConfig_MethodType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "GET": 1,
+ "POST": 2,
+ "PUT": 3,
+ }
+)
+
+func (x GenericWebhookConfig_MethodType) Enum() *GenericWebhookConfig_MethodType {
+ p := new(GenericWebhookConfig_MethodType)
+ *p = x
+ return p
+}
+
+func (x GenericWebhookConfig_MethodType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (GenericWebhookConfig_MethodType) Descriptor() protoreflect.EnumDescriptor {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes[1].Descriptor()
+}
+
+func (GenericWebhookConfig_MethodType) Type() protoreflect.EnumType {
+ return &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes[1]
+}
+
+func (x GenericWebhookConfig_MethodType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GenericWebhookConfig_MethodType.Descriptor instead.
+func (GenericWebhookConfig_MethodType) EnumDescriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{0, 0}
+}
+
+type SlackConfig_DigestType int32
+
+const (
+ SlackConfig_UNKNOWN SlackConfig_DigestType = 0
+ SlackConfig_ERROR_AND_CRITICAL_LOGS SlackConfig_DigestType = 1
+ SlackConfig_FLOW_ANOMALIES SlackConfig_DigestType = 2
+ SlackConfig_SPIKE_ANOMALIES SlackConfig_DigestType = 3
+ SlackConfig_DATA_USAGE SlackConfig_DigestType = 4
+)
+
+// Enum value maps for SlackConfig_DigestType.
+var (
+ SlackConfig_DigestType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "ERROR_AND_CRITICAL_LOGS",
+ 2: "FLOW_ANOMALIES",
+ 3: "SPIKE_ANOMALIES",
+ 4: "DATA_USAGE",
+ }
+ SlackConfig_DigestType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "ERROR_AND_CRITICAL_LOGS": 1,
+ "FLOW_ANOMALIES": 2,
+ "SPIKE_ANOMALIES": 3,
+ "DATA_USAGE": 4,
+ }
+)
+
+func (x SlackConfig_DigestType) Enum() *SlackConfig_DigestType {
+ p := new(SlackConfig_DigestType)
+ *p = x
+ return p
+}
+
+func (x SlackConfig_DigestType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SlackConfig_DigestType) Descriptor() protoreflect.EnumDescriptor {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes[2].Descriptor()
+}
+
+func (SlackConfig_DigestType) Type() protoreflect.EnumType {
+ return &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes[2]
+}
+
+func (x SlackConfig_DigestType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SlackConfig_DigestType.Descriptor instead.
+func (SlackConfig_DigestType) EnumDescriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{1, 0}
+}
+
+type GenericWebhookConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uuid *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ Method GenericWebhookConfig_MethodType `protobuf:"varint,2,opt,name=method,proto3,enum=com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig_MethodType" json:"method,omitempty"`
+ Headers map[string]string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ Payload *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
+}
+
+func (x *GenericWebhookConfig) Reset() {
+ *x = GenericWebhookConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GenericWebhookConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GenericWebhookConfig) ProtoMessage() {}
+
+func (x *GenericWebhookConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GenericWebhookConfig.ProtoReflect.Descriptor instead.
+func (*GenericWebhookConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *GenericWebhookConfig) GetUuid() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Uuid
+ }
+ return nil
+}
+
+func (x *GenericWebhookConfig) GetMethod() GenericWebhookConfig_MethodType {
+ if x != nil {
+ return x.Method
+ }
+ return GenericWebhookConfig_UNKNOWN
+}
+
+func (x *GenericWebhookConfig) GetHeaders() map[string]string {
+ if x != nil {
+ return x.Headers
+ }
+ return nil
+}
+
+func (x *GenericWebhookConfig) GetPayload() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Payload
+ }
+ return nil
+}
+
+type SlackConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Digests []*SlackConfig_Digest `protobuf:"bytes,1,rep,name=digests,proto3" json:"digests,omitempty"`
+}
+
+func (x *SlackConfig) Reset() {
+ *x = SlackConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SlackConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SlackConfig) ProtoMessage() {}
+
+func (x *SlackConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SlackConfig.ProtoReflect.Descriptor instead.
+func (*SlackConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *SlackConfig) GetDigests() []*SlackConfig_Digest {
+ if x != nil {
+ return x.Digests
+ }
+ return nil
+}
+
+type PagerDutyConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServiceKey *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=service_key,json=serviceKey,proto3" json:"service_key,omitempty"`
+}
+
+func (x *PagerDutyConfig) Reset() {
+ *x = PagerDutyConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PagerDutyConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PagerDutyConfig) ProtoMessage() {}
+
+func (x *PagerDutyConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PagerDutyConfig.ProtoReflect.Descriptor instead.
+func (*PagerDutyConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *PagerDutyConfig) GetServiceKey() *wrapperspb.StringValue {
+ if x != nil {
+ return x.ServiceKey
+ }
+ return nil
+}
+
+type SendLogConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uuid *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ Payload *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+}
+
+func (x *SendLogConfig) Reset() {
+ *x = SendLogConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SendLogConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SendLogConfig) ProtoMessage() {}
+
+func (x *SendLogConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SendLogConfig.ProtoReflect.Descriptor instead.
+func (*SendLogConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *SendLogConfig) GetUuid() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Uuid
+ }
+ return nil
+}
+
+func (x *SendLogConfig) GetPayload() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Payload
+ }
+ return nil
+}
+
+type EmailGroupConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ EmailAddresses []*wrapperspb.StringValue `protobuf:"bytes,1,rep,name=email_addresses,json=emailAddresses,proto3" json:"email_addresses,omitempty"`
+}
+
+func (x *EmailGroupConfig) Reset() {
+ *x = EmailGroupConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EmailGroupConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EmailGroupConfig) ProtoMessage() {}
+
+func (x *EmailGroupConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EmailGroupConfig.ProtoReflect.Descriptor instead.
+func (*EmailGroupConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *EmailGroupConfig) GetEmailAddresses() []*wrapperspb.StringValue {
+ if x != nil {
+ return x.EmailAddresses
+ }
+ return nil
+}
+
+type MicrosoftTeamsConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *MicrosoftTeamsConfig) Reset() {
+ *x = MicrosoftTeamsConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MicrosoftTeamsConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MicrosoftTeamsConfig) ProtoMessage() {}
+
+func (x *MicrosoftTeamsConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MicrosoftTeamsConfig.ProtoReflect.Descriptor instead.
+func (*MicrosoftTeamsConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{5}
+}
+
+type JiraConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ApiToken *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=api_token,json=apiToken,proto3" json:"api_token,omitempty"`
+ Email *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
+ ProjectKey *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=project_key,json=projectKey,proto3" json:"project_key,omitempty"`
+}
+
+func (x *JiraConfig) Reset() {
+ *x = JiraConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *JiraConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JiraConfig) ProtoMessage() {}
+
+func (x *JiraConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use JiraConfig.ProtoReflect.Descriptor instead.
+func (*JiraConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *JiraConfig) GetApiToken() *wrapperspb.StringValue {
+ if x != nil {
+ return x.ApiToken
+ }
+ return nil
+}
+
+func (x *JiraConfig) GetEmail() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Email
+ }
+ return nil
+}
+
+func (x *JiraConfig) GetProjectKey() *wrapperspb.StringValue {
+ if x != nil {
+ return x.ProjectKey
+ }
+ return nil
+}
+
+type OpsgenieConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *OpsgenieConfig) Reset() {
+ *x = OpsgenieConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OpsgenieConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OpsgenieConfig) ProtoMessage() {}
+
+func (x *OpsgenieConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OpsgenieConfig.ProtoReflect.Descriptor instead.
+func (*OpsgenieConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{7}
+}
+
+type DemistoConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uuid *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ Payload *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+}
+
+func (x *DemistoConfig) Reset() {
+ *x = DemistoConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DemistoConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DemistoConfig) ProtoMessage() {}
+
+func (x *DemistoConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DemistoConfig.ProtoReflect.Descriptor instead.
+func (*DemistoConfig) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *DemistoConfig) GetUuid() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Uuid
+ }
+ return nil
+}
+
+func (x *DemistoConfig) GetPayload() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Payload
+ }
+ return nil
+}
+
+type OutgoingWebhook struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Type WebhookType `protobuf:"varint,2,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+ Name *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+ Url *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ ExternalId *wrapperspb.UInt32Value `protobuf:"bytes,7,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
+ // Types that are assignable to Config:
+ // *OutgoingWebhook_GenericWebhook
+ // *OutgoingWebhook_Slack
+ // *OutgoingWebhook_PagerDuty
+ // *OutgoingWebhook_SendLog
+ // *OutgoingWebhook_EmailGroup
+ // *OutgoingWebhook_MicrosoftTeams
+ // *OutgoingWebhook_Jira
+ // *OutgoingWebhook_Opsgenie
+ // *OutgoingWebhook_Demisto
+ Config isOutgoingWebhook_Config `protobuf_oneof:"config"`
+}
+
+func (x *OutgoingWebhook) Reset() {
+ *x = OutgoingWebhook{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutgoingWebhook) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutgoingWebhook) ProtoMessage() {}
+
+func (x *OutgoingWebhook) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutgoingWebhook.ProtoReflect.Descriptor instead.
+func (*OutgoingWebhook) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *OutgoingWebhook) GetId() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+func (x *OutgoingWebhook) GetName() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Name
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetUrl() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Url
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetUpdatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetExternalId() *wrapperspb.UInt32Value {
+ if x != nil {
+ return x.ExternalId
+ }
+ return nil
+}
+
+func (m *OutgoingWebhook) GetConfig() isOutgoingWebhook_Config {
+ if m != nil {
+ return m.Config
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetGenericWebhook() *GenericWebhookConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_GenericWebhook); ok {
+ return x.GenericWebhook
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetSlack() *SlackConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_Slack); ok {
+ return x.Slack
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetPagerDuty() *PagerDutyConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_PagerDuty); ok {
+ return x.PagerDuty
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetSendLog() *SendLogConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_SendLog); ok {
+ return x.SendLog
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetEmailGroup() *EmailGroupConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_EmailGroup); ok {
+ return x.EmailGroup
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetMicrosoftTeams() *MicrosoftTeamsConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_MicrosoftTeams); ok {
+ return x.MicrosoftTeams
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetJira() *JiraConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_Jira); ok {
+ return x.Jira
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetOpsgenie() *OpsgenieConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_Opsgenie); ok {
+ return x.Opsgenie
+ }
+ return nil
+}
+
+func (x *OutgoingWebhook) GetDemisto() *DemistoConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhook_Demisto); ok {
+ return x.Demisto
+ }
+ return nil
+}
+
+type isOutgoingWebhook_Config interface {
+ isOutgoingWebhook_Config()
+}
+
+type OutgoingWebhook_GenericWebhook struct {
+ GenericWebhook *GenericWebhookConfig `protobuf:"bytes,100,opt,name=generic_webhook,json=genericWebhook,proto3,oneof"`
+}
+
+type OutgoingWebhook_Slack struct {
+ Slack *SlackConfig `protobuf:"bytes,101,opt,name=slack,proto3,oneof"`
+}
+
+type OutgoingWebhook_PagerDuty struct {
+ PagerDuty *PagerDutyConfig `protobuf:"bytes,102,opt,name=pager_duty,json=pagerDuty,proto3,oneof"`
+}
+
+type OutgoingWebhook_SendLog struct {
+ SendLog *SendLogConfig `protobuf:"bytes,103,opt,name=send_log,json=sendLog,proto3,oneof"`
+}
+
+type OutgoingWebhook_EmailGroup struct {
+ EmailGroup *EmailGroupConfig `protobuf:"bytes,104,opt,name=email_group,json=emailGroup,proto3,oneof"`
+}
+
+type OutgoingWebhook_MicrosoftTeams struct {
+ MicrosoftTeams *MicrosoftTeamsConfig `protobuf:"bytes,105,opt,name=microsoft_teams,json=microsoftTeams,proto3,oneof"`
+}
+
+type OutgoingWebhook_Jira struct {
+ Jira *JiraConfig `protobuf:"bytes,106,opt,name=jira,proto3,oneof"`
+}
+
+type OutgoingWebhook_Opsgenie struct {
+ Opsgenie *OpsgenieConfig `protobuf:"bytes,107,opt,name=opsgenie,proto3,oneof"`
+}
+
+type OutgoingWebhook_Demisto struct {
+ Demisto *DemistoConfig `protobuf:"bytes,108,opt,name=demisto,proto3,oneof"`
+}
+
+func (*OutgoingWebhook_GenericWebhook) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_Slack) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_PagerDuty) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_SendLog) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_EmailGroup) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_MicrosoftTeams) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_Jira) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_Opsgenie) isOutgoingWebhook_Config() {}
+
+func (*OutgoingWebhook_Demisto) isOutgoingWebhook_Config() {}
+
+type OutgoingWebhookInputData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type WebhookType `protobuf:"varint,1,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+ Name *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Url *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
+ // Types that are assignable to Config:
+ // *OutgoingWebhookInputData_GenericWebhook
+ // *OutgoingWebhookInputData_Slack
+ // *OutgoingWebhookInputData_PagerDuty
+ // *OutgoingWebhookInputData_SendLog
+ // *OutgoingWebhookInputData_EmailGroup
+ // *OutgoingWebhookInputData_MicrosoftTeams
+ // *OutgoingWebhookInputData_Jira
+ // *OutgoingWebhookInputData_Opsgenie
+ // *OutgoingWebhookInputData_Demisto
+ Config isOutgoingWebhookInputData_Config `protobuf_oneof:"config"`
+}
+
+func (x *OutgoingWebhookInputData) Reset() {
+ *x = OutgoingWebhookInputData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutgoingWebhookInputData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutgoingWebhookInputData) ProtoMessage() {}
+
+func (x *OutgoingWebhookInputData) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutgoingWebhookInputData.ProtoReflect.Descriptor instead.
+func (*OutgoingWebhookInputData) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *OutgoingWebhookInputData) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+func (x *OutgoingWebhookInputData) GetName() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Name
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetUrl() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Url
+ }
+ return nil
+}
+
+func (m *OutgoingWebhookInputData) GetConfig() isOutgoingWebhookInputData_Config {
+ if m != nil {
+ return m.Config
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetGenericWebhook() *GenericWebhookConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_GenericWebhook); ok {
+ return x.GenericWebhook
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetSlack() *SlackConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_Slack); ok {
+ return x.Slack
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetPagerDuty() *PagerDutyConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_PagerDuty); ok {
+ return x.PagerDuty
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetSendLog() *SendLogConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_SendLog); ok {
+ return x.SendLog
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetEmailGroup() *EmailGroupConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_EmailGroup); ok {
+ return x.EmailGroup
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetMicrosoftTeams() *MicrosoftTeamsConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_MicrosoftTeams); ok {
+ return x.MicrosoftTeams
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetJira() *JiraConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_Jira); ok {
+ return x.Jira
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetOpsgenie() *OpsgenieConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_Opsgenie); ok {
+ return x.Opsgenie
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookInputData) GetDemisto() *DemistoConfig {
+ if x, ok := x.GetConfig().(*OutgoingWebhookInputData_Demisto); ok {
+ return x.Demisto
+ }
+ return nil
+}
+
+type isOutgoingWebhookInputData_Config interface {
+ isOutgoingWebhookInputData_Config()
+}
+
+type OutgoingWebhookInputData_GenericWebhook struct {
+ GenericWebhook *GenericWebhookConfig `protobuf:"bytes,100,opt,name=generic_webhook,json=genericWebhook,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_Slack struct {
+ Slack *SlackConfig `protobuf:"bytes,101,opt,name=slack,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_PagerDuty struct {
+ PagerDuty *PagerDutyConfig `protobuf:"bytes,102,opt,name=pager_duty,json=pagerDuty,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_SendLog struct {
+ SendLog *SendLogConfig `protobuf:"bytes,103,opt,name=send_log,json=sendLog,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_EmailGroup struct {
+ EmailGroup *EmailGroupConfig `protobuf:"bytes,104,opt,name=email_group,json=emailGroup,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_MicrosoftTeams struct {
+ MicrosoftTeams *MicrosoftTeamsConfig `protobuf:"bytes,105,opt,name=microsoft_teams,json=microsoftTeams,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_Jira struct {
+ Jira *JiraConfig `protobuf:"bytes,106,opt,name=jira,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_Opsgenie struct {
+ Opsgenie *OpsgenieConfig `protobuf:"bytes,107,opt,name=opsgenie,proto3,oneof"`
+}
+
+type OutgoingWebhookInputData_Demisto struct {
+ Demisto *DemistoConfig `protobuf:"bytes,108,opt,name=demisto,proto3,oneof"`
+}
+
+func (*OutgoingWebhookInputData_GenericWebhook) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_Slack) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_PagerDuty) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_SendLog) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_EmailGroup) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_MicrosoftTeams) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_Jira) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_Opsgenie) isOutgoingWebhookInputData_Config() {}
+
+func (*OutgoingWebhookInputData_Demisto) isOutgoingWebhookInputData_Config() {}
+
+type OutgoingWebhookSummary struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Name *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Url *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+}
+
+func (x *OutgoingWebhookSummary) Reset() {
+ *x = OutgoingWebhookSummary{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutgoingWebhookSummary) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutgoingWebhookSummary) ProtoMessage() {}
+
+func (x *OutgoingWebhookSummary) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutgoingWebhookSummary.ProtoReflect.Descriptor instead.
+func (*OutgoingWebhookSummary) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *OutgoingWebhookSummary) GetId() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookSummary) GetName() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Name
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookSummary) GetUrl() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Url
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookSummary) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookSummary) GetUpdatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return nil
+}
+
+type OutgoingWebhookExtendedSummary struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Type WebhookType `protobuf:"varint,2,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+ Name *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+ Url *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
+ CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ ExternalId *wrapperspb.UInt32Value `protobuf:"bytes,7,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
+}
+
+func (x *OutgoingWebhookExtendedSummary) Reset() {
+ *x = OutgoingWebhookExtendedSummary{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutgoingWebhookExtendedSummary) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutgoingWebhookExtendedSummary) ProtoMessage() {}
+
+func (x *OutgoingWebhookExtendedSummary) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutgoingWebhookExtendedSummary.ProtoReflect.Descriptor instead.
+func (*OutgoingWebhookExtendedSummary) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetId() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetName() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Name
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetUrl() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Url
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetCreatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetUpdatedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return nil
+}
+
+func (x *OutgoingWebhookExtendedSummary) GetExternalId() *wrapperspb.UInt32Value {
+ if x != nil {
+ return x.ExternalId
+ }
+ return nil
+}
+
+type OutgoingWebhookDetails struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type WebhookType `protobuf:"varint,1,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+ Label *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
+}
+
+func (x *OutgoingWebhookDetails) Reset() {
+ *x = OutgoingWebhookDetails{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutgoingWebhookDetails) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutgoingWebhookDetails) ProtoMessage() {}
+
+func (x *OutgoingWebhookDetails) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutgoingWebhookDetails.ProtoReflect.Descriptor instead.
+func (*OutgoingWebhookDetails) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *OutgoingWebhookDetails) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+func (x *OutgoingWebhookDetails) GetLabel() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Label
+ }
+ return nil
+}
+
+type SlackConfig_Digest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type SlackConfig_DigestType `protobuf:"varint,1,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.SlackConfig_DigestType" json:"type,omitempty"`
+ IsActive *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
+}
+
+func (x *SlackConfig_Digest) Reset() {
+ *x = SlackConfig_Digest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SlackConfig_Digest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SlackConfig_Digest) ProtoMessage() {}
+
+func (x *SlackConfig_Digest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SlackConfig_Digest.ProtoReflect.Descriptor instead.
+func (*SlackConfig_Digest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *SlackConfig_Digest) GetType() SlackConfig_DigestType {
+ if x != nil {
+ return x.Type
+ }
+ return SlackConfig_UNKNOWN
+}
+
+func (x *SlackConfig_Digest) GetIsActive() *wrapperspb.BoolValue {
+ if x != nil {
+ return x.IsActive
+ }
+ return nil
+}
+
+var File_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto protoreflect.FileDescriptor
+
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDesc = []byte{
+ 0x0a, 0x39, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2f,
+ 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x1a,
+ 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0xb1, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x57, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x75, 0x75, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x5b, 0x0a, 0x06, 0x6d,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31,
+ 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x5f, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64,
+ 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47,
+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x61, 0x79,
+ 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
+ 0x64, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x35, 0x0a,
+ 0x0a, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55,
+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10,
+ 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x50,
+ 0x55, 0x54, 0x10, 0x03, 0x22, 0xe4, 0x02, 0x0a, 0x0b, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61,
+ 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x07, 0x64,
+ 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73,
+ 0x74, 0x12, 0x4e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e,
+ 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x37, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x6f, 0x0a, 0x0a, 0x44, 0x69,
+ 0x67, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x41,
+ 0x4e, 0x44, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x47, 0x53,
+ 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x41, 0x4e, 0x4f, 0x4d, 0x41,
+ 0x4c, 0x49, 0x45, 0x53, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x50, 0x49, 0x4b, 0x45, 0x5f,
+ 0x41, 0x4e, 0x4f, 0x4d, 0x41, 0x4c, 0x49, 0x45, 0x53, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x44,
+ 0x41, 0x54, 0x41, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x22, 0x50, 0x0a, 0x0f, 0x50,
+ 0x61, 0x67, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3d,
+ 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x79, 0x0a,
+ 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30,
+ 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
+ 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64,
+ 0x12, 0x36, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x59, 0x0a, 0x10, 0x45, 0x6d, 0x61, 0x69,
+ 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x0f,
+ 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+ 0x54, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xba, 0x01, 0x0a, 0x0a,
+ 0x4a, 0x69, 0x72, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x70,
+ 0x69, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x70, 0x69,
+ 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3d, 0x0a, 0x0b, 0x70, 0x72, 0x6f,
+ 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72,
+ 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x10, 0x0a, 0x0e, 0x4f, 0x70, 0x73, 0x67,
+ 0x65, 0x6e, 0x69, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x79, 0x0a, 0x0d, 0x44, 0x65,
+ 0x6d, 0x69, 0x73, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x75,
+ 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x36, 0x0a,
+ 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x61,
+ 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9e, 0x09, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61,
+ 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e,
+ 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
+ 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39,
+ 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+ 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74,
+ 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
+ 0x6c, 0x49, 0x64, 0x12, 0x63, 0x0a, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76,
+ 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69,
+ 0x63, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x6c, 0x61, 0x63,
+ 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f,
+ 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6c, 0x61,
+ 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x73, 0x6c, 0x61, 0x63,
+ 0x6b, 0x12, 0x54, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18,
+ 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61,
+ 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72,
+ 0x44, 0x75, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61,
+ 0x67, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x5f,
+ 0x6c, 0x6f, 0x67, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53,
+ 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07,
+ 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x57, 0x0a, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c,
+ 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76,
+ 0x31, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70,
+ 0x12, 0x63, 0x0a, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x74, 0x65,
+ 0x61, 0x6d, 0x73, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
+ 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+ 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x04, 0x6a, 0x69, 0x72, 0x61, 0x18, 0x6a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f,
+ 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x69, 0x72, 0x61, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x69, 0x72, 0x61, 0x12, 0x50, 0x0a, 0x08, 0x6f,
+ 0x70, 0x73, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e,
+ 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x73, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, 0x73, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x12, 0x4d, 0x0a,
+ 0x07, 0x64, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x6f, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xc4, 0x07, 0x0a, 0x18, 0x4f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44,
+ 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69,
+ 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x75, 0x72,
+ 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x63, 0x0a, 0x0f, 0x67, 0x65,
+ 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x64, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f,
+ 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63,
+ 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
+ 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12,
+ 0x47, 0x0a, 0x05, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
+ 0x00, 0x52, 0x05, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x54, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65,
+ 0x72, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76,
+ 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x12, 0x4e,
+ 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78,
+ 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x57,
+ 0x0a, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x68, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f,
+ 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x47, 0x72,
+ 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x6d, 0x61,
+ 0x69, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x63, 0x0a, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f,
+ 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78,
+ 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x54,
+ 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x69,
+ 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x04,
+ 0x6a, 0x69, 0x72, 0x61, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e,
+ 0x4a, 0x69, 0x72, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x69,
+ 0x72, 0x61, 0x12, 0x50, 0x0a, 0x08, 0x6f, 0x70, 0x73, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x18, 0x6b,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c,
+ 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x73, 0x67, 0x65, 0x6e,
+ 0x69, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, 0x73, 0x67,
+ 0x65, 0x6e, 0x69, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x64, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x6f, 0x18,
+ 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61,
+ 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6d, 0x69, 0x73,
+ 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x6d, 0x69,
+ 0x73, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x9e, 0x02,
+ 0x0a, 0x16, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xaa,
+ 0x03, 0x0a, 0x1e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
+ 0x79, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12,
+ 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e,
+ 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
+ 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0b,
+ 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x16,
+ 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c,
+ 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2a,
+ 0x9a, 0x01, 0x0a, 0x0b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
+ 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x4c, 0x41,
+ 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x41, 0x47, 0x45, 0x52, 0x44, 0x55, 0x54,
+ 0x59, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x4c, 0x4f, 0x47, 0x10,
+ 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50,
+ 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x53, 0x4f, 0x46, 0x54, 0x5f,
+ 0x54, 0x45, 0x41, 0x4d, 0x53, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x49, 0x52, 0x41, 0x10,
+ 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x53, 0x47, 0x45, 0x4e, 0x49, 0x45, 0x10, 0x08, 0x12,
+ 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4d, 0x49, 0x53, 0x54, 0x4f, 0x10, 0x09, 0x42, 0x03, 0x5a, 0x01,
+ 0x2e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescOnce sync.Once
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescData = file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDesc
+)
+
+func file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescGZIP() []byte {
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescOnce.Do(func() {
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescData = protoimpl.X.CompressGZIP(file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescData)
+ })
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDescData
+}
+
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_goTypes = []interface{}{
+ (WebhookType)(0), // 0: com.coralogix.outgoing_webhooks.v1.WebhookType
+ (GenericWebhookConfig_MethodType)(0), // 1: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.MethodType
+ (SlackConfig_DigestType)(0), // 2: com.coralogix.outgoing_webhooks.v1.SlackConfig.DigestType
+ (*GenericWebhookConfig)(nil), // 3: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig
+ (*SlackConfig)(nil), // 4: com.coralogix.outgoing_webhooks.v1.SlackConfig
+ (*PagerDutyConfig)(nil), // 5: com.coralogix.outgoing_webhooks.v1.PagerDutyConfig
+ (*SendLogConfig)(nil), // 6: com.coralogix.outgoing_webhooks.v1.SendLogConfig
+ (*EmailGroupConfig)(nil), // 7: com.coralogix.outgoing_webhooks.v1.EmailGroupConfig
+ (*MicrosoftTeamsConfig)(nil), // 8: com.coralogix.outgoing_webhooks.v1.MicrosoftTeamsConfig
+ (*JiraConfig)(nil), // 9: com.coralogix.outgoing_webhooks.v1.JiraConfig
+ (*OpsgenieConfig)(nil), // 10: com.coralogix.outgoing_webhooks.v1.OpsgenieConfig
+ (*DemistoConfig)(nil), // 11: com.coralogix.outgoing_webhooks.v1.DemistoConfig
+ (*OutgoingWebhook)(nil), // 12: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook
+ (*OutgoingWebhookInputData)(nil), // 13: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData
+ (*OutgoingWebhookSummary)(nil), // 14: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary
+ (*OutgoingWebhookExtendedSummary)(nil), // 15: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary
+ (*OutgoingWebhookDetails)(nil), // 16: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookDetails
+ nil, // 17: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.HeadersEntry
+ (*SlackConfig_Digest)(nil), // 18: com.coralogix.outgoing_webhooks.v1.SlackConfig.Digest
+ (*wrapperspb.StringValue)(nil), // 19: google.protobuf.StringValue
+ (*timestamppb.Timestamp)(nil), // 20: google.protobuf.Timestamp
+ (*wrapperspb.UInt32Value)(nil), // 21: google.protobuf.UInt32Value
+ (*wrapperspb.BoolValue)(nil), // 22: google.protobuf.BoolValue
+}
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_depIdxs = []int32{
+ 19, // 0: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.uuid:type_name -> google.protobuf.StringValue
+ 1, // 1: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.method:type_name -> com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.MethodType
+ 17, // 2: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.headers:type_name -> com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.HeadersEntry
+ 19, // 3: com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig.payload:type_name -> google.protobuf.StringValue
+ 18, // 4: com.coralogix.outgoing_webhooks.v1.SlackConfig.digests:type_name -> com.coralogix.outgoing_webhooks.v1.SlackConfig.Digest
+ 19, // 5: com.coralogix.outgoing_webhooks.v1.PagerDutyConfig.service_key:type_name -> google.protobuf.StringValue
+ 19, // 6: com.coralogix.outgoing_webhooks.v1.SendLogConfig.uuid:type_name -> google.protobuf.StringValue
+ 19, // 7: com.coralogix.outgoing_webhooks.v1.SendLogConfig.payload:type_name -> google.protobuf.StringValue
+ 19, // 8: com.coralogix.outgoing_webhooks.v1.EmailGroupConfig.email_addresses:type_name -> google.protobuf.StringValue
+ 19, // 9: com.coralogix.outgoing_webhooks.v1.JiraConfig.api_token:type_name -> google.protobuf.StringValue
+ 19, // 10: com.coralogix.outgoing_webhooks.v1.JiraConfig.email:type_name -> google.protobuf.StringValue
+ 19, // 11: com.coralogix.outgoing_webhooks.v1.JiraConfig.project_key:type_name -> google.protobuf.StringValue
+ 19, // 12: com.coralogix.outgoing_webhooks.v1.DemistoConfig.uuid:type_name -> google.protobuf.StringValue
+ 19, // 13: com.coralogix.outgoing_webhooks.v1.DemistoConfig.payload:type_name -> google.protobuf.StringValue
+ 19, // 14: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.id:type_name -> google.protobuf.StringValue
+ 0, // 15: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 19, // 16: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.name:type_name -> google.protobuf.StringValue
+ 19, // 17: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.url:type_name -> google.protobuf.StringValue
+ 20, // 18: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.created_at:type_name -> google.protobuf.Timestamp
+ 20, // 19: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.updated_at:type_name -> google.protobuf.Timestamp
+ 21, // 20: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.external_id:type_name -> google.protobuf.UInt32Value
+ 3, // 21: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.generic_webhook:type_name -> com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig
+ 4, // 22: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.slack:type_name -> com.coralogix.outgoing_webhooks.v1.SlackConfig
+ 5, // 23: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.pager_duty:type_name -> com.coralogix.outgoing_webhooks.v1.PagerDutyConfig
+ 6, // 24: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.send_log:type_name -> com.coralogix.outgoing_webhooks.v1.SendLogConfig
+ 7, // 25: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.email_group:type_name -> com.coralogix.outgoing_webhooks.v1.EmailGroupConfig
+ 8, // 26: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.microsoft_teams:type_name -> com.coralogix.outgoing_webhooks.v1.MicrosoftTeamsConfig
+ 9, // 27: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.jira:type_name -> com.coralogix.outgoing_webhooks.v1.JiraConfig
+ 10, // 28: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.opsgenie:type_name -> com.coralogix.outgoing_webhooks.v1.OpsgenieConfig
+ 11, // 29: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook.demisto:type_name -> com.coralogix.outgoing_webhooks.v1.DemistoConfig
+ 0, // 30: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 19, // 31: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.name:type_name -> google.protobuf.StringValue
+ 19, // 32: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.url:type_name -> google.protobuf.StringValue
+ 3, // 33: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.generic_webhook:type_name -> com.coralogix.outgoing_webhooks.v1.GenericWebhookConfig
+ 4, // 34: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.slack:type_name -> com.coralogix.outgoing_webhooks.v1.SlackConfig
+ 5, // 35: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.pager_duty:type_name -> com.coralogix.outgoing_webhooks.v1.PagerDutyConfig
+ 6, // 36: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.send_log:type_name -> com.coralogix.outgoing_webhooks.v1.SendLogConfig
+ 7, // 37: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.email_group:type_name -> com.coralogix.outgoing_webhooks.v1.EmailGroupConfig
+ 8, // 38: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.microsoft_teams:type_name -> com.coralogix.outgoing_webhooks.v1.MicrosoftTeamsConfig
+ 9, // 39: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.jira:type_name -> com.coralogix.outgoing_webhooks.v1.JiraConfig
+ 10, // 40: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.opsgenie:type_name -> com.coralogix.outgoing_webhooks.v1.OpsgenieConfig
+ 11, // 41: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData.demisto:type_name -> com.coralogix.outgoing_webhooks.v1.DemistoConfig
+ 19, // 42: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary.id:type_name -> google.protobuf.StringValue
+ 19, // 43: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary.name:type_name -> google.protobuf.StringValue
+ 19, // 44: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary.url:type_name -> google.protobuf.StringValue
+ 20, // 45: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary.created_at:type_name -> google.protobuf.Timestamp
+ 20, // 46: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary.updated_at:type_name -> google.protobuf.Timestamp
+ 19, // 47: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.id:type_name -> google.protobuf.StringValue
+ 0, // 48: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 19, // 49: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.name:type_name -> google.protobuf.StringValue
+ 19, // 50: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.url:type_name -> google.protobuf.StringValue
+ 20, // 51: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.created_at:type_name -> google.protobuf.Timestamp
+ 20, // 52: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.updated_at:type_name -> google.protobuf.Timestamp
+ 21, // 53: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary.external_id:type_name -> google.protobuf.UInt32Value
+ 0, // 54: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookDetails.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 19, // 55: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookDetails.label:type_name -> google.protobuf.StringValue
+ 2, // 56: com.coralogix.outgoing_webhooks.v1.SlackConfig.Digest.type:type_name -> com.coralogix.outgoing_webhooks.v1.SlackConfig.DigestType
+ 22, // 57: com.coralogix.outgoing_webhooks.v1.SlackConfig.Digest.is_active:type_name -> google.protobuf.BoolValue
+ 58, // [58:58] is the sub-list for method output_type
+ 58, // [58:58] is the sub-list for method input_type
+ 58, // [58:58] is the sub-list for extension type_name
+ 58, // [58:58] is the sub-list for extension extendee
+ 0, // [0:58] is the sub-list for field type_name
+}
+
+func init() { file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_init() }
+func file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_init() {
+ if File_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GenericWebhookConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SlackConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PagerDutyConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SendLogConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EmailGroupConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MicrosoftTeamsConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*JiraConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OpsgenieConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DemistoConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutgoingWebhook); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutgoingWebhookInputData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutgoingWebhookSummary); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutgoingWebhookExtendedSummary); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OutgoingWebhookDetails); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SlackConfig_Digest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[9].OneofWrappers = []interface{}{
+ (*OutgoingWebhook_GenericWebhook)(nil),
+ (*OutgoingWebhook_Slack)(nil),
+ (*OutgoingWebhook_PagerDuty)(nil),
+ (*OutgoingWebhook_SendLog)(nil),
+ (*OutgoingWebhook_EmailGroup)(nil),
+ (*OutgoingWebhook_MicrosoftTeams)(nil),
+ (*OutgoingWebhook_Jira)(nil),
+ (*OutgoingWebhook_Opsgenie)(nil),
+ (*OutgoingWebhook_Demisto)(nil),
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes[10].OneofWrappers = []interface{}{
+ (*OutgoingWebhookInputData_GenericWebhook)(nil),
+ (*OutgoingWebhookInputData_Slack)(nil),
+ (*OutgoingWebhookInputData_PagerDuty)(nil),
+ (*OutgoingWebhookInputData_SendLog)(nil),
+ (*OutgoingWebhookInputData_EmailGroup)(nil),
+ (*OutgoingWebhookInputData_MicrosoftTeams)(nil),
+ (*OutgoingWebhookInputData_Jira)(nil),
+ (*OutgoingWebhookInputData_Opsgenie)(nil),
+ (*OutgoingWebhookInputData_Demisto)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDesc,
+ NumEnums: 3,
+ NumMessages: 16,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_goTypes,
+ DependencyIndexes: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_depIdxs,
+ EnumInfos: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_enumTypes,
+ MessageInfos: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_msgTypes,
+ }.Build()
+ File_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto = out.File
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_rawDesc = nil
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_goTypes = nil
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_depIdxs = nil
+}
diff --git a/coralogix/clientset/grpc/webhooks/outgoing_webhook_service.pb.go b/coralogix/clientset/grpc/webhooks/outgoing_webhook_service.pb.go
new file mode 100644
index 00000000..c1531dff
--- /dev/null
+++ b/coralogix/clientset/grpc/webhooks/outgoing_webhook_service.pb.go
@@ -0,0 +1,1700 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.8
+// source: com/coralogix/outgoing_webhooks/v1/outgoing_webhook_service.proto
+
+package __
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ _ "google.golang.org/protobuf/types/descriptorpb"
+ _ "google.golang.org/protobuf/types/known/timestamppb"
+ wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type ListOutgoingWebhookTypesRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListOutgoingWebhookTypesRequest) Reset() {
+ *x = ListOutgoingWebhookTypesRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListOutgoingWebhookTypesRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListOutgoingWebhookTypesRequest) ProtoMessage() {}
+
+func (x *ListOutgoingWebhookTypesRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListOutgoingWebhookTypesRequest.ProtoReflect.Descriptor instead.
+func (*ListOutgoingWebhookTypesRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{0}
+}
+
+type ListOutgoingWebhookTypesResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Webhooks []*ListOutgoingWebhookTypesResponse_OutgoingWebhookType `protobuf:"bytes,1,rep,name=webhooks,proto3" json:"webhooks,omitempty"`
+}
+
+func (x *ListOutgoingWebhookTypesResponse) Reset() {
+ *x = ListOutgoingWebhookTypesResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListOutgoingWebhookTypesResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListOutgoingWebhookTypesResponse) ProtoMessage() {}
+
+func (x *ListOutgoingWebhookTypesResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListOutgoingWebhookTypesResponse.ProtoReflect.Descriptor instead.
+func (*ListOutgoingWebhookTypesResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListOutgoingWebhookTypesResponse) GetWebhooks() []*ListOutgoingWebhookTypesResponse_OutgoingWebhookType {
+ if x != nil {
+ return x.Webhooks
+ }
+ return nil
+}
+
+type GetOutgoingWebhookTypeDetailsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type WebhookType `protobuf:"varint,1,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+}
+
+func (x *GetOutgoingWebhookTypeDetailsRequest) Reset() {
+ *x = GetOutgoingWebhookTypeDetailsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetOutgoingWebhookTypeDetailsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOutgoingWebhookTypeDetailsRequest) ProtoMessage() {}
+
+func (x *GetOutgoingWebhookTypeDetailsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOutgoingWebhookTypeDetailsRequest.ProtoReflect.Descriptor instead.
+func (*GetOutgoingWebhookTypeDetailsRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *GetOutgoingWebhookTypeDetailsRequest) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+type GetOutgoingWebhookTypeDetailsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Details *OutgoingWebhookDetails `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"`
+}
+
+func (x *GetOutgoingWebhookTypeDetailsResponse) Reset() {
+ *x = GetOutgoingWebhookTypeDetailsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetOutgoingWebhookTypeDetailsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOutgoingWebhookTypeDetailsResponse) ProtoMessage() {}
+
+func (x *GetOutgoingWebhookTypeDetailsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOutgoingWebhookTypeDetailsResponse.ProtoReflect.Descriptor instead.
+func (*GetOutgoingWebhookTypeDetailsResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *GetOutgoingWebhookTypeDetailsResponse) GetDetails() *OutgoingWebhookDetails {
+ if x != nil {
+ return x.Details
+ }
+ return nil
+}
+
+type ListOutgoingWebhooksRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type WebhookType `protobuf:"varint,1,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+}
+
+func (x *ListOutgoingWebhooksRequest) Reset() {
+ *x = ListOutgoingWebhooksRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListOutgoingWebhooksRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListOutgoingWebhooksRequest) ProtoMessage() {}
+
+func (x *ListOutgoingWebhooksRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListOutgoingWebhooksRequest.ProtoReflect.Descriptor instead.
+func (*ListOutgoingWebhooksRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ListOutgoingWebhooksRequest) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+type ListOutgoingWebhooksResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Deployed []*OutgoingWebhookSummary `protobuf:"bytes,1,rep,name=deployed,proto3" json:"deployed,omitempty"`
+}
+
+func (x *ListOutgoingWebhooksResponse) Reset() {
+ *x = ListOutgoingWebhooksResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListOutgoingWebhooksResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListOutgoingWebhooksResponse) ProtoMessage() {}
+
+func (x *ListOutgoingWebhooksResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListOutgoingWebhooksResponse.ProtoReflect.Descriptor instead.
+func (*ListOutgoingWebhooksResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ListOutgoingWebhooksResponse) GetDeployed() []*OutgoingWebhookSummary {
+ if x != nil {
+ return x.Deployed
+ }
+ return nil
+}
+
+type ListAllOutgoingWebhooksRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListAllOutgoingWebhooksRequest) Reset() {
+ *x = ListAllOutgoingWebhooksRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListAllOutgoingWebhooksRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListAllOutgoingWebhooksRequest) ProtoMessage() {}
+
+func (x *ListAllOutgoingWebhooksRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListAllOutgoingWebhooksRequest.ProtoReflect.Descriptor instead.
+func (*ListAllOutgoingWebhooksRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{6}
+}
+
+type ListAllOutgoingWebhooksResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Deployed []*OutgoingWebhookExtendedSummary `protobuf:"bytes,1,rep,name=deployed,proto3" json:"deployed,omitempty"`
+}
+
+func (x *ListAllOutgoingWebhooksResponse) Reset() {
+ *x = ListAllOutgoingWebhooksResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListAllOutgoingWebhooksResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListAllOutgoingWebhooksResponse) ProtoMessage() {}
+
+func (x *ListAllOutgoingWebhooksResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListAllOutgoingWebhooksResponse.ProtoReflect.Descriptor instead.
+func (*ListAllOutgoingWebhooksResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *ListAllOutgoingWebhooksResponse) GetDeployed() []*OutgoingWebhookExtendedSummary {
+ if x != nil {
+ return x.Deployed
+ }
+ return nil
+}
+
+type GetOutgoingWebhookRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *GetOutgoingWebhookRequest) Reset() {
+ *x = GetOutgoingWebhookRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetOutgoingWebhookRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOutgoingWebhookRequest) ProtoMessage() {}
+
+func (x *GetOutgoingWebhookRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOutgoingWebhookRequest.ProtoReflect.Descriptor instead.
+func (*GetOutgoingWebhookRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *GetOutgoingWebhookRequest) GetId() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+type GetOutgoingWebhookResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Webhook *OutgoingWebhook `protobuf:"bytes,1,opt,name=webhook,proto3" json:"webhook,omitempty"`
+}
+
+func (x *GetOutgoingWebhookResponse) Reset() {
+ *x = GetOutgoingWebhookResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetOutgoingWebhookResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOutgoingWebhookResponse) ProtoMessage() {}
+
+func (x *GetOutgoingWebhookResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOutgoingWebhookResponse.ProtoReflect.Descriptor instead.
+func (*GetOutgoingWebhookResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *GetOutgoingWebhookResponse) GetWebhook() *OutgoingWebhook {
+ if x != nil {
+ return x.Webhook
+ }
+ return nil
+}
+
+type CreateOutgoingWebhookRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Data *OutgoingWebhookInputData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *CreateOutgoingWebhookRequest) Reset() {
+ *x = CreateOutgoingWebhookRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateOutgoingWebhookRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateOutgoingWebhookRequest) ProtoMessage() {}
+
+func (x *CreateOutgoingWebhookRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateOutgoingWebhookRequest.ProtoReflect.Descriptor instead.
+func (*CreateOutgoingWebhookRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *CreateOutgoingWebhookRequest) GetData() *OutgoingWebhookInputData {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+type CreateOutgoingWebhookResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *CreateOutgoingWebhookResponse) Reset() {
+ *x = CreateOutgoingWebhookResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateOutgoingWebhookResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateOutgoingWebhookResponse) ProtoMessage() {}
+
+func (x *CreateOutgoingWebhookResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateOutgoingWebhookResponse.ProtoReflect.Descriptor instead.
+func (*CreateOutgoingWebhookResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *CreateOutgoingWebhookResponse) GetId() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+type UpdateOutgoingWebhookRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Data *OutgoingWebhookInputData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *UpdateOutgoingWebhookRequest) Reset() {
+ *x = UpdateOutgoingWebhookRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateOutgoingWebhookRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateOutgoingWebhookRequest) ProtoMessage() {}
+
+func (x *UpdateOutgoingWebhookRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateOutgoingWebhookRequest.ProtoReflect.Descriptor instead.
+func (*UpdateOutgoingWebhookRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *UpdateOutgoingWebhookRequest) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *UpdateOutgoingWebhookRequest) GetData() *OutgoingWebhookInputData {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+type UpdateOutgoingWebhookResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *UpdateOutgoingWebhookResponse) Reset() {
+ *x = UpdateOutgoingWebhookResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateOutgoingWebhookResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateOutgoingWebhookResponse) ProtoMessage() {}
+
+func (x *UpdateOutgoingWebhookResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateOutgoingWebhookResponse.ProtoReflect.Descriptor instead.
+func (*UpdateOutgoingWebhookResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{13}
+}
+
+type DeleteOutgoingWebhookRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *DeleteOutgoingWebhookRequest) Reset() {
+ *x = DeleteOutgoingWebhookRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteOutgoingWebhookRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteOutgoingWebhookRequest) ProtoMessage() {}
+
+func (x *DeleteOutgoingWebhookRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteOutgoingWebhookRequest.ProtoReflect.Descriptor instead.
+func (*DeleteOutgoingWebhookRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *DeleteOutgoingWebhookRequest) GetId() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+type DeleteOutgoingWebhookResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DeleteOutgoingWebhookResponse) Reset() {
+ *x = DeleteOutgoingWebhookResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteOutgoingWebhookResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteOutgoingWebhookResponse) ProtoMessage() {}
+
+func (x *DeleteOutgoingWebhookResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteOutgoingWebhookResponse.ProtoReflect.Descriptor instead.
+func (*DeleteOutgoingWebhookResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{15}
+}
+
+type TestOutgoingWebhookRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Data *OutgoingWebhookInputData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *TestOutgoingWebhookRequest) Reset() {
+ *x = TestOutgoingWebhookRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TestOutgoingWebhookRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TestOutgoingWebhookRequest) ProtoMessage() {}
+
+func (x *TestOutgoingWebhookRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TestOutgoingWebhookRequest.ProtoReflect.Descriptor instead.
+func (*TestOutgoingWebhookRequest) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *TestOutgoingWebhookRequest) GetData() *OutgoingWebhookInputData {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+type TestOutgoingWebhookResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Result:
+ // *TestOutgoingWebhookResponse_Success_
+ // *TestOutgoingWebhookResponse_Failure_
+ Result isTestOutgoingWebhookResponse_Result `protobuf_oneof:"result"`
+}
+
+func (x *TestOutgoingWebhookResponse) Reset() {
+ *x = TestOutgoingWebhookResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TestOutgoingWebhookResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TestOutgoingWebhookResponse) ProtoMessage() {}
+
+func (x *TestOutgoingWebhookResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TestOutgoingWebhookResponse.ProtoReflect.Descriptor instead.
+func (*TestOutgoingWebhookResponse) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{17}
+}
+
+func (m *TestOutgoingWebhookResponse) GetResult() isTestOutgoingWebhookResponse_Result {
+ if m != nil {
+ return m.Result
+ }
+ return nil
+}
+
+func (x *TestOutgoingWebhookResponse) GetSuccess() *TestOutgoingWebhookResponse_Success {
+ if x, ok := x.GetResult().(*TestOutgoingWebhookResponse_Success_); ok {
+ return x.Success
+ }
+ return nil
+}
+
+func (x *TestOutgoingWebhookResponse) GetFailure() *TestOutgoingWebhookResponse_Failure {
+ if x, ok := x.GetResult().(*TestOutgoingWebhookResponse_Failure_); ok {
+ return x.Failure
+ }
+ return nil
+}
+
+type isTestOutgoingWebhookResponse_Result interface {
+ isTestOutgoingWebhookResponse_Result()
+}
+
+type TestOutgoingWebhookResponse_Success_ struct {
+ Success *TestOutgoingWebhookResponse_Success `protobuf:"bytes,1,opt,name=success,proto3,oneof"`
+}
+
+type TestOutgoingWebhookResponse_Failure_ struct {
+ Failure *TestOutgoingWebhookResponse_Failure `protobuf:"bytes,2,opt,name=failure,proto3,oneof"`
+}
+
+func (*TestOutgoingWebhookResponse_Success_) isTestOutgoingWebhookResponse_Result() {}
+
+func (*TestOutgoingWebhookResponse_Failure_) isTestOutgoingWebhookResponse_Result() {}
+
+type ListOutgoingWebhookTypesResponse_OutgoingWebhookType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type WebhookType `protobuf:"varint,1,opt,name=type,proto3,enum=com.coralogix.outgoing_webhooks.v1.WebhookType" json:"type,omitempty"`
+ Label *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
+ Count *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=count,proto3" json:"count,omitempty"`
+}
+
+func (x *ListOutgoingWebhookTypesResponse_OutgoingWebhookType) Reset() {
+ *x = ListOutgoingWebhookTypesResponse_OutgoingWebhookType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListOutgoingWebhookTypesResponse_OutgoingWebhookType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListOutgoingWebhookTypesResponse_OutgoingWebhookType) ProtoMessage() {}
+
+func (x *ListOutgoingWebhookTypesResponse_OutgoingWebhookType) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[18]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListOutgoingWebhookTypesResponse_OutgoingWebhookType.ProtoReflect.Descriptor instead.
+func (*ListOutgoingWebhookTypesResponse_OutgoingWebhookType) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *ListOutgoingWebhookTypesResponse_OutgoingWebhookType) GetType() WebhookType {
+ if x != nil {
+ return x.Type
+ }
+ return WebhookType_UNKNOWN
+}
+
+func (x *ListOutgoingWebhookTypesResponse_OutgoingWebhookType) GetLabel() *wrapperspb.StringValue {
+ if x != nil {
+ return x.Label
+ }
+ return nil
+}
+
+func (x *ListOutgoingWebhookTypesResponse_OutgoingWebhookType) GetCount() *wrapperspb.UInt32Value {
+ if x != nil {
+ return x.Count
+ }
+ return nil
+}
+
+type TestOutgoingWebhookResponse_Success struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *TestOutgoingWebhookResponse_Success) Reset() {
+ *x = TestOutgoingWebhookResponse_Success{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TestOutgoingWebhookResponse_Success) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TestOutgoingWebhookResponse_Success) ProtoMessage() {}
+
+func (x *TestOutgoingWebhookResponse_Success) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[19]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TestOutgoingWebhookResponse_Success.ProtoReflect.Descriptor instead.
+func (*TestOutgoingWebhookResponse_Success) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{17, 0}
+}
+
+type TestOutgoingWebhookResponse_Failure struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ErrorMessage *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
+ DisplayMessage *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=display_message,json=displayMessage,proto3" json:"display_message,omitempty"`
+}
+
+func (x *TestOutgoingWebhookResponse_Failure) Reset() {
+ *x = TestOutgoingWebhookResponse_Failure{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TestOutgoingWebhookResponse_Failure) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TestOutgoingWebhookResponse_Failure) ProtoMessage() {}
+
+func (x *TestOutgoingWebhookResponse_Failure) ProtoReflect() protoreflect.Message {
+ mi := &file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[20]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TestOutgoingWebhookResponse_Failure.ProtoReflect.Descriptor instead.
+func (*TestOutgoingWebhookResponse_Failure) Descriptor() ([]byte, []int) {
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP(), []int{17, 1}
+}
+
+func (x *TestOutgoingWebhookResponse_Failure) GetErrorMessage() *wrapperspb.StringValue {
+ if x != nil {
+ return x.ErrorMessage
+ }
+ return nil
+}
+
+func (x *TestOutgoingWebhookResponse_Failure) GetDisplayMessage() *wrapperspb.StringValue {
+ if x != nil {
+ return x.DisplayMessage
+ }
+ return nil
+}
+
+var File_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto protoreflect.FileDescriptor
+
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDesc = []byte{
+ 0x0a, 0x41, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2f,
+ 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67,
+ 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x32, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x72,
+ 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f,
+ 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x64, 0x69,
+ 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x76, 0x31, 0x2f,
+ 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+ 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x21, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79,
+ 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xdd, 0x02, 0x0a, 0x20, 0x4c,
+ 0x69, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x74, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x58, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69,
+ 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x1a, 0xc2, 0x01, 0x0a, 0x13, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31,
+ 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
+ 0x70, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x24, 0x47, 0x65,
+ 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78,
+ 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7d, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70,
+ 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x54, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69,
+ 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x64,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x62, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f,
+ 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x76, 0x0a, 0x1c, 0x4c, 0x69,
+ 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x64, 0x65,
+ 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76,
+ 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+ 0x65, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+ 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6c,
+ 0x6f, 0x79, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e,
+ 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x08,
+ 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x22, 0x49, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x02, 0x69, 0x64, 0x22, 0x6b, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67,
+ 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x22, 0x70, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61,
+ 0x74, 0x61, 0x22, 0x4d, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69,
+ 0x64, 0x22, 0x80, 0x01, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78,
+ 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04,
+ 0x64, 0x61, 0x74, 0x61, 0x22, 0x1f, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x02, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x1a, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78,
+ 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04,
+ 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x03, 0x0a, 0x1b, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61,
+ 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00,
+ 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x63, 0x0a, 0x07, 0x66, 0x61, 0x69,
+ 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c,
+ 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x1a, 0x09,
+ 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x93, 0x01, 0x0a, 0x07, 0x46, 0x61,
+ 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
+ 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x70,
+ 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
+ 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42,
+ 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0x9c, 0x10, 0x0a, 0x17, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xea, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70,
+ 0x65, 0x73, 0x12, 0x43, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67,
+ 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f,
+ 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0xd2,
+ 0xb8, 0x02, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e,
+ 0x67, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x82,
+ 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x12, 0xff, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69,
+ 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x73, 0x12, 0x48, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c,
+ 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x49,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0xd2, 0xb8, 0x02, 0x1b, 0x0a,
+ 0x19, 0x47, 0x65, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x74, 0x79, 0x70, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24,
+ 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x74,
+ 0x79, 0x70, 0x65, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x3f, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e,
+ 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x38, 0xd2, 0xb8, 0x02, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e,
+ 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x17, 0x4c,
+ 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65,
+ 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x42, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72,
+ 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f,
+ 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
+ 0x41, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e,
+ 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x40, 0xd2, 0xb8, 0x02, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x61, 0x6c,
+ 0x6c, 0x12, 0xd1, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e,
+ 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63,
+ 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e,
+ 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
+ 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f,
+ 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
+ 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0xd2, 0xb8, 0x02, 0x16, 0x0a, 0x14, 0x47,
+ 0x65, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12,
+ 0x40, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x2e,
+ 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x67, 0x6f,
+ 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69,
+ 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xd2, 0xb8, 0x02, 0x1c, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x77,
+ 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x76,
+ 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xde, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x12, 0x40, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78,
+ 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67,
+ 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xd2, 0xb8, 0x02, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20,
+ 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x1a, 0x15, 0x2f,
+ 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xe0, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
+ 0x6b, 0x12, 0x40, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69,
+ 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74,
+ 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f,
+ 0x67, 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xd2, 0xb8, 0x02, 0x1c, 0x0a, 0x1a, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
+ 0x20, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a,
+ 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62,
+ 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xdb, 0x01, 0x0a, 0x13, 0x54,
+ 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f,
+ 0x6f, 0x6b, 0x12, 0x3e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67,
+ 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x6f, 0x67,
+ 0x69, 0x78, 0x2e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x43, 0xd2, 0xb8, 0x02, 0x1a, 0x0a, 0x18, 0x54, 0x65, 0x73, 0x74, 0x20,
+ 0x61, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x65, 0x62, 0x68,
+ 0x6f, 0x6f, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6f,
+ 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x2f, 0x74, 0x65, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x42, 0x03, 0x5a, 0x01, 0x2e, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescOnce sync.Once
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescData = file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDesc
+)
+
+func file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescGZIP() []byte {
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescOnce.Do(func() {
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescData)
+ })
+ return file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDescData
+}
+
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_goTypes = []interface{}{
+ (*ListOutgoingWebhookTypesRequest)(nil), // 0: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesRequest
+ (*ListOutgoingWebhookTypesResponse)(nil), // 1: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse
+ (*GetOutgoingWebhookTypeDetailsRequest)(nil), // 2: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookTypeDetailsRequest
+ (*GetOutgoingWebhookTypeDetailsResponse)(nil), // 3: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookTypeDetailsResponse
+ (*ListOutgoingWebhooksRequest)(nil), // 4: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhooksRequest
+ (*ListOutgoingWebhooksResponse)(nil), // 5: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhooksResponse
+ (*ListAllOutgoingWebhooksRequest)(nil), // 6: com.coralogix.outgoing_webhooks.v1.ListAllOutgoingWebhooksRequest
+ (*ListAllOutgoingWebhooksResponse)(nil), // 7: com.coralogix.outgoing_webhooks.v1.ListAllOutgoingWebhooksResponse
+ (*GetOutgoingWebhookRequest)(nil), // 8: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookRequest
+ (*GetOutgoingWebhookResponse)(nil), // 9: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookResponse
+ (*CreateOutgoingWebhookRequest)(nil), // 10: com.coralogix.outgoing_webhooks.v1.CreateOutgoingWebhookRequest
+ (*CreateOutgoingWebhookResponse)(nil), // 11: com.coralogix.outgoing_webhooks.v1.CreateOutgoingWebhookResponse
+ (*UpdateOutgoingWebhookRequest)(nil), // 12: com.coralogix.outgoing_webhooks.v1.UpdateOutgoingWebhookRequest
+ (*UpdateOutgoingWebhookResponse)(nil), // 13: com.coralogix.outgoing_webhooks.v1.UpdateOutgoingWebhookResponse
+ (*DeleteOutgoingWebhookRequest)(nil), // 14: com.coralogix.outgoing_webhooks.v1.DeleteOutgoingWebhookRequest
+ (*DeleteOutgoingWebhookResponse)(nil), // 15: com.coralogix.outgoing_webhooks.v1.DeleteOutgoingWebhookResponse
+ (*TestOutgoingWebhookRequest)(nil), // 16: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookRequest
+ (*TestOutgoingWebhookResponse)(nil), // 17: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse
+ (*ListOutgoingWebhookTypesResponse_OutgoingWebhookType)(nil), // 18: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse.OutgoingWebhookType
+ (*TestOutgoingWebhookResponse_Success)(nil), // 19: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.Success
+ (*TestOutgoingWebhookResponse_Failure)(nil), // 20: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.Failure
+ (WebhookType)(0), // 21: com.coralogix.outgoing_webhooks.v1.WebhookType
+ (*OutgoingWebhookDetails)(nil), // 22: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookDetails
+ (*OutgoingWebhookSummary)(nil), // 23: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary
+ (*OutgoingWebhookExtendedSummary)(nil), // 24: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary
+ (*wrapperspb.StringValue)(nil), // 25: google.protobuf.StringValue
+ (*OutgoingWebhook)(nil), // 26: com.coralogix.outgoing_webhooks.v1.OutgoingWebhook
+ (*OutgoingWebhookInputData)(nil), // 27: com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData
+ (*wrapperspb.UInt32Value)(nil), // 28: google.protobuf.UInt32Value
+}
+var file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_depIdxs = []int32{
+ 18, // 0: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse.webhooks:type_name -> com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse.OutgoingWebhookType
+ 21, // 1: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookTypeDetailsRequest.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 22, // 2: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookTypeDetailsResponse.details:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhookDetails
+ 21, // 3: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhooksRequest.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 23, // 4: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhooksResponse.deployed:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhookSummary
+ 24, // 5: com.coralogix.outgoing_webhooks.v1.ListAllOutgoingWebhooksResponse.deployed:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhookExtendedSummary
+ 25, // 6: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookRequest.id:type_name -> google.protobuf.StringValue
+ 26, // 7: com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookResponse.webhook:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhook
+ 27, // 8: com.coralogix.outgoing_webhooks.v1.CreateOutgoingWebhookRequest.data:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData
+ 25, // 9: com.coralogix.outgoing_webhooks.v1.CreateOutgoingWebhookResponse.id:type_name -> google.protobuf.StringValue
+ 27, // 10: com.coralogix.outgoing_webhooks.v1.UpdateOutgoingWebhookRequest.data:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData
+ 25, // 11: com.coralogix.outgoing_webhooks.v1.DeleteOutgoingWebhookRequest.id:type_name -> google.protobuf.StringValue
+ 27, // 12: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookRequest.data:type_name -> com.coralogix.outgoing_webhooks.v1.OutgoingWebhookInputData
+ 19, // 13: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.success:type_name -> com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.Success
+ 20, // 14: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.failure:type_name -> com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.Failure
+ 21, // 15: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse.OutgoingWebhookType.type:type_name -> com.coralogix.outgoing_webhooks.v1.WebhookType
+ 25, // 16: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse.OutgoingWebhookType.label:type_name -> google.protobuf.StringValue
+ 28, // 17: com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse.OutgoingWebhookType.count:type_name -> google.protobuf.UInt32Value
+ 25, // 18: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.Failure.error_message:type_name -> google.protobuf.StringValue
+ 25, // 19: com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse.Failure.display_message:type_name -> google.protobuf.StringValue
+ 0, // 20: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.ListOutgoingWebhookTypes:input_type -> com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesRequest
+ 2, // 21: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.GetOutgoingWebhookTypeDetails:input_type -> com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookTypeDetailsRequest
+ 4, // 22: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.ListOutgoingWebhooks:input_type -> com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhooksRequest
+ 6, // 23: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.ListAllOutgoingWebhooks:input_type -> com.coralogix.outgoing_webhooks.v1.ListAllOutgoingWebhooksRequest
+ 8, // 24: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.GetOutgoingWebhook:input_type -> com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookRequest
+ 10, // 25: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.CreateOutgoingWebhook:input_type -> com.coralogix.outgoing_webhooks.v1.CreateOutgoingWebhookRequest
+ 12, // 26: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.UpdateOutgoingWebhook:input_type -> com.coralogix.outgoing_webhooks.v1.UpdateOutgoingWebhookRequest
+ 14, // 27: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.DeleteOutgoingWebhook:input_type -> com.coralogix.outgoing_webhooks.v1.DeleteOutgoingWebhookRequest
+ 16, // 28: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.TestOutgoingWebhook:input_type -> com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookRequest
+ 1, // 29: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.ListOutgoingWebhookTypes:output_type -> com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhookTypesResponse
+ 3, // 30: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.GetOutgoingWebhookTypeDetails:output_type -> com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookTypeDetailsResponse
+ 5, // 31: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.ListOutgoingWebhooks:output_type -> com.coralogix.outgoing_webhooks.v1.ListOutgoingWebhooksResponse
+ 7, // 32: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.ListAllOutgoingWebhooks:output_type -> com.coralogix.outgoing_webhooks.v1.ListAllOutgoingWebhooksResponse
+ 9, // 33: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.GetOutgoingWebhook:output_type -> com.coralogix.outgoing_webhooks.v1.GetOutgoingWebhookResponse
+ 11, // 34: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.CreateOutgoingWebhook:output_type -> com.coralogix.outgoing_webhooks.v1.CreateOutgoingWebhookResponse
+ 13, // 35: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.UpdateOutgoingWebhook:output_type -> com.coralogix.outgoing_webhooks.v1.UpdateOutgoingWebhookResponse
+ 15, // 36: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.DeleteOutgoingWebhook:output_type -> com.coralogix.outgoing_webhooks.v1.DeleteOutgoingWebhookResponse
+ 17, // 37: com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService.TestOutgoingWebhook:output_type -> com.coralogix.outgoing_webhooks.v1.TestOutgoingWebhookResponse
+ 29, // [29:38] is the sub-list for method output_type
+ 20, // [20:29] is the sub-list for method input_type
+ 20, // [20:20] is the sub-list for extension type_name
+ 20, // [20:20] is the sub-list for extension extendee
+ 0, // [0:20] is the sub-list for field type_name
+}
+
+func init() { file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_init() }
+func file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_init() {
+ if File_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto != nil {
+ return
+ }
+ file_com_coralogix_outgoing_webhooks_v1_audit_log_proto_init()
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListOutgoingWebhookTypesRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListOutgoingWebhookTypesResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetOutgoingWebhookTypeDetailsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetOutgoingWebhookTypeDetailsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListOutgoingWebhooksRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListOutgoingWebhooksResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListAllOutgoingWebhooksRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListAllOutgoingWebhooksResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetOutgoingWebhookRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetOutgoingWebhookResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateOutgoingWebhookRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateOutgoingWebhookResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateOutgoingWebhookRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateOutgoingWebhookResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteOutgoingWebhookRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteOutgoingWebhookResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TestOutgoingWebhookRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TestOutgoingWebhookResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListOutgoingWebhookTypesResponse_OutgoingWebhookType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TestOutgoingWebhookResponse_Success); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TestOutgoingWebhookResponse_Failure); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes[17].OneofWrappers = []interface{}{
+ (*TestOutgoingWebhookResponse_Success_)(nil),
+ (*TestOutgoingWebhookResponse_Failure_)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 21,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_goTypes,
+ DependencyIndexes: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_depIdxs,
+ MessageInfos: file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_msgTypes,
+ }.Build()
+ File_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto = out.File
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_rawDesc = nil
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_goTypes = nil
+ file_com_coralogix_outgoing_webhooks_v1_outgoing_webhook_service_proto_depIdxs = nil
+}
diff --git a/coralogix/clientset/grpc/webhooks/outgoing_webhook_service_grpc.pb.go b/coralogix/clientset/grpc/webhooks/outgoing_webhook_service_grpc.pb.go
new file mode 100644
index 00000000..32ecc7a6
--- /dev/null
+++ b/coralogix/clientset/grpc/webhooks/outgoing_webhook_service_grpc.pb.go
@@ -0,0 +1,394 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.2.0
+// - protoc v3.21.8
+// source: com/coralogix/outgoing_webhooks/v1/outgoing_webhook_service.proto
+
+package __
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+// OutgoingWebhooksServiceClient is the client API for OutgoingWebhooksService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type OutgoingWebhooksServiceClient interface {
+ ListOutgoingWebhookTypes(ctx context.Context, in *ListOutgoingWebhookTypesRequest, opts ...grpc.CallOption) (*ListOutgoingWebhookTypesResponse, error)
+ GetOutgoingWebhookTypeDetails(ctx context.Context, in *GetOutgoingWebhookTypeDetailsRequest, opts ...grpc.CallOption) (*GetOutgoingWebhookTypeDetailsResponse, error)
+ ListOutgoingWebhooks(ctx context.Context, in *ListOutgoingWebhooksRequest, opts ...grpc.CallOption) (*ListOutgoingWebhooksResponse, error)
+ ListAllOutgoingWebhooks(ctx context.Context, in *ListAllOutgoingWebhooksRequest, opts ...grpc.CallOption) (*ListAllOutgoingWebhooksResponse, error)
+ GetOutgoingWebhook(ctx context.Context, in *GetOutgoingWebhookRequest, opts ...grpc.CallOption) (*GetOutgoingWebhookResponse, error)
+ CreateOutgoingWebhook(ctx context.Context, in *CreateOutgoingWebhookRequest, opts ...grpc.CallOption) (*CreateOutgoingWebhookResponse, error)
+ UpdateOutgoingWebhook(ctx context.Context, in *UpdateOutgoingWebhookRequest, opts ...grpc.CallOption) (*UpdateOutgoingWebhookResponse, error)
+ DeleteOutgoingWebhook(ctx context.Context, in *DeleteOutgoingWebhookRequest, opts ...grpc.CallOption) (*DeleteOutgoingWebhookResponse, error)
+ TestOutgoingWebhook(ctx context.Context, in *TestOutgoingWebhookRequest, opts ...grpc.CallOption) (*TestOutgoingWebhookResponse, error)
+}
+
+type outgoingWebhooksServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewOutgoingWebhooksServiceClient(cc grpc.ClientConnInterface) OutgoingWebhooksServiceClient {
+ return &outgoingWebhooksServiceClient{cc}
+}
+
+func (c *outgoingWebhooksServiceClient) ListOutgoingWebhookTypes(ctx context.Context, in *ListOutgoingWebhookTypesRequest, opts ...grpc.CallOption) (*ListOutgoingWebhookTypesResponse, error) {
+ out := new(ListOutgoingWebhookTypesResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/ListOutgoingWebhookTypes", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) GetOutgoingWebhookTypeDetails(ctx context.Context, in *GetOutgoingWebhookTypeDetailsRequest, opts ...grpc.CallOption) (*GetOutgoingWebhookTypeDetailsResponse, error) {
+ out := new(GetOutgoingWebhookTypeDetailsResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/GetOutgoingWebhookTypeDetails", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) ListOutgoingWebhooks(ctx context.Context, in *ListOutgoingWebhooksRequest, opts ...grpc.CallOption) (*ListOutgoingWebhooksResponse, error) {
+ out := new(ListOutgoingWebhooksResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/ListOutgoingWebhooks", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) ListAllOutgoingWebhooks(ctx context.Context, in *ListAllOutgoingWebhooksRequest, opts ...grpc.CallOption) (*ListAllOutgoingWebhooksResponse, error) {
+ out := new(ListAllOutgoingWebhooksResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/ListAllOutgoingWebhooks", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) GetOutgoingWebhook(ctx context.Context, in *GetOutgoingWebhookRequest, opts ...grpc.CallOption) (*GetOutgoingWebhookResponse, error) {
+ out := new(GetOutgoingWebhookResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/GetOutgoingWebhook", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) CreateOutgoingWebhook(ctx context.Context, in *CreateOutgoingWebhookRequest, opts ...grpc.CallOption) (*CreateOutgoingWebhookResponse, error) {
+ out := new(CreateOutgoingWebhookResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/CreateOutgoingWebhook", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) UpdateOutgoingWebhook(ctx context.Context, in *UpdateOutgoingWebhookRequest, opts ...grpc.CallOption) (*UpdateOutgoingWebhookResponse, error) {
+ out := new(UpdateOutgoingWebhookResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/UpdateOutgoingWebhook", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) DeleteOutgoingWebhook(ctx context.Context, in *DeleteOutgoingWebhookRequest, opts ...grpc.CallOption) (*DeleteOutgoingWebhookResponse, error) {
+ out := new(DeleteOutgoingWebhookResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/DeleteOutgoingWebhook", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *outgoingWebhooksServiceClient) TestOutgoingWebhook(ctx context.Context, in *TestOutgoingWebhookRequest, opts ...grpc.CallOption) (*TestOutgoingWebhookResponse, error) {
+ out := new(TestOutgoingWebhookResponse)
+ err := c.cc.Invoke(ctx, "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/TestOutgoingWebhook", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// OutgoingWebhooksServiceServer is the server API for OutgoingWebhooksService service.
+// All implementations must embed UnimplementedOutgoingWebhooksServiceServer
+// for forward compatibility
+type OutgoingWebhooksServiceServer interface {
+ ListOutgoingWebhookTypes(context.Context, *ListOutgoingWebhookTypesRequest) (*ListOutgoingWebhookTypesResponse, error)
+ GetOutgoingWebhookTypeDetails(context.Context, *GetOutgoingWebhookTypeDetailsRequest) (*GetOutgoingWebhookTypeDetailsResponse, error)
+ ListOutgoingWebhooks(context.Context, *ListOutgoingWebhooksRequest) (*ListOutgoingWebhooksResponse, error)
+ ListAllOutgoingWebhooks(context.Context, *ListAllOutgoingWebhooksRequest) (*ListAllOutgoingWebhooksResponse, error)
+ GetOutgoingWebhook(context.Context, *GetOutgoingWebhookRequest) (*GetOutgoingWebhookResponse, error)
+ CreateOutgoingWebhook(context.Context, *CreateOutgoingWebhookRequest) (*CreateOutgoingWebhookResponse, error)
+ UpdateOutgoingWebhook(context.Context, *UpdateOutgoingWebhookRequest) (*UpdateOutgoingWebhookResponse, error)
+ DeleteOutgoingWebhook(context.Context, *DeleteOutgoingWebhookRequest) (*DeleteOutgoingWebhookResponse, error)
+ TestOutgoingWebhook(context.Context, *TestOutgoingWebhookRequest) (*TestOutgoingWebhookResponse, error)
+ mustEmbedUnimplementedOutgoingWebhooksServiceServer()
+}
+
+// UnimplementedOutgoingWebhooksServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedOutgoingWebhooksServiceServer struct {
+}
+
+func (UnimplementedOutgoingWebhooksServiceServer) ListOutgoingWebhookTypes(context.Context, *ListOutgoingWebhookTypesRequest) (*ListOutgoingWebhookTypesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListOutgoingWebhookTypes not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) GetOutgoingWebhookTypeDetails(context.Context, *GetOutgoingWebhookTypeDetailsRequest) (*GetOutgoingWebhookTypeDetailsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetOutgoingWebhookTypeDetails not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) ListOutgoingWebhooks(context.Context, *ListOutgoingWebhooksRequest) (*ListOutgoingWebhooksResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListOutgoingWebhooks not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) ListAllOutgoingWebhooks(context.Context, *ListAllOutgoingWebhooksRequest) (*ListAllOutgoingWebhooksResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListAllOutgoingWebhooks not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) GetOutgoingWebhook(context.Context, *GetOutgoingWebhookRequest) (*GetOutgoingWebhookResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetOutgoingWebhook not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) CreateOutgoingWebhook(context.Context, *CreateOutgoingWebhookRequest) (*CreateOutgoingWebhookResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateOutgoingWebhook not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) UpdateOutgoingWebhook(context.Context, *UpdateOutgoingWebhookRequest) (*UpdateOutgoingWebhookResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateOutgoingWebhook not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) DeleteOutgoingWebhook(context.Context, *DeleteOutgoingWebhookRequest) (*DeleteOutgoingWebhookResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteOutgoingWebhook not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) TestOutgoingWebhook(context.Context, *TestOutgoingWebhookRequest) (*TestOutgoingWebhookResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method TestOutgoingWebhook not implemented")
+}
+func (UnimplementedOutgoingWebhooksServiceServer) mustEmbedUnimplementedOutgoingWebhooksServiceServer() {
+}
+
+// UnsafeOutgoingWebhooksServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to OutgoingWebhooksServiceServer will
+// result in compilation errors.
+type UnsafeOutgoingWebhooksServiceServer interface {
+ mustEmbedUnimplementedOutgoingWebhooksServiceServer()
+}
+
+func RegisterOutgoingWebhooksServiceServer(s grpc.ServiceRegistrar, srv OutgoingWebhooksServiceServer) {
+ s.RegisterService(&OutgoingWebhooksService_ServiceDesc, srv)
+}
+
+func _OutgoingWebhooksService_ListOutgoingWebhookTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListOutgoingWebhookTypesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).ListOutgoingWebhookTypes(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/ListOutgoingWebhookTypes",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).ListOutgoingWebhookTypes(ctx, req.(*ListOutgoingWebhookTypesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_GetOutgoingWebhookTypeDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetOutgoingWebhookTypeDetailsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).GetOutgoingWebhookTypeDetails(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/GetOutgoingWebhookTypeDetails",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).GetOutgoingWebhookTypeDetails(ctx, req.(*GetOutgoingWebhookTypeDetailsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_ListOutgoingWebhooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListOutgoingWebhooksRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).ListOutgoingWebhooks(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/ListOutgoingWebhooks",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).ListOutgoingWebhooks(ctx, req.(*ListOutgoingWebhooksRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_ListAllOutgoingWebhooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListAllOutgoingWebhooksRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).ListAllOutgoingWebhooks(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/ListAllOutgoingWebhooks",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).ListAllOutgoingWebhooks(ctx, req.(*ListAllOutgoingWebhooksRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_GetOutgoingWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetOutgoingWebhookRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).GetOutgoingWebhook(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/GetOutgoingWebhook",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).GetOutgoingWebhook(ctx, req.(*GetOutgoingWebhookRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_CreateOutgoingWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateOutgoingWebhookRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).CreateOutgoingWebhook(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/CreateOutgoingWebhook",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).CreateOutgoingWebhook(ctx, req.(*CreateOutgoingWebhookRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_UpdateOutgoingWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateOutgoingWebhookRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).UpdateOutgoingWebhook(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/UpdateOutgoingWebhook",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).UpdateOutgoingWebhook(ctx, req.(*UpdateOutgoingWebhookRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_DeleteOutgoingWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteOutgoingWebhookRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).DeleteOutgoingWebhook(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/DeleteOutgoingWebhook",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).DeleteOutgoingWebhook(ctx, req.(*DeleteOutgoingWebhookRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _OutgoingWebhooksService_TestOutgoingWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(TestOutgoingWebhookRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OutgoingWebhooksServiceServer).TestOutgoingWebhook(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService/TestOutgoingWebhook",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OutgoingWebhooksServiceServer).TestOutgoingWebhook(ctx, req.(*TestOutgoingWebhookRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// OutgoingWebhooksService_ServiceDesc is the grpc.ServiceDesc for OutgoingWebhooksService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var OutgoingWebhooksService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "com.coralogix.outgoing_webhooks.v1.OutgoingWebhooksService",
+ HandlerType: (*OutgoingWebhooksServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListOutgoingWebhookTypes",
+ Handler: _OutgoingWebhooksService_ListOutgoingWebhookTypes_Handler,
+ },
+ {
+ MethodName: "GetOutgoingWebhookTypeDetails",
+ Handler: _OutgoingWebhooksService_GetOutgoingWebhookTypeDetails_Handler,
+ },
+ {
+ MethodName: "ListOutgoingWebhooks",
+ Handler: _OutgoingWebhooksService_ListOutgoingWebhooks_Handler,
+ },
+ {
+ MethodName: "ListAllOutgoingWebhooks",
+ Handler: _OutgoingWebhooksService_ListAllOutgoingWebhooks_Handler,
+ },
+ {
+ MethodName: "GetOutgoingWebhook",
+ Handler: _OutgoingWebhooksService_GetOutgoingWebhook_Handler,
+ },
+ {
+ MethodName: "CreateOutgoingWebhook",
+ Handler: _OutgoingWebhooksService_CreateOutgoingWebhook_Handler,
+ },
+ {
+ MethodName: "UpdateOutgoingWebhook",
+ Handler: _OutgoingWebhooksService_UpdateOutgoingWebhook_Handler,
+ },
+ {
+ MethodName: "DeleteOutgoingWebhook",
+ Handler: _OutgoingWebhooksService_DeleteOutgoingWebhook_Handler,
+ },
+ {
+ MethodName: "TestOutgoingWebhook",
+ Handler: _OutgoingWebhooksService_TestOutgoingWebhook_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "com/coralogix/outgoing_webhooks/v1/outgoing_webhook_service.proto",
+}
diff --git a/coralogix/clientset/webhooks-client.go b/coralogix/clientset/webhooks-client.go
index 41dac3b5..c49e6fc6 100644
--- a/coralogix/clientset/webhooks-client.go
+++ b/coralogix/clientset/webhooks-client.go
@@ -2,34 +2,66 @@ package clientset
import (
"context"
- "fmt"
- "strings"
- "terraform-provider-coralogix/coralogix/clientset/rest"
+ webhooks "terraform-provider-coralogix/coralogix/clientset/grpc/webhooks"
)
type WebhooksClient struct {
- client *rest.Client
+ callPropertiesCreator *CallPropertiesCreator
}
-func (w WebhooksClient) CreateWebhook(ctx context.Context, body string) (string, error) {
- return w.client.Post(ctx, "/api/v1/external/integrations", "application/json", body)
+func (c WebhooksClient) CreateWebhook(ctx context.Context, req *webhooks.CreateOutgoingWebhookRequest) (*webhooks.CreateOutgoingWebhookResponse, error) {
+ callProperties, err := c.callPropertiesCreator.GetCallProperties(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ conn := callProperties.Connection
+ defer conn.Close()
+ client := webhooks.NewOutgoingWebhooksServiceClient(conn)
+
+ return client.CreateOutgoingWebhook(callProperties.Ctx, req, callProperties.CallOptions...)
}
-func (w WebhooksClient) GetWebhook(ctx context.Context, webhookId string) (string, error) {
- return w.client.Get(ctx, fmt.Sprintf("/api/v1/external/integrations/%s", webhookId))
+func (c WebhooksClient) GetWebhook(ctx context.Context, req *webhooks.GetOutgoingWebhookRequest) (*webhooks.GetOutgoingWebhookResponse, error) {
+ callProperties, err := c.callPropertiesCreator.GetCallProperties(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ conn := callProperties.Connection
+ defer conn.Close()
+ client := webhooks.NewOutgoingWebhooksServiceClient(conn)
+
+ return client.GetOutgoingWebhook(callProperties.Ctx, req, callProperties.CallOptions...)
}
-func (w WebhooksClient) UpdateWebhook(ctx context.Context, body string) (string, error) {
- return w.client.Post(ctx, "/api/v1/external/integrations", "application/json", body)
+func (c WebhooksClient) UpdateWebhook(ctx context.Context, req *webhooks.UpdateOutgoingWebhookRequest) (*webhooks.UpdateOutgoingWebhookResponse, error) {
+ callProperties, err := c.callPropertiesCreator.GetCallProperties(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ conn := callProperties.Connection
+ defer conn.Close()
+ client := webhooks.NewOutgoingWebhooksServiceClient(conn)
+
+ return client.UpdateOutgoingWebhook(callProperties.Ctx, req, callProperties.CallOptions...)
}
-func (w WebhooksClient) DeleteWebhook(ctx context.Context, webhookId string) (string, error) {
- return w.client.Delete(ctx, fmt.Sprintf("/api/v1/external/integrations/%s", webhookId))
+func (c WebhooksClient) DeleteWebhook(ctx context.Context, req *webhooks.DeleteOutgoingWebhookRequest) (*webhooks.DeleteOutgoingWebhookResponse, error) {
+ callProperties, err := c.callPropertiesCreator.GetCallProperties(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ conn := callProperties.Connection
+ defer conn.Close()
+ client := webhooks.NewOutgoingWebhooksServiceClient(conn)
+
+ return client.DeleteOutgoingWebhook(callProperties.Ctx, req, callProperties.CallOptions...)
}
func NewWebhooksClient(c *CallPropertiesCreator) *WebhooksClient {
- targetUrl := "https://" + strings.Replace(c.targetUrl, "grpc", "http", 1)
- client := rest.NewRestClient(targetUrl, c.apiKey)
- return &WebhooksClient{client: client}
+ return &WebhooksClient{callPropertiesCreator: c}
}
diff --git a/coralogix/data_source_coralogix_webhook.go b/coralogix/data_source_coralogix_webhook.go
index 3e332e94..91dc8d85 100644
--- a/coralogix/data_source_coralogix_webhook.go
+++ b/coralogix/data_source_coralogix_webhook.go
@@ -2,44 +2,93 @@ package coralogix
import (
"context"
- "encoding/json"
+ "fmt"
"log"
- "strconv"
- "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "github.com/hashicorp/terraform-plugin-framework/datasource"
+ "github.com/hashicorp/terraform-plugin-framework/resource"
+ "github.com/hashicorp/terraform-plugin-framework/types"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
"terraform-provider-coralogix/coralogix/clientset"
+ webhooks "terraform-provider-coralogix/coralogix/clientset/grpc/webhooks"
+
+ "google.golang.org/protobuf/types/known/wrapperspb"
)
-func dataSourceCoralogixWebhook() *schema.Resource {
- webhookSchema := datasourceSchemaFromResourceSchema(WebhookSchema())
- webhookSchema["id"] = &schema.Schema{
- Type: schema.TypeString,
- Required: true,
- }
+var _ datasource.DataSourceWithConfigure = &WebhookDataSource{}
+
+func NewWebhookDataSource() datasource.DataSource {
+ return &WebhookDataSource{}
+}
+
+type WebhookDataSource struct {
+ client *clientset.WebhooksClient
+}
+
+func (d *WebhookDataSource) Metadata(_ context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
+ resp.TypeName = req.ProviderTypeName + "_webhook"
+}
- return &schema.Resource{
- ReadContext: dataSourceCoralogixWebhookRead,
+func (d *WebhookDataSource) Configure(_ context.Context, req datasource.ConfigureRequest, resp *datasource.ConfigureResponse) {
+ if req.ProviderData == nil {
+ return
+ }
- Schema: webhookSchema,
+ clientSet, ok := req.ProviderData.(*clientset.ClientSet)
+ if !ok {
+ resp.Diagnostics.AddError(
+ "Unexpected Resource Configure Type",
+ fmt.Sprintf("Expected *clientset.ClientSet, got: %T. Please report this issue to the provider developers.", req.ProviderData),
+ )
+ return
}
+
+ d.client = clientSet.Webhooks()
}
-func dataSourceCoralogixWebhookRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
- id := d.Get("id").(string)
+func (d *WebhookDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, resp *datasource.SchemaResponse) {
+ var r WebhookResource
+ var resourceResp resource.SchemaResponse
+ r.Schema(nil, resource.SchemaRequest{}, &resourceResp)
+
+ resp.Schema = frameworkDatasourceSchemaFromFrameworkResourceSchema(resourceResp.Schema)
+}
+
+func (d *WebhookDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
+ var data *WebhookResourceModel
+ resp.Diagnostics.Append(req.Config.Get(ctx, &data)...)
+ if resp.Diagnostics.HasError() {
+ return
+ }
- log.Printf("[INFO] Reading webhook %s", id)
- resp, err := meta.(*clientset.ClientSet).Webhooks().GetWebhook(ctx, id)
+ //Get refreshed Webhook value from Coralogix
+ id := data.ID.ValueString()
+ log.Printf("[INFO] Reading Webhook: %s", id)
+ getWebhookResp, err := d.client.GetWebhook(ctx, &webhooks.GetOutgoingWebhookRequest{Id: wrapperspb.String(id)})
if err != nil {
log.Printf("[ERROR] Received error: %#v", err)
- return handleRpcErrorWithID(err, "webhook", id)
+ if status.Code(err) == codes.NotFound {
+ data.ID = types.StringNull()
+ resp.Diagnostics.AddWarning(
+ fmt.Sprintf("Webhook %q is in state, but no longer exists in Coralogix backend", id),
+ fmt.Sprintf("%s will be recreated when you apply", id),
+ )
+ } else {
+ resp.Diagnostics.AddError(
+ "Error reading Webhook",
+ handleRpcErrorNewFramework(err, "Webhook"),
+ )
+ }
+ return
}
- log.Printf("[INFO] Received webhook: %#v", resp)
+ log.Printf("[INFO] Received Webhook: %#v", getWebhookResp)
- var m map[string]interface{}
- if err = json.Unmarshal([]byte(resp), &m); err != nil {
- return diag.FromErr(err)
+ data, diags := flattenWebhook(ctx, getWebhookResp.GetWebhook())
+ if diags.HasError() {
+ resp.Diagnostics = diags
+ return
}
- d.SetId(strconv.Itoa(int(m["id"].(float64))))
- return setWebhook(d, m)
+ // Save data into Terraform state
+ resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
}
diff --git a/coralogix/data_source_coralogix_webhook_test.go b/coralogix/data_source_coralogix_webhook_test.go
index db06f562..43946ea6 100644
--- a/coralogix/data_source_coralogix_webhook_test.go
+++ b/coralogix/data_source_coralogix_webhook_test.go
@@ -9,15 +9,15 @@ import (
func TestAccCoralogixDataSourceWebhook_basic(t *testing.T) {
w := getRandomWebhook()
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
Steps: []resource.TestStep{
{
Config: testAccCoralogixResourceSlackWebhook(w) +
testAccCoralogixDataSourceWebhook_read(),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttr("data.coralogix_webhook.test", "name", w.name),
- resource.TestCheckResourceAttr("data.coralogix_webhook.test", "slack.0.url", w.url),
+ resource.TestCheckResourceAttr("data.coralogix_webhook.test", "slack.url", w.url),
),
},
},
diff --git a/coralogix/provider.go b/coralogix/provider.go
index 7fb02a0a..bddc3204 100644
--- a/coralogix/provider.go
+++ b/coralogix/provider.go
@@ -68,7 +68,6 @@ func OldProvider() *oldSchema.Provider {
"coralogix_hosted_dashboard": dataSourceCoralogixHostedDashboard(),
"coralogix_recording_rules_groups_set": dataSourceCoralogixRecordingRulesGroupsSet(),
"coralogix_tco_policy_override": dataSourceCoralogixTCOPolicyOverride(),
- "coralogix_webhook": dataSourceCoralogixWebhook(),
},
ResourcesMap: map[string]*oldSchema.Resource{
@@ -78,7 +77,6 @@ func OldProvider() *oldSchema.Provider {
"coralogix_data_set": resourceCoralogixDataSet(),
"coralogix_hosted_dashboard": resourceCoralogixHostedDashboard(),
"coralogix_recording_rules_groups_set": resourceCoralogixRecordingRulesGroupsSet(),
- "coralogix_webhook": resourceCoralogixWebhook(),
"coralogix_grafana_folder": resourceGrafanaFolder(),
},
@@ -282,6 +280,7 @@ func (p *coralogixProvider) DataSources(context.Context) []func() datasource.Dat
NewTCOPolicyTracesDataSource,
NewDashboardDataSource,
NewSLIDataSource,
+ NewWebhookDataSource,
}
}
@@ -293,5 +292,6 @@ func (p *coralogixProvider) Resources(context.Context) []func() resource.Resourc
NewTCOPolicyTracesResource,
NewDashboardResource,
NewSLIResource,
+ NewWebhookResource,
}
}
diff --git a/coralogix/resource_coralogix_action.go b/coralogix/resource_coralogix_action.go
index b038a873..975d7f0c 100644
--- a/coralogix/resource_coralogix_action.go
+++ b/coralogix/resource_coralogix_action.go
@@ -138,7 +138,6 @@ func (r *ActionResource) Schema(_ context.Context, _ resource.SchemaRequest, res
func (r *ActionResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) {
resource.ImportStatePassthroughID(ctx, path.Root("id"), req, resp)
-
}
func (r *ActionResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
diff --git a/coralogix/resource_coralogix_webhook.go b/coralogix/resource_coralogix_webhook.go
index ac53f211..3e542aec 100644
--- a/coralogix/resource_coralogix_webhook.go
+++ b/coralogix/resource_coralogix_webhook.go
@@ -2,26 +2,51 @@ package coralogix
import (
"context"
- "encoding/json"
"fmt"
"log"
"strconv"
"strings"
- "time"
- . "github.com/ahmetalpbalkan/go-linq"
- "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
+ "github.com/golang/protobuf/jsonpb"
+ "github.com/hashicorp/terraform-plugin-framework-validators/objectvalidator"
+ "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator"
+ "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
+ "github.com/hashicorp/terraform-plugin-framework/attr"
+ "github.com/hashicorp/terraform-plugin-framework/diag"
+ "github.com/hashicorp/terraform-plugin-framework/path"
+ "github.com/hashicorp/terraform-plugin-framework/resource"
+ "github.com/hashicorp/terraform-plugin-framework/resource/schema"
+ "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier"
+ "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringdefault"
+ "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier"
+ "github.com/hashicorp/terraform-plugin-framework/schema/validator"
+ "github.com/hashicorp/terraform-plugin-framework/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
+ "google.golang.org/protobuf/types/known/wrapperspb"
"terraform-provider-coralogix/coralogix/clientset"
+ webhooks "terraform-provider-coralogix/coralogix/clientset/grpc/webhooks"
)
var (
- validWebhookTypes = []string{"slack", "custom", "pager_duty", "email_group", "microsoft_teams", "jira", "opsgenie", "sendlog", "demisto"}
- validMethods = []string{"get", "post", "put"}
- customDefaultPayload = `{
+ _ resource.ResourceWithConfigure = &WebhookResource{}
+ _ resource.ResourceWithImportState = &WebhookResource{}
+ webhooksSchemaToProtoMethod = map[string]webhooks.GenericWebhookConfig_MethodType{
+ "get": webhooks.GenericWebhookConfig_GET,
+ "post": webhooks.GenericWebhookConfig_POST,
+ "put": webhooks.GenericWebhookConfig_PUT,
+ }
+ webhooksProtoToSchemaMethod = ReverseMap(webhooksSchemaToProtoMethod)
+ webhooksValidMethods = GetKeys(webhooksSchemaToProtoMethod)
+ webhooksProtoToSchemaSlackConfigDigestType = map[string]webhooks.SlackConfig_DigestType{
+ "error_and_critical_logs": webhooks.SlackConfig_ERROR_AND_CRITICAL_LOGS,
+ "flow_anomalies": webhooks.SlackConfig_FLOW_ANOMALIES,
+ "spike_anomalies": webhooks.SlackConfig_SPIKE_ANOMALIES,
+ "data_usage": webhooks.SlackConfig_DATA_USAGE,
+ }
+ webhooksSchemaToProtoSlackConfigDigestType = ReverseMap(webhooksProtoToSchemaSlackConfigDigestType)
+ webhooksValidSlackConfigDigestTypes = GetKeys(webhooksProtoToSchemaSlackConfigDigestType)
+ customDefaultPayload = `{
"uuid": "",
"alert_id": "$ALERT_ID",
"name": "$ALERT_NAME",
@@ -29,7 +54,7 @@ var (
"threshold": "$ALERT_THRESHOLD",
"timewindow": "$ALERT_TIMEWINDOW_MINUTES",
"group_by_labels": "$ALERT_GROUPBY_LABELS",
- "alert_action": "$ALERT_ACTION",
+ "alert_Webhook": "$ALERT_Webhook",
"alert_url": "$ALERT_URL",
"log_url": "$LOG_URL",
"icon_url": "$CORALOGIX_ICON_URL",
@@ -191,664 +216,902 @@ var (
}`
)
-func resourceCoralogixWebhook() *schema.Resource {
- return &schema.Resource{
- CreateContext: resourceCoralogixWebhookCreate,
- ReadContext: resourceCoralogixWebhookRead,
- UpdateContext: resourceCoralogixWebhookUpdate,
- DeleteContext: resourceCoralogixWebhookDelete,
+func NewWebhookResource() resource.Resource {
+ return &WebhookResource{}
+}
- Importer: &schema.ResourceImporter{
- StateContext: schema.ImportStatePassthroughContext,
- },
+type WebhookResource struct {
+ client *clientset.WebhooksClient
+}
- Timeouts: &schema.ResourceTimeout{
- Create: schema.DefaultTimeout(60 * time.Second),
- Read: schema.DefaultTimeout(30 * time.Second),
- Update: schema.DefaultTimeout(60 * time.Second),
- Delete: schema.DefaultTimeout(30 * time.Second),
- },
+type WebhookResourceModel struct {
+ ID types.String `tfsdk:"id"`
+ ExternalID types.String `tfsdk:"external_id"`
+ Name types.String `tfsdk:"name"`
+ CustomWebhook *CustomWebhookModel `tfsdk:"custom"`
+ Slack *SlackModel `tfsdk:"slack"`
+ PagerDuty *PagerDutyModel `tfsdk:"pager_duty"`
+ SendLog *SendLogModel `tfsdk:"sendlog"`
+ EmailGroup *EmailGroupModel `tfsdk:"email_group"`
+ MicrosoftTeams *MicrosoftTeamsModel `tfsdk:"microsoft_teams"`
+ Jira *JiraModel `tfsdk:"jira"`
+ Opsgenie *OpsgenieModel `tfsdk:"opsgenie"`
+ Demisto *DemistoModel `tfsdk:"demisto"`
+}
- Schema: WebhookSchema(),
+type CustomWebhookModel struct {
+ UUID types.String `tfsdk:"uuid"`
+ Method types.String `tfsdk:"method"`
+ Headers types.Map `tfsdk:"headers"`
+ Payload types.String `tfsdk:"payload"`
+ URL types.String `tfsdk:"url"`
+}
- Description: "Webhook defines integration. More info - https://coralogix.com/integrations/ (Alerting section).",
- }
+type SlackModel struct {
+ NotifyAbout types.Set `tfsdk:"notify_on"` //types.String
+ URL types.String `tfsdk:"url"`
}
-func resourceCoralogixWebhookCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
- body, err := extractCreateWebhookRequest(d)
- if err != nil {
- return diag.FromErr(err)
- }
+type PagerDutyModel struct {
+ ServiceKey types.String `tfsdk:"service_key"`
+}
- log.Printf("[INFO] Creating new webhook: %#v", body)
- resp, err := meta.(*clientset.ClientSet).Webhooks().CreateWebhook(ctx, body)
- if err != nil {
- log.Printf("[ERROR] Received error: %#v", err)
- return handleRpcError(err, "webhook")
- }
- log.Printf("[INFO] Submitted new webhook: %#v", resp)
+type SendLogModel struct {
+ UUID types.String `tfsdk:"uuid"`
+ Payload types.String `tfsdk:"payload"`
+ URL types.String `tfsdk:"url"`
+}
- var m map[string]interface{}
- if err = json.Unmarshal([]byte(resp), &m); err != nil {
- return diag.FromErr(err)
- }
- id := strconv.Itoa(int(m["id"].(float64)))
- d.SetId(id)
- return resourceCoralogixWebhookRead(ctx, d, meta)
+type EmailGroupModel struct {
+ Emails types.List `tfsdk:"emails"` //types.String
}
-func resourceCoralogixWebhookRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
- id := d.Id()
- log.Printf("[INFO] Reading webhook %s", id)
- resp, err := meta.(*clientset.ClientSet).Webhooks().GetWebhook(ctx, id)
- if err != nil {
- log.Printf("[ERROR] Received error: %#v", err)
- if status.Code(err) == codes.NotFound {
- d.SetId("")
- return diag.Diagnostics{diag.Diagnostic{
- Severity: diag.Warning,
- Summary: fmt.Sprintf("Webhook %q is in state, but no longer exists in Coralogix backend", id),
- Detail: fmt.Sprintf("%s will be recreated when you apply", id),
- }}
- }
- return handleRpcError(err, "webhook")
- }
- log.Printf("[INFO] Received webhook: %#v", resp)
+type MicrosoftTeamsModel struct {
+ URL types.String `tfsdk:"url"`
+}
- var m map[string]interface{}
- if err = json.Unmarshal([]byte(resp), &m); err != nil {
- return diag.FromErr(err)
- }
- return setWebhook(d, m)
+type JiraModel struct {
+ ApiKey types.String `tfsdk:"api_token"`
+ Email types.String `tfsdk:"email"`
+ ProjectID types.String `tfsdk:"project_key"`
+ URL types.String `tfsdk:"url"`
}
-func resourceCoralogixWebhookUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
- body, err := extractCreateWebhookRequest(d)
- if err != nil {
- return diag.FromErr(err)
- }
+type OpsgenieModel struct {
+ URL types.String `tfsdk:"url"`
+}
- log.Printf("[INFO] Updating webhook: %#v", body)
- resp, err := meta.(*clientset.ClientSet).Webhooks().UpdateWebhook(ctx, body)
- if err != nil {
- log.Printf("[ERROR] Received error: %#v", err)
- return handleRpcError(err, "webhook")
- }
- log.Printf("[INFO] Submitted updated webhook: %#v", resp)
- return resourceCoralogixWebhookRead(ctx, d, meta)
+type DemistoModel struct {
+ UUID types.String `tfsdk:"uuid"`
+ Payload types.String `tfsdk:"payload"`
+ URL types.String `tfsdk:"url"`
}
-func resourceCoralogixWebhookDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
- id := d.Id()
- log.Printf("[INFO] Deleting webhook %s\n", id)
- _, err := meta.(*clientset.ClientSet).Webhooks().DeleteWebhook(ctx, id)
- if err != nil {
- log.Printf("[ERROR] Received error: %#v\n", err)
- return handleRpcErrorWithID(err, "webhook", id)
+func (r *WebhookResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) {
+ resource.ImportStatePassthroughID(ctx, path.Root("id"), req, resp)
+}
+
+func (r *WebhookResource) Configure(_ context.Context, req resource.ConfigureRequest, resp *resource.ConfigureResponse) {
+ if req.ProviderData == nil {
+ return
+ }
+
+ clientSet, ok := req.ProviderData.(*clientset.ClientSet)
+ if !ok {
+ resp.Diagnostics.AddError(
+ "Unexpected Resource Configure Type",
+ fmt.Sprintf("Expected *clientset.ClientSet, got: %T. Please report this issue to the provider developers.", req.ProviderData),
+ )
+ return
}
- log.Printf("[INFO] webhook %s deleted\n", id)
- d.SetId("")
- return nil
+ r.client = clientSet.Webhooks()
}
-func WebhookSchema() map[string]*schema.Schema {
- return map[string]*schema.Schema{
- "name": {
- Type: schema.TypeString,
- Required: true,
- },
- "slack": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Optional: true,
- ValidateDiagFunc: urlValidationFunc(),
- },
+func (r *WebhookResource) Metadata(_ context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) {
+ resp.TypeName = req.ProviderTypeName + "_webhook"
+}
+
+func (r *WebhookResource) Schema(_ context.Context, _ resource.SchemaRequest, resp *resource.SchemaResponse) {
+ resp.Schema = schema.Schema{
+ Version: 0,
+ Attributes: map[string]schema.Attribute{
+ "id": schema.StringAttribute{
+ Computed: true,
+ PlanModifiers: []planmodifier.String{
+ stringplanmodifier.UseStateForUnknown(),
},
+ MarkdownDescription: "Webhook ID.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "custom": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Required: true,
- ValidateDiagFunc: urlValidationFunc(),
+ "external_id": schema.StringAttribute{
+ Computed: true,
+ PlanModifiers: []planmodifier.String{
+ stringplanmodifier.UseStateForUnknown(),
+ },
+ MarkdownDescription: "Webhook external ID. Using to linq webhook to alert.",
+ },
+ "name": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "Webhook name.",
+ },
+ "custom": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "uuid": schema.StringAttribute{
+ Optional: true,
+ Computed: true,
+ MarkdownDescription: "Webhook UUID. Computed automatically.",
},
- "uuid": {
- Type: schema.TypeString,
- Computed: true,
+ "method": schema.StringAttribute{
+ Optional: true,
+ Validators: []validator.String{
+ stringvalidator.OneOf(webhooksValidMethods...),
+ },
+ MarkdownDescription: fmt.Sprintf("Webhook method. can be one of: %s", strings.Join(webhooksValidMethods, ", ")),
},
- "method": {
- Type: schema.TypeString,
- ValidateFunc: validation.StringInSlice(validMethods, false),
- Required: true,
+ "headers": schema.MapAttribute{
+ Optional: true,
+ ElementType: types.StringType,
+ MarkdownDescription: "Webhook headers. Map of string to string.",
},
- "headers": {
- Type: schema.TypeString,
- Computed: true,
- Optional: true,
- ValidateDiagFunc: jsonValidationFuncWithDiagnostics(),
- DiffSuppressFunc: SuppressEquivalentJSONDiffs,
+ "payload": schema.StringAttribute{
+ Optional: true,
+ Computed: true,
+ Default: stringdefault.StaticString(customDefaultPayload),
+ MarkdownDescription: "Webhook payload. JSON string.",
},
- "payload": {
- Type: schema.TypeString,
- Optional: true,
- Default: customDefaultPayload,
- ValidateDiagFunc: jsonValidationFuncWithDiagnostics(),
- DiffSuppressFunc: SuppressEquivalentJSONDiffs,
+ "url": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "Webhook URL.",
},
},
- },
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "pager_duty": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "service_key": {
- Type: schema.TypeString,
- Optional: true,
- },
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
},
+ Optional: true,
+ MarkdownDescription: "Generic webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "email_group": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "emails": {
- Type: schema.TypeSet,
- Required: true,
- Elem: &schema.Schema{
- Type: schema.TypeString,
+ "slack": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "notify_on": schema.SetAttribute{
+ Optional: true,
+ ElementType: types.StringType,
+ Validators: []validator.Set{
+ setvalidator.ValueStringsAre(stringvalidator.OneOf(webhooksValidSlackConfigDigestTypes...)),
},
- Set: schema.HashString,
+ MarkdownDescription: fmt.Sprintf("Slack notifications. can be one of: %s", strings.Join(webhooksValidSlackConfigDigestTypes, ", ")),
+ },
+ "url": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "Slack URL.",
},
},
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "Slack webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "microsoft_teams": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Required: true,
- ValidateDiagFunc: urlValidationFunc(),
+ "pager_duty": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "service_key": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "PagerDuty service key.",
},
},
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "PagerDuty webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "jira": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Required: true,
- ValidateDiagFunc: urlValidationFunc(),
+ "sendlog": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "uuid": schema.StringAttribute{
+ Optional: true,
+ Computed: true,
+ MarkdownDescription: "Webhook UUID. Computed automatically.",
},
- "api_token": {
- Type: schema.TypeString,
- Required: true,
+ "url": schema.StringAttribute{
+ Required: true,
+ MarkdownDescription: "Webhook URL.",
},
- "email": {
- Type: schema.TypeString,
- Required: true,
+ "payload": schema.StringAttribute{
+ Optional: true,
+ Computed: true,
+ Default: stringdefault.StaticString(sendLockDefaultPayload),
+ MarkdownDescription: "Webhook payload. JSON string.",
},
- "project_key": {
- Type: schema.TypeString,
- Required: true,
+ },
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "Send log webhook.",
+ },
+ "email_group": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "emails": schema.ListAttribute{
+ Optional: true,
+ ElementType: types.StringType,
+ MarkdownDescription: "Emails list.",
},
},
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "Email group webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "opsgenie": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Required: true,
- ValidateDiagFunc: urlValidationFunc(),
+ "microsoft_teams": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "url": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "Microsoft Teams URL.",
},
},
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "Microsoft Teams webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "sendlog": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Computed: true,
+ "jira": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "api_token": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "Jira API token.",
},
- "uuid": {
- Type: schema.TypeString,
- Computed: true,
+ "email": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "email.",
},
- "payload": {
- Type: schema.TypeString,
- Optional: true,
- Default: sendLockDefaultPayload,
- ValidateDiagFunc: jsonValidationFuncWithDiagnostics(),
- DiffSuppressFunc: SuppressEquivalentJSONDiffs,
+ "project_key": schema.StringAttribute{
+ Optional: true,
+ MarkdownDescription: "Jira project key.",
},
+ "url": schema.StringAttribute{
+ Required: true,
+ MarkdownDescription: "Jira URL.",
+ },
+ },
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
},
+ Optional: true,
+ MarkdownDescription: "Jira webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
- },
- "demisto": {
- Type: schema.TypeList,
- Optional: true,
- Elem: &schema.Resource{
- Schema: map[string]*schema.Schema{
- "url": {
- Type: schema.TypeString,
- Computed: true,
+ "opsgenie": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "url": schema.StringAttribute{
+ Required: true,
+ MarkdownDescription: "Opsgenie URL.",
+ },
+ },
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("demisto"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "Opsgenie webhook.",
+ },
+ "demisto": schema.SingleNestedAttribute{
+ Attributes: map[string]schema.Attribute{
+ "uuid": schema.StringAttribute{
+ Optional: true,
+ Computed: true,
+ MarkdownDescription: "Webhook UUID. Computed automatically.",
},
- "uuid": {
- Type: schema.TypeString,
- Computed: true,
+ "payload": schema.StringAttribute{
+ Optional: true,
+ Computed: true,
+ Default: stringdefault.StaticString(demistoDefaultPayload),
+ MarkdownDescription: "Webhook payload. JSON string.",
},
- "payload": {
- Type: schema.TypeString,
- Optional: true,
- Default: demistoDefaultPayload,
- ValidateDiagFunc: jsonValidationFuncWithDiagnostics(),
- DiffSuppressFunc: SuppressEquivalentJSONDiffs,
+ "url": schema.StringAttribute{
+ Required: true,
+ MarkdownDescription: "Microsoft Teams URL.",
},
},
+ Validators: []validator.Object{
+ objectvalidator.ExactlyOneOf(
+ path.MatchRelative().AtParent().AtName("custom"),
+ path.MatchRelative().AtParent().AtName("slack"),
+ path.MatchRelative().AtParent().AtName("pager_duty"),
+ path.MatchRelative().AtParent().AtName("sendlog"),
+ path.MatchRelative().AtParent().AtName("email_group"),
+ path.MatchRelative().AtParent().AtName("microsoft_teams"),
+ path.MatchRelative().AtParent().AtName("jira"),
+ path.MatchRelative().AtParent().AtName("opsgenie"),
+ ),
+ },
+ Optional: true,
+ MarkdownDescription: "Demisto webhook.",
},
- MaxItems: 1,
- ExactlyOneOf: validWebhookTypes,
},
+ MarkdownDescription: "Coralogix webhook. For more info please review - https://coralogix.com/docs/coralogix-Webhook-extension/.",
+ }
+}
+
+func (r *WebhookResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
+ jsm := &jsonpb.Marshaler{}
+ var plan *WebhookResourceModel
+ diags := req.Plan.Get(ctx, &plan)
+ resp.Diagnostics.Append(diags...)
+ if resp.Diagnostics.HasError() {
+ return
+ }
+
+ createWebhookRequest, diags := extractCreateWebhookRequest(ctx, plan)
+ if diags.HasError() {
+ resp.Diagnostics.Append(diags...)
+ return
+ }
+ webhookStr, _ := jsm.MarshalToString(createWebhookRequest)
+ log.Printf("[INFO] Creating new webhook: %s", webhookStr)
+ createResp, err := r.client.CreateWebhook(ctx, createWebhookRequest)
+ if err != nil {
+ log.Printf("[ERROR] Received error: %#v", err)
+ resp.Diagnostics.AddError(
+ "Error creating Webhook",
+ "Could not create Webhook, unexpected error: "+err.Error(),
+ )
+ return
}
+ id := createResp.Id.GetValue()
+ log.Printf("[INFO] Submitted new webhook, id - %s", id)
+
+ readWebhookRequest := &webhooks.GetOutgoingWebhookRequest{
+ Id: wrapperspb.String(id),
+ }
+ getWebhookResp, err := r.client.GetWebhook(ctx, readWebhookRequest)
+ if err != nil {
+ log.Printf("[ERROR] Received error: %#v", err)
+ resp.Diagnostics.AddError(
+ "Error reading Webhook",
+ "Could not read Webhook, unexpected error: "+err.Error(),
+ )
+ return
+ }
+
+ getWebhookStr, _ := jsm.MarshalToString(getWebhookResp)
+ log.Printf("[INFO] Reading webhook - %s", getWebhookStr)
+
+ plan, diags = flattenWebhook(ctx, getWebhookResp.GetWebhook())
+
+ // Set state to fully populated data
+ diags = resp.State.Set(ctx, plan)
+ resp.Diagnostics.Append(diags...)
}
-func extractCreateWebhookRequest(d *schema.ResourceData) (string, error) {
- webhookTypeStr := From(validWebhookTypes).FirstWith(func(key interface{}) bool {
- return len(d.Get(key.(string)).([]interface{})) > 0
- }).(string)
- webhookType := d.Get(webhookTypeStr).([]interface{})[0].(map[string]interface{})
-
- var webhookTypeMap map[string]interface{}
- switch webhookTypeStr {
- case "slack":
- webhookTypeMap = expandSlack(webhookType)
- case "custom":
- webhookTypeMap = expandWebhook(webhookType)
- case "pager_duty":
- webhookTypeMap = expandPagerDuty(webhookType)
- case "sendlog":
- webhookTypeMap = expandSendlog(webhookType)
- case "email_group":
- webhookTypeMap = expandEmailGroup(webhookType)
- case "microsoft_teams":
- webhookTypeMap = expandMicrosoftTeams(webhookType)
- case "jira":
- webhookTypeMap = expandJira(webhookType)
- case "opsgenie":
- webhookTypeMap = expandOpsgenie(webhookType)
- case "demisto":
- webhookTypeMap = expandDemisto(webhookType)
- }
-
- webhookTypeMap["alias"] = d.Get("name").(string)
-
- if d.Id() != "" {
- if n, err := strconv.Atoi(d.Id()); err != nil {
- return "", err
+func (r *WebhookResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
+ jsm := &jsonpb.Marshaler{}
+ var state *WebhookResourceModel
+
+ diags := req.State.Get(ctx, &state)
+ resp.Diagnostics.Append(diags...)
+ if resp.Diagnostics.HasError() {
+ return
+ }
+
+ id := state.ID.ValueString()
+ readWebhookRequest := &webhooks.GetOutgoingWebhookRequest{
+ Id: wrapperspb.String(id),
+ }
+
+ log.Printf("[INFO] Reading Webhook: %s", id)
+ getWebhookResp, err := r.client.GetWebhook(ctx, readWebhookRequest)
+ if err != nil {
+ log.Printf("[ERROR] Received error: %#v", err)
+ if status.Code(err) == codes.NotFound || status.Code(err) == codes.NotFound {
+ state.ID = types.StringNull()
+ resp.Diagnostics.AddWarning(
+ fmt.Sprintf("Webhook %q is in state, but no longer exists in Coralogix backend", id),
+ fmt.Sprintf("%s will be recreated when you apply", id),
+ )
} else {
- webhookTypeMap["id"] = n
+ resp.Diagnostics.AddError(
+ "Error reading Webhook",
+ handleRpcErrorNewFramework(err, "Webhook"),
+ )
}
+ return
}
- if webhookRequestBody, err := json.Marshal(webhookTypeMap); err != nil {
- return "", err
- } else {
- return string(webhookRequestBody), nil
- }
+ getWebhookStr, _ := jsm.MarshalToString(getWebhookResp)
+ log.Printf("[INFO] Reading webhook - %s", getWebhookStr)
+
+ state, diags = flattenWebhook(ctx, getWebhookResp.GetWebhook())
+
+ // Set state to fully populated data
+ diags = resp.State.Set(ctx, state)
+ resp.Diagnostics.Append(diags...)
}
-func expandSlack(webhookType map[string]interface{}) map[string]interface{} {
- url := webhookType["url"].(string)
- return map[string]interface{}{
- "integration_type_id": 0,
- "integration_type": map[string]interface{}{
- "label": "Slack",
- "icon": "/assets/settings/slack-48.png",
- "id": 0,
- },
- "url": url,
- }
-}
-
-func expandWebhook(webhookType map[string]interface{}) map[string]interface{} {
- url := webhookType["url"].(string)
- method := valueFormat(webhookType["method"].(string))
- integrationTypeFields := toArrayFormat([]string{
- integrationTypeFieldsFormat("method", method),
- integrationTypeFieldsFormat("headers", webhookType["headers"].(string)),
- integrationTypeFieldsFormat("payload", webhookType["payload"].(string)),
- })
- return map[string]interface{}{
- "url": url,
- "integration_type_fields": integrationTypeFields,
- "integration_type_id": 1,
- "integration_type": map[string]interface{}{
- "label": "WebHook",
- "icon": "/assets/webhook.png",
- "id": 1,
- },
+func (r WebhookResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {
+ // Retrieve values from plan
+ var plan *WebhookResourceModel
+ diags := req.Plan.Get(ctx, &plan)
+ resp.Diagnostics.Append(diags...)
+ if resp.Diagnostics.HasError() {
+ return
+ }
+
+ webhookUpdateReq, diags := extractUpdateWebhookRequest(ctx, plan)
+ if diags.HasError() {
+ resp.Diagnostics.Append(diags...)
+ return
}
+ log.Printf("[INFO] Updating Webhook: %#v", webhookUpdateReq)
+ webhookUpdateResp, err := r.client.UpdateWebhook(ctx, webhookUpdateReq)
+ if err != nil {
+ log.Printf("[ERROR] Received error: %#v", err)
+ resp.Diagnostics.AddError(
+ "Error updating Webhook",
+ "Could not update Webhook, unexpected error: "+err.Error(),
+ )
+ return
+ }
+ log.Printf("[INFO] Submitted updated Webhhok: %#v", webhookUpdateResp)
+
+ // Get refreshed Webhook value from Coralogix
+ id := plan.ID.ValueString()
+ getWebhookResp, err := r.client.GetWebhook(ctx, &webhooks.GetOutgoingWebhookRequest{Id: wrapperspb.String(id)})
+ if err != nil {
+ log.Printf("[ERROR] Received error: %#v", err)
+ if status.Code(err) == codes.NotFound || status.Code(err) == codes.NotFound {
+ plan.ID = types.StringNull()
+ resp.Diagnostics.AddWarning(
+ fmt.Sprintf("Webhook %q is in state, but no longer exists in Coralogix backend", id),
+ fmt.Sprintf("%s will be recreated when you apply", id),
+ )
+ } else {
+ resp.Diagnostics.AddError(
+ "Error reading Webhook",
+ handleRpcErrorNewFramework(err, "Webhook"),
+ )
+ }
+ return
+ }
+ log.Printf("[INFO] Received Webhook: %#v", getWebhookResp)
+
+ plan, diags = flattenWebhook(ctx, getWebhookResp.GetWebhook())
+
+ // Set state to fully populated data
+ diags = resp.State.Set(ctx, plan)
+ resp.Diagnostics.Append(diags...)
}
-func expandPagerDuty(webhookType map[string]interface{}) map[string]interface{} {
- serviceKey := valueFormat(webhookType["service_key"].(string))
- integrationTypeFields := toArrayFormat([]string{
- integrationTypeFieldsFormat("serviceKey", serviceKey),
- })
- return map[string]interface{}{
- "integration_type_fields": integrationTypeFields,
- "integration_type_id": 2,
- "integration_type": map[string]interface{}{
- "label": "PagerDuty",
- "icon": "/assets/settings/pagerDuty.png",
- "id": 2,
- },
+func (r WebhookResource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {
+ var state WebhookResourceModel
+ diags := req.State.Get(ctx, &state)
+ resp.Diagnostics.Append(diags...)
+ if resp.Diagnostics.HasError() {
+ return
+ }
+
+ id := state.ID.ValueString()
+ log.Printf("[INFO] Deleting Webhook: %s", id)
+ _, err := r.client.DeleteWebhook(ctx, &webhooks.DeleteOutgoingWebhookRequest{Id: wrapperspb.String(id)})
+ if err != nil {
+ log.Printf("[ERROR] Received error: %#v", err)
+ resp.Diagnostics.AddError(
+ "Error deleting Webhook",
+ "Could not delete Webhook, unexpected error: "+err.Error(),
+ )
+ return
}
+ log.Printf("[INFO] Deleted Webhook: %s", id)
}
-func expandSendlog(webhookType map[string]interface{}) map[string]interface{} {
- url := webhookType["url"].(string)
- integrationTypeFields := toArrayFormat([]string{
- integrationTypeFieldsFormat("payload", webhookType["payload"].(string)),
- })
- return map[string]interface{}{
- "url": url,
- "integration_type_fields": integrationTypeFields,
- "integration_type_id": 3,
- "integration_type": map[string]interface{}{
- "label": "SendLog",
- "icon": "/assets/invite.png",
- "id": 3,
- },
+func extractCreateWebhookRequest(ctx context.Context, plan *WebhookResourceModel) (*webhooks.CreateOutgoingWebhookRequest, diag.Diagnostics) {
+ data := &webhooks.OutgoingWebhookInputData{
+ Name: typeStringToWrapperspbString(plan.Name),
}
+
+ data, diagnostics := expandWebhookType(ctx, plan, data)
+ if diagnostics.HasError() {
+ return nil, diagnostics
+ }
+
+ return &webhooks.CreateOutgoingWebhookRequest{
+ Data: data,
+ }, nil
}
-func expandEmailGroup(m map[string]interface{}) map[string]interface{} {
- emails := interfaceSliceToStringSlice(m["emails"].(*schema.Set).List())
- emailsStr := sliceToString(emails)
- integrationTypeFields := toArrayFormat([]string{
- integrationTypeFieldsFormat("payload", emailsStr),
- })
- return map[string]interface{}{
- "integration_type_fields": integrationTypeFields,
- "integration_type_id": 4,
- "integration_type": map[string]interface{}{
- "label": "Email Group",
- "icon": "/assets/settings/pagerDuty.png",
- "id": 4,
- },
+func extractUpdateWebhookRequest(ctx context.Context, plan *WebhookResourceModel) (*webhooks.UpdateOutgoingWebhookRequest, diag.Diagnostics) {
+ data := &webhooks.OutgoingWebhookInputData{
+ Name: typeStringToWrapperspbString(plan.Name),
+ }
+
+ data, diagnostics := expandWebhookType(ctx, plan, data)
+ if diagnostics.HasError() {
+ return nil, diagnostics
}
+
+ return &webhooks.UpdateOutgoingWebhookRequest{
+ Id: plan.ID.ValueString(),
+ Data: data,
+ }, nil
}
-func expandMicrosoftTeams(webhookType map[string]interface{}) map[string]interface{} {
- url := webhookType["url"].(string)
- return map[string]interface{}{
- "url": url,
- "integration_type_id": 5,
- "integration_type": map[string]interface{}{
- "label": "Microsoft Teams",
- "icon": "/assets/settings/teams.png",
- "id": 5,
- },
+func expandWebhookType(ctx context.Context, plan *WebhookResourceModel, data *webhooks.OutgoingWebhookInputData) (*webhooks.OutgoingWebhookInputData, diag.Diagnostics) {
+ var diags diag.Diagnostics
+ if plan.CustomWebhook != nil {
+ data.Config, data.Url, diags = expandGenericWebhook(ctx, plan.CustomWebhook)
+ data.Type = webhooks.WebhookType_GENERIC
+ } else if plan.Slack != nil {
+ data.Config, data.Url, diags = expandSlack(ctx, plan.Slack)
+ data.Type = webhooks.WebhookType_SLACK
+ } else if plan.PagerDuty != nil {
+ data.Config = expandPagerDuty(plan.PagerDuty)
+ data.Type = webhooks.WebhookType_PAGERDUTY
+ } else if plan.SendLog != nil {
+ data.Config, data.Url = expandSendLog(plan.SendLog)
+ data.Type = webhooks.WebhookType_SEND_LOG
+ } else if plan.EmailGroup != nil {
+ data.Config, diags = expandEmailGroup(ctx, plan.EmailGroup)
+ data.Type = webhooks.WebhookType_EMAIL_GROUP
+ } else if plan.MicrosoftTeams != nil {
+ data.Config, data.Url = expandMicrosoftTeams(plan.MicrosoftTeams)
+ data.Type = webhooks.WebhookType_MICROSOFT_TEAMS
+ } else if plan.Jira != nil {
+ data.Config, data.Url = expandJira(plan.Jira)
+ data.Type = webhooks.WebhookType_JIRA
+ } else if plan.Opsgenie != nil {
+ data.Config, data.Url = expandOpsgenie(plan.Opsgenie)
+ data.Type = webhooks.WebhookType_OPSGENIE
+ } else if plan.Demisto != nil {
+ data.Config, data.Url = expandDemisto(plan.Demisto)
+ data.Type = webhooks.WebhookType_DEMISTO
}
+
+ if diags.HasError() {
+ return nil, diags
+ }
+
+ return data, nil
}
-func expandJira(webhookType map[string]interface{}) map[string]interface{} {
- url := webhookType["url"].(string)
- integrationTypeFields := toArrayFormat([]string{
- integrationTypeFieldsFormat("apiToken", valueFormat(webhookType["api_token"].(string))),
- integrationTypeFieldsFormat("email", valueFormat(webhookType["email"].(string))),
- integrationTypeFieldsFormat("projectKey", valueFormat(webhookType["project_key"].(string))),
- })
- return map[string]interface{}{
- "url": url,
- "integration_type_fields": integrationTypeFields,
- "integration_type_id": 6,
- "integration_type": map[string]interface{}{
- "label": "Jira",
- "icon": "/assets/settings/jira.png",
- "id": 6,
- },
+func expandMicrosoftTeams(microsoftTeams *MicrosoftTeamsModel) (*webhooks.OutgoingWebhookInputData_MicrosoftTeams, *wrapperspb.StringValue) {
+ var url *wrapperspb.StringValue
+ if planUrl := microsoftTeams.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
}
+
+ return &webhooks.OutgoingWebhookInputData_MicrosoftTeams{
+ MicrosoftTeams: &webhooks.MicrosoftTeamsConfig{},
+ }, url
}
-func expandOpsgenie(webhookType map[string]interface{}) map[string]interface{} {
- url := webhookType["url"].(string)
- return map[string]interface{}{
- "url": url,
- "integration_type_id": 7,
- "integration_type": map[string]interface{}{
- "label": "Opsgenie",
- "icon": "/assets/settings/opsgenie.png",
- "id": 7,
+func expandSlack(ctx context.Context, slack *SlackModel) (*webhooks.OutgoingWebhookInputData_Slack, *wrapperspb.StringValue, diag.Diagnostics) {
+ digests, diags := expandDigests(ctx, slack.NotifyAbout)
+ if diags.HasError() {
+ return nil, nil, diags
+ }
+
+ var url *wrapperspb.StringValue
+ if planUrl := slack.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
+ }
+
+ return &webhooks.OutgoingWebhookInputData_Slack{
+ Slack: &webhooks.SlackConfig{
+ Digests: digests,
},
+ }, url, nil
+}
+
+func expandDigests(ctx context.Context, digestsSet types.Set) ([]*webhooks.SlackConfig_Digest, diag.Diagnostics) {
+ digests := digestsSet.Elements()
+ expandedDigests := make([]*webhooks.SlackConfig_Digest, 0, len(digests))
+ var diags diag.Diagnostics
+ for _, digest := range digests {
+ val, err := digest.ToTerraformValue(ctx)
+ if err != nil {
+ diags.AddError("Error expanding digest", err.Error())
+ continue
+ }
+ var str string
+ val.As(&str)
+ digestType := webhooksProtoToSchemaSlackConfigDigestType[str]
+ expandedDigests = append(expandedDigests, expandDigest(digestType))
}
+ return expandedDigests, diags
}
-func expandDemisto(webhookType map[string]interface{}) map[string]interface{} {
- integrationTypeFields := toArrayFormat([]string{
- integrationTypeFieldsFormat("payload", webhookType["payload"].(string)),
- })
- return map[string]interface{}{
- "integration_type_fields": integrationTypeFields,
- "integration_type_id": 8,
- "integration_type": map[string]interface{}{
- "label": "Demisto",
- "icon": "/assets/settings/demisto.png",
- "id": 8,
- },
+func expandDigest(digest webhooks.SlackConfig_DigestType) *webhooks.SlackConfig_Digest {
+ return &webhooks.SlackConfig_Digest{
+ Type: digest,
+ IsActive: wrapperspb.Bool(true),
}
}
-func setWebhook(d *schema.ResourceData, resp map[string]interface{}) diag.Diagnostics {
- var webhookTypeStr string
- var webhook interface{}
- switch resp["integration_type_id"].(float64) {
- case 0:
- webhookTypeStr = "slack"
- webhook = flattenSlack(resp)
- case 1:
- webhookTypeStr = "custom"
- webhook = flattenWebhook(resp)
- case 2:
- webhookTypeStr = "pager_duty"
- webhook = flattenPagerDuty(resp)
- case 3:
- webhookTypeStr = "sendlog"
- webhook = flattenSendlog(resp)
- case 4:
- webhookTypeStr = "email_group"
- webhook = flattenEmailGroup(resp)
- case 5:
- webhookTypeStr = "microsoft_teams"
- webhook = flattenMicrosoftTeams(resp)
- case 6:
- webhookTypeStr = "jira"
- webhook = flattenJira(resp)
- case 7:
- webhookTypeStr = "opsgenie"
- webhook = flattenOpsgenie(resp)
- case 8:
- webhookTypeStr = "demisto"
- webhook = flattenDemisto(resp)
- }
-
- if err := d.Set(webhookTypeStr, webhook); err != nil {
- return diag.FromErr(err)
- }
-
- if err := d.Set("name", resp["alias"]); err != nil {
- return diag.FromErr(err)
- }
-
- return nil
-}
-
-func flattenSlack(resp map[string]interface{}) interface{} {
- return []map[string]interface{}{
- {
- "url": resp["url"],
- },
+func expandGenericWebhook(ctx context.Context, genericWebhook *CustomWebhookModel) (*webhooks.OutgoingWebhookInputData_GenericWebhook, *wrapperspb.StringValue, diag.Diagnostics) {
+ headers, diags := typeMapToStringMap(ctx, genericWebhook.Headers)
+ if diags.HasError() {
+ return nil, nil, diags
}
+
+ var url *wrapperspb.StringValue
+ if planUrl := genericWebhook.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
+ }
+
+ return &webhooks.OutgoingWebhookInputData_GenericWebhook{
+ GenericWebhook: &webhooks.GenericWebhookConfig{
+ Uuid: expandUuid(genericWebhook.UUID),
+ Method: webhooksSchemaToProtoMethod[genericWebhook.Method.ValueString()],
+ Headers: headers,
+ Payload: typeStringToWrapperspbString(genericWebhook.Payload),
+ },
+ }, url, nil
}
-func flattenWebhook(resp map[string]interface{}) interface{} {
- integrationTypeFieldsStr := resp["integration_type_fields"].(string)
- integrationTypeFields := extractIntegrationTypeFields(integrationTypeFieldsStr)
- payload := marshalMap(integrationTypeFields["payload"])
- headers := marshalMap(integrationTypeFields["headers"])
- return []map[string]interface{}{
- {
- "url": resp["url"],
- "uuid": integrationTypeFields["uuid"],
- "method": integrationTypeFields["method"],
- "headers": headers,
- "payload": payload,
+func expandPagerDuty(pagerDuty *PagerDutyModel) *webhooks.OutgoingWebhookInputData_PagerDuty {
+ return &webhooks.OutgoingWebhookInputData_PagerDuty{
+ PagerDuty: &webhooks.PagerDutyConfig{
+ ServiceKey: typeStringToWrapperspbString(pagerDuty.ServiceKey),
},
}
}
-func flattenPagerDuty(resp map[string]interface{}) interface{} {
- integrationTypeFieldsStr := resp["integration_type_fields"].(string)
- integrationTypeFields := extractIntegrationTypeFields(integrationTypeFieldsStr)
- serviceKey := integrationTypeFields["serviceKey"].(string)
- return []map[string]interface{}{
- {
- "service_key": serviceKey,
+func expandSendLog(sendLog *SendLogModel) (*webhooks.OutgoingWebhookInputData_SendLog, *wrapperspb.StringValue) {
+ var url *wrapperspb.StringValue
+ if planUrl := sendLog.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
+ }
+
+ return &webhooks.OutgoingWebhookInputData_SendLog{
+ SendLog: &webhooks.SendLogConfig{
+ Uuid: expandUuid(sendLog.UUID),
+ Payload: typeStringToWrapperspbString(sendLog.Payload),
},
+ }, url
+}
+
+func expandEmailGroup(ctx context.Context, emailGroup *EmailGroupModel) (*webhooks.OutgoingWebhookInputData_EmailGroup, diag.Diagnostics) {
+ emailAddresses, diags := typeStringSliceToWrappedStringSlice(ctx, emailGroup.Emails.Elements())
+ if diags.HasError() {
+ return nil, diags
}
+
+ return &webhooks.OutgoingWebhookInputData_EmailGroup{
+ EmailGroup: &webhooks.EmailGroupConfig{
+ EmailAddresses: emailAddresses,
+ },
+ }, nil
}
-func flattenSendlog(resp map[string]interface{}) interface{} {
- integrationTypeFieldsStr := resp["integration_type_fields"].(string)
- integrationTypeFields := extractIntegrationTypeFields(integrationTypeFieldsStr)
- payload := marshalMap(integrationTypeFields["payload"])
- return []map[string]interface{}{
- {
- "url": resp["url"],
- "payload": payload,
+func expandJira(jira *JiraModel) (*webhooks.OutgoingWebhookInputData_Jira, *wrapperspb.StringValue) {
+ var url *wrapperspb.StringValue
+ if planUrl := jira.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
+ }
+
+ return &webhooks.OutgoingWebhookInputData_Jira{
+ Jira: &webhooks.JiraConfig{
+ ApiToken: typeStringToWrapperspbString(jira.ApiKey),
+ Email: typeStringToWrapperspbString(jira.Email),
+ ProjectKey: typeStringToWrapperspbString(jira.ProjectID),
},
+ }, url
+}
+
+func expandOpsgenie(opsgenie *OpsgenieModel) (*webhooks.OutgoingWebhookInputData_Opsgenie, *wrapperspb.StringValue) {
+ var url *wrapperspb.StringValue
+ if planUrl := opsgenie.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
}
+
+ return &webhooks.OutgoingWebhookInputData_Opsgenie{
+ Opsgenie: &webhooks.OpsgenieConfig{},
+ }, url
}
-func flattenEmailGroup(resp map[string]interface{}) interface{} {
- integrationTypeFieldsStr := resp["integration_type_fields"].(string)
- integrationTypeFields := extractIntegrationTypeFields(integrationTypeFieldsStr)
- return []map[string]interface{}{
- {
- "emails": integrationTypeFields["payload"],
+func expandDemisto(demisto *DemistoModel) (*webhooks.OutgoingWebhookInputData_Demisto, *wrapperspb.StringValue) {
+ var url *wrapperspb.StringValue
+ if planUrl := demisto.URL; !(planUrl.IsNull() || planUrl.IsUnknown()) {
+ url = wrapperspb.String(planUrl.ValueString())
+ }
+
+ return &webhooks.OutgoingWebhookInputData_Demisto{
+ Demisto: &webhooks.DemistoConfig{
+ Uuid: expandUuid(demisto.UUID),
+ Payload: typeStringToWrapperspbString(demisto.Payload),
},
+ }, url
+}
+
+func flattenWebhook(ctx context.Context, webhook *webhooks.OutgoingWebhook) (*WebhookResourceModel, diag.Diagnostics) {
+ result := &WebhookResourceModel{
+ ID: wrapperspbStringToTypeString(webhook.Id),
+ ExternalID: types.StringValue(strconv.Itoa(int(webhook.GetExternalId().GetValue()))),
+ Name: wrapperspbStringToTypeString(webhook.Name),
}
+
+ var diags diag.Diagnostics
+ switch webhook.Config.(type) {
+ case *webhooks.OutgoingWebhook_Slack:
+ result.Slack, diags = flattenSlack(webhook.GetSlack(), webhook.GetUrl())
+ case *webhooks.OutgoingWebhook_GenericWebhook:
+ result.CustomWebhook, diags = flattenGenericWebhook(ctx, webhook.GetGenericWebhook(), webhook.GetUrl())
+ case *webhooks.OutgoingWebhook_PagerDuty:
+ result.PagerDuty = flattenPagerDuty(webhook.GetPagerDuty())
+ case *webhooks.OutgoingWebhook_SendLog:
+ result.SendLog = flattenSendLog(webhook.GetSendLog(), webhook.GetUrl())
+ case *webhooks.OutgoingWebhook_EmailGroup:
+ result.EmailGroup = flattenEmailGroup(webhook.GetEmailGroup())
+ case *webhooks.OutgoingWebhook_MicrosoftTeams:
+ result.MicrosoftTeams = flattenMicrosoftTeams(webhook.GetMicrosoftTeams(), webhook.GetUrl())
+ case *webhooks.OutgoingWebhook_Jira:
+ result.Jira = flattenJira(webhook.GetJira(), webhook.GetUrl())
+ case *webhooks.OutgoingWebhook_Opsgenie:
+ result.Opsgenie = flattenOpsgenie(webhook.GetOpsgenie(), webhook.GetUrl())
+ case *webhooks.OutgoingWebhook_Demisto:
+ result.Demisto = flattenDemisto(webhook.GetDemisto(), webhook.GetUrl())
+ }
+
+ return result, diags
}
-func flattenMicrosoftTeams(resp map[string]interface{}) interface{} {
- return []map[string]interface{}{
- {
- "url": resp["url"],
- },
+func flattenGenericWebhook(ctx context.Context, genericWebhook *webhooks.GenericWebhookConfig, url *wrapperspb.StringValue) (*CustomWebhookModel, diag.Diagnostics) {
+ headers, diags := types.MapValueFrom(ctx, types.StringType, genericWebhook.Headers)
+ return &CustomWebhookModel{
+ UUID: wrapperspbStringToTypeString(genericWebhook.Uuid),
+ Method: types.StringValue(webhooksProtoToSchemaMethod[genericWebhook.Method]),
+ Headers: headers,
+ Payload: wrapperspbStringToTypeString(genericWebhook.Payload),
+ URL: wrapperspbStringToTypeString(url),
+ }, diags
+}
+
+func flattenSlack(slack *webhooks.SlackConfig, url *wrapperspb.StringValue) (*SlackModel, diag.Diagnostics) {
+ digests, diags := flattenDigests(slack.GetDigests())
+ if diags.HasError() {
+ return nil, diags
}
+
+ return &SlackModel{
+ NotifyAbout: digests,
+ URL: wrapperspbStringToTypeString(url),
+ }, nil
}
-func flattenJira(resp map[string]interface{}) interface{} {
- integrationTypeFieldsStr := resp["integration_type_fields"].(string)
- integrationTypeFields := extractIntegrationTypeFields(integrationTypeFieldsStr)
- return []map[string]interface{}{
- {
- "api_token": integrationTypeFields["apiToken"],
- "email": integrationTypeFields["email"],
- "project_key": integrationTypeFields["projectKey"],
- "url": resp["url"],
- },
+func flattenDigests(digests []*webhooks.SlackConfig_Digest) (types.Set, diag.Diagnostics) {
+ if len(digests) == 0 {
+ return types.SetNull(types.StringType), nil
}
+
+ var diagnostics diag.Diagnostics
+ digestsElements := make([]attr.Value, 0, len(digests))
+ for _, digest := range digests {
+ flattenedDigest := flattenDigest(digest)
+ digestsElements = append(digestsElements, flattenedDigest)
+ }
+
+ return types.SetValueMust(types.StringType, digestsElements), diagnostics
}
-func flattenOpsgenie(resp map[string]interface{}) interface{} {
- return []map[string]interface{}{
- {
- "url": resp["url"],
- },
+func flattenDigest(digest *webhooks.SlackConfig_Digest) types.String {
+ return types.StringValue(webhooksSchemaToProtoSlackConfigDigestType[digest.GetType()])
+}
+
+func flattenPagerDuty(pagerDuty *webhooks.PagerDutyConfig) *PagerDutyModel {
+ return &PagerDutyModel{
+ ServiceKey: wrapperspbStringToTypeString(pagerDuty.ServiceKey),
}
}
-func flattenDemisto(resp map[string]interface{}) interface{} {
- integrationTypeFieldsStr := resp["integration_type_fields"].(string)
- integrationTypeFields := extractIntegrationTypeFields(integrationTypeFieldsStr)
- payload := marshalMap(integrationTypeFields["payload"])
- return []map[string]interface{}{
- {
- "url": resp["url"],
- "payload": payload,
- },
+func flattenSendLog(sendLog *webhooks.SendLogConfig, url *wrapperspb.StringValue) *SendLogModel {
+ return &SendLogModel{
+ UUID: wrapperspbStringToTypeString(sendLog.Uuid),
+ Payload: wrapperspbStringToTypeString(sendLog.Payload),
+ URL: wrapperspbStringToTypeString(url),
}
}
-func integrationTypeFieldsFormat(key, value string) string {
- return fmt.Sprintf("{\"name\":\"%s\",\"value\":%s}", key, value)
+func flattenEmailGroup(emailGroup *webhooks.EmailGroupConfig) *EmailGroupModel {
+ return &EmailGroupModel{
+ Emails: wrappedStringSliceToTypeStringList(emailGroup.EmailAddresses),
+ }
}
-func valueFormat(str string) string {
- return fmt.Sprintf("\"%s\"", str)
+func flattenMicrosoftTeams(_ *webhooks.MicrosoftTeamsConfig, url *wrapperspb.StringValue) *MicrosoftTeamsModel {
+ return &MicrosoftTeamsModel{
+ URL: wrapperspbStringToTypeString(url),
+ }
}
-func toArrayFormat(integrationTypeFields []string) string {
- return fmt.Sprintf("[%s]", strings.Join(integrationTypeFields, ", "))
+func flattenJira(jira *webhooks.JiraConfig, url *wrapperspb.StringValue) *JiraModel {
+ return &JiraModel{
+ ApiKey: wrapperspbStringToTypeString(jira.ApiToken),
+ Email: wrapperspbStringToTypeString(jira.Email),
+ ProjectID: wrapperspbStringToTypeString(jira.ProjectKey),
+ URL: wrapperspbStringToTypeString(url),
+ }
}
-func extractIntegrationTypeFields(str string) map[string]interface{} {
- var fields []map[string]interface{}
- json.Unmarshal([]byte(str), &fields)
- results := make(map[string]interface{})
- for _, field := range fields {
- name := field["name"].(string)
- value := field["value"]
- results[name] = value
+func flattenOpsgenie(_ *webhooks.OpsgenieConfig, url *wrapperspb.StringValue) *OpsgenieModel {
+ return &OpsgenieModel{
+ URL: wrapperspbStringToTypeString(url),
}
- return results
}
-func marshalMap(v interface{}) string {
- payload, _ := json.Marshal(v)
- return string(payload)
+func flattenDemisto(demisto *webhooks.DemistoConfig, url *wrapperspb.StringValue) *DemistoModel {
+ return &DemistoModel{
+ UUID: wrapperspbStringToTypeString(demisto.Uuid),
+ Payload: wrapperspbStringToTypeString(demisto.Payload),
+ URL: wrapperspbStringToTypeString(url),
+ }
}
diff --git a/coralogix/resource_coralogix_webhook_test.go b/coralogix/resource_coralogix_webhook_test.go
index 879bcd88..123d2e30 100644
--- a/coralogix/resource_coralogix_webhook_test.go
+++ b/coralogix/resource_coralogix_webhook_test.go
@@ -2,15 +2,15 @@ package coralogix
import (
"context"
- "encoding/json"
"fmt"
- "strconv"
"testing"
"github.com/hashicorp/terraform-plugin-testing/helper/acctest"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/terraform"
+ "google.golang.org/protobuf/types/known/wrapperspb"
"terraform-provider-coralogix/coralogix/clientset"
+ webhooks "terraform-provider-coralogix/coralogix/clientset/grpc/webhooks"
)
type webhookTestFields struct {
@@ -41,9 +41,9 @@ func TestAccCoralogixResourceSlackWebhook(t *testing.T) {
resourceName := "coralogix_webhook.test"
webhook := getRandomWebhook()
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -51,7 +51,7 @@ func TestAccCoralogixResourceSlackWebhook(t *testing.T) {
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "slack.0.url", webhook.url),
+ resource.TestCheckResourceAttr(resourceName, "slack.url", webhook.url),
),
},
{
@@ -67,12 +67,12 @@ func TestAccCoralogixResourceCustomWebhook(t *testing.T) {
resourceName := "coralogix_webhook.test"
webhook := &customWebhookTestFields{
webhookTestFields: *getRandomWebhook(),
- method: selectRandomlyFromSlice(validMethods),
+ method: selectRandomlyFromSlice(webhooksValidMethods),
}
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -80,8 +80,8 @@ func TestAccCoralogixResourceCustomWebhook(t *testing.T) {
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "custom.0.url", webhook.url),
- resource.TestCheckResourceAttr(resourceName, "custom.0.method", webhook.method),
+ resource.TestCheckResourceAttr(resourceName, "custom.url", webhook.url),
+ resource.TestCheckResourceAttr(resourceName, "custom.method", webhook.method),
),
},
{
@@ -100,9 +100,9 @@ func TestAccCoralogixResourcePagerDutyWebhook(t *testing.T) {
serviceKey: acctest.RandomWithPrefix("tf-acc-test"),
}
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -110,7 +110,7 @@ func TestAccCoralogixResourcePagerDutyWebhook(t *testing.T) {
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "pager_duty.0.service_key", webhook.serviceKey),
+ resource.TestCheckResourceAttr(resourceName, "pager_duty.service_key", webhook.serviceKey),
),
},
{
@@ -129,9 +129,9 @@ func TestAccCoralogixResourceEmailGroupWebhook(t *testing.T) {
emails: []string{"example@coralogix.com"},
}
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -139,7 +139,7 @@ func TestAccCoralogixResourceEmailGroupWebhook(t *testing.T) {
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "email_group.0.emails.0", webhook.emails[0]),
+ resource.TestCheckResourceAttr(resourceName, "email_group.emails.0", webhook.emails[0]),
),
},
{
@@ -160,9 +160,9 @@ func TestAccCoralogixResourceJiraWebhook(t *testing.T) {
projectKey: acctest.RandomWithPrefix("tf-acc-test"),
}
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -170,10 +170,10 @@ func TestAccCoralogixResourceJiraWebhook(t *testing.T) {
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "jira.0.url", webhook.url),
- resource.TestCheckResourceAttr(resourceName, "jira.0.api_token", webhook.apiToken),
- resource.TestCheckResourceAttr(resourceName, "jira.0.project_key", webhook.projectKey),
- resource.TestCheckResourceAttr(resourceName, "jira.0.email", webhook.email),
+ resource.TestCheckResourceAttr(resourceName, "jira.url", webhook.url),
+ resource.TestCheckResourceAttr(resourceName, "jira.api_token", webhook.apiToken),
+ resource.TestCheckResourceAttr(resourceName, "jira.project_key", webhook.projectKey),
+ resource.TestCheckResourceAttr(resourceName, "jira.email", webhook.email),
),
},
{
@@ -189,17 +189,16 @@ func TestAccCoralogixResourceMicrosoftTeamsWebhook(t *testing.T) {
resourceName := "coralogix_webhook.test"
webhook := getRandomWebhook()
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
-
Config: testAccCoralogixResourceMicrosoftTeamsWebhook(webhook),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "microsoft_teams.0.url", webhook.url),
+ resource.TestCheckResourceAttr(resourceName, "microsoft_teams.url", webhook.url),
),
},
{
@@ -215,12 +214,11 @@ func TestAccCoralogixResourceSendLogWebhook(t *testing.T) {
resourceName := "coralogix_webhook.test"
webhook := getRandomWebhook()
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
-
Config: testAccCoralogixResourceSendLogWebhook(webhook),
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
@@ -240,9 +238,9 @@ func TestAccCoralogixResourceOpsgenieTeamsWebhook(t *testing.T) {
resourceName := "coralogix_webhook.test"
webhook := getRandomWebhook()
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -250,7 +248,7 @@ func TestAccCoralogixResourceOpsgenieTeamsWebhook(t *testing.T) {
Check: resource.ComposeAggregateTestCheckFunc(
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttr(resourceName, "name", webhook.name),
- resource.TestCheckResourceAttr(resourceName, "opsgenie.0.url", webhook.url),
+ resource.TestCheckResourceAttr(resourceName, "opsgenie.url", webhook.url),
),
},
{
@@ -266,9 +264,9 @@ func TestAccCoralogixResourceDemistoTeamsWebhook(t *testing.T) {
resourceName := "coralogix_webhook.test"
webhook := getRandomWebhook()
resource.Test(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories,
- CheckDestroy: testAccCheckWebhookDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
+ CheckDestroy: testAccCheckWebhookDestroy,
Steps: []resource.TestStep{
{
@@ -297,14 +295,9 @@ func testAccCheckWebhookDestroy(s *terraform.State) error {
continue
}
- resp, err := client.GetWebhook(ctx, rs.Primary.ID)
+ resp, err := client.GetWebhook(ctx, &webhooks.GetOutgoingWebhookRequest{Id: wrapperspb.String(rs.Primary.ID)})
if err == nil {
- var m map[string]interface{}
- if err = json.Unmarshal([]byte(resp), &m); err != nil {
- return nil
- }
- id := strconv.Itoa(int(m["id"].(float64)))
- if id == rs.Primary.ID {
+ if resp.GetWebhook().GetId().GetValue() == rs.Primary.ID {
return fmt.Errorf("webhook still exists: %s", rs.Primary.ID)
}
}
@@ -324,7 +317,7 @@ func getRandomWebhook() *webhookTestFields {
func testAccCoralogixResourceSlackWebhook(w *webhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- slack {
+ slack = {
url = "%s"
}
}
@@ -335,10 +328,10 @@ func testAccCoralogixResourceSlackWebhook(w *webhookTestFields) string {
func testAccCoralogixResourceCustomWebhook(w *customWebhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- custom {
+ custom = {
url = "%s"
method = "%s"
- headers = jsonencode({ "custom" : "header" })
+ headers = { "Content-Type" : "application/json" }
payload = jsonencode({ "custom" : "payload" })
}
}
@@ -349,7 +342,7 @@ func testAccCoralogixResourceCustomWebhook(w *customWebhookTestFields) string {
func testAccCoralogixResourcePagerdutyWebhook(w *pagerDutyWebhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- pager_duty {
+ pager_duty = {
service_key = "%s"
}
}
@@ -360,7 +353,7 @@ func testAccCoralogixResourcePagerdutyWebhook(w *pagerDutyWebhookTestFields) str
func testAccCoralogixResourceEmailGroupWebhook(w *emailGroupWebhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- email_group {
+ email_group = {
emails = %s
}
}
@@ -371,18 +364,19 @@ func testAccCoralogixResourceEmailGroupWebhook(w *emailGroupWebhookTestFields) s
func testAccCoralogixResourceSendLogWebhook(w *webhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" test {
name = "%s"
- sendlog {
+ sendlog = {
payload = jsonencode({ "custom" : "payload" })
+ url = "%s"
}
}
`,
- w.name)
+ w.name, w.url)
}
func testAccCoralogixResourceMicrosoftTeamsWebhook(w *webhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- microsoft_teams {
+ microsoft_teams = {
url = "%s"
}
}
@@ -393,7 +387,7 @@ func testAccCoralogixResourceMicrosoftTeamsWebhook(w *webhookTestFields) string
func testAccCoralogixResourceJiraWebhook(w *jiraWebhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- jira {
+ jira = {
url = "%s"
api_token = "%s"
email = "%s"
@@ -407,7 +401,7 @@ func testAccCoralogixResourceJiraWebhook(w *jiraWebhookTestFields) string {
func testAccCoralogixResourceOpsgenieWebhook(w *webhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- opsgenie {
+ opsgenie = {
url = "%s"
}
}
@@ -418,10 +412,11 @@ func testAccCoralogixResourceOpsgenieWebhook(w *webhookTestFields) string {
func testAccCoralogixResourceDemistoWebhook(w *webhookTestFields) string {
return fmt.Sprintf(`resource "coralogix_webhook" "test" {
name = "%s"
- demisto {
+ demisto = {
payload = jsonencode({ "custom" : "payload" })
+ url = "%s"
}
}
`,
- w.name)
+ w.name, w.url)
}
diff --git a/coralogix/utils.go b/coralogix/utils.go
index 38759c9a..305c10b6 100644
--- a/coralogix/utils.go
+++ b/coralogix/utils.go
@@ -12,6 +12,7 @@ import (
"strconv"
"time"
+ gouuid "github.com/google/uuid"
"github.com/hashicorp/go-cty/cty"
"github.com/hashicorp/terraform-plugin-framework/attr"
datasourceschema "github.com/hashicorp/terraform-plugin-framework/datasource/schema"
@@ -746,3 +747,16 @@ func parseNumUint32(desired string) uint32 {
}
return uint32(parsed)
}
+
+func typeMapToStringMap(ctx context.Context, m types.Map) (map[string]string, diag2.Diagnostics) {
+ var result map[string]string
+ diags := m.ElementsAs(ctx, &result, true)
+ return result, diags
+}
+
+func expandUuid(uuid types.String) *wrapperspb.StringValue {
+ if uuid.IsNull() || uuid.IsUnknown() {
+ return &wrapperspb.StringValue{Value: gouuid.NewString()}
+ }
+ return &wrapperspb.StringValue{Value: uuid.ValueString()}
+}
diff --git a/docs/data-sources/webhook.md b/docs/data-sources/webhook.md
index 1b14deb6..45f47bdb 100644
--- a/docs/data-sources/webhook.md
+++ b/docs/data-sources/webhook.md
@@ -3,45 +3,46 @@
page_title: "coralogix_webhook Data Source - terraform-provider-coralogix"
subcategory: ""
description: |-
-
+ Coralogix webhook. For more info please review - https://coralogix.com/docs/coralogix-Webhook-extension/.
---
# coralogix_webhook (Data Source)
-## Example Usage
+Coralogix webhook. For more info please review - https://coralogix.com/docs/coralogix-Webhook-extension/.
+
-```hcl
-data "coralogix_webhook" "imported_coralogix_webhook_example" {
- id = coralogix_webhook.slack_webhook.id
-}
-```
## Schema
+### Required
+
+- `id` (String) Webhook ID.
+
### Read-Only
-- `custom` (List of Object) (see [below for nested schema](#nestedatt--custom))
-- `demisto` (List of Object) (see [below for nested schema](#nestedatt--demisto))
-- `email_group` (List of Object) (see [below for nested schema](#nestedatt--email_group))
-- `id` (String) The ID of this resource.
-- `jira` (List of Object) (see [below for nested schema](#nestedatt--jira))
-- `microsoft_teams` (List of Object) (see [below for nested schema](#nestedatt--microsoft_teams))
-- `opsgenie` (List of Object) (see [below for nested schema](#nestedatt--opsgenie))
-- `pager_duty` (List of Object) (see [below for nested schema](#nestedatt--pager_duty))
-- `sendlog` (List of Object) (see [below for nested schema](#nestedatt--sendlog))
-- `slack` (List of Object) (see [below for nested schema](#nestedatt--slack))
+- `custom` (Attributes) Generic webhook. (see [below for nested schema](#nestedatt--custom))
+- `demisto` (Attributes) Demisto webhook. (see [below for nested schema](#nestedatt--demisto))
+- `email_group` (Attributes) Email group webhook. (see [below for nested schema](#nestedatt--email_group))
+- `external_id` (String) Webhook external ID. Using to linq webhook to alert.
+- `jira` (Attributes) Jira webhook. (see [below for nested schema](#nestedatt--jira))
+- `microsoft_teams` (Attributes) Microsoft Teams webhook. (see [below for nested schema](#nestedatt--microsoft_teams))
+- `name` (String) Webhook name.
+- `opsgenie` (Attributes) Opsgenie webhook. (see [below for nested schema](#nestedatt--opsgenie))
+- `pager_duty` (Attributes) PagerDuty webhook. (see [below for nested schema](#nestedatt--pager_duty))
+- `sendlog` (Attributes) Send log webhook. (see [below for nested schema](#nestedatt--sendlog))
+- `slack` (Attributes) Slack webhook. (see [below for nested schema](#nestedatt--slack))
### Nested Schema for `custom`
Read-Only:
-- `headers` (String)
-- `method` (String)
-- `payload` (String)
-- `url` (String)
-- `uuid` (String)
+- `headers` (Map of String) Webhook headers. Map of string to string.
+- `method` (String) Webhook method. can be one of: get, post, put
+- `payload` (String) Webhook payload. JSON string.
+- `url` (String) Webhook URL.
+- `uuid` (String) Webhook UUID. Computed automatically.
@@ -49,9 +50,9 @@ Read-Only:
Read-Only:
-- `payload` (String)
-- `url` (String)
-- `uuid` (String)
+- `payload` (String) Webhook payload. JSON string.
+- `url` (String) Microsoft Teams URL.
+- `uuid` (String) Webhook UUID. Computed automatically.
@@ -59,7 +60,7 @@ Read-Only:
Read-Only:
-- `emails` (Set of String)
+- `emails` (List of String) Emails list.
@@ -67,10 +68,10 @@ Read-Only:
Read-Only:
-- `api_token` (String)
-- `email` (String)
-- `project_key` (String)
-- `url` (String)
+- `api_token` (String) Jira API token.
+- `email` (String) email.
+- `project_key` (String) Jira project key.
+- `url` (String) Jira URL.
@@ -78,7 +79,7 @@ Read-Only:
Read-Only:
-- `url` (String)
+- `url` (String) Microsoft Teams URL.
@@ -86,7 +87,7 @@ Read-Only:
Read-Only:
-- `url` (String)
+- `url` (String) Opsgenie URL.
@@ -94,7 +95,7 @@ Read-Only:
Read-Only:
-- `service_key` (String)
+- `service_key` (String) PagerDuty service key.
@@ -102,9 +103,9 @@ Read-Only:
Read-Only:
-- `payload` (String)
-- `url` (String)
-- `uuid` (String)
+- `payload` (String) Webhook payload. JSON string.
+- `url` (String) Webhook URL.
+- `uuid` (String) Webhook UUID. Computed automatically.
@@ -112,6 +113,5 @@ Read-Only:
Read-Only:
-- `url` (String)
-
-
+- `notify_on` (Set of String) Slack notifications. can be one of: error_and_critical_logs, flow_anomalies, spike_anomalies, data_usage
+- `url` (String) Slack URL.
diff --git a/docs/resources/rules_group-example.png b/docs/resources/rules_group-example.png
deleted file mode 100644
index af988b97..00000000
Binary files a/docs/resources/rules_group-example.png and /dev/null differ
diff --git a/docs/resources/webhook.md b/docs/resources/webhook.md
index bde4453f..404f5398 100644
--- a/docs/resources/webhook.md
+++ b/docs/resources/webhook.md
@@ -1,7 +1,5 @@
---
-
# generated by https://github.com/hashicorp/terraform-plugin-docs
-
page_title: "coralogix_webhook Resource - terraform-provider-coralogix"
subcategory: ""
description: "Webhook defines integration. More info - https://coralogix.com/integrations/ (Alerting section)."
@@ -9,433 +7,119 @@ description: "Webhook defines integration. More info - https://coralogix.com/int
# coralogix_webhook (Resource)
-Webhook defines integration. More info - https://coralogix.com/integrations/ (Alerting section).
-
-## Example Usage
-
-### Slack Webhook
-
-```hcl
-resource "coralogix_webhook" "slack_webhook" {
- name = "slack-webhook"
- slack {
- url = "https://join.slack.com/example"
- }
-}
-```
-
-### Custom Webhook
-
-```hcl
-resource "coralogix_webhook" "custom_webhook" {
- name = "custom-webhook"
- custom {
- url = "https://example-url.com/"
- method = "post"
- headers = jsonencode({ "Content-Type" : "application/json" })
- payload = jsonencode({
- "uuid" : "80019a4b-5ad3-5dd1-4f17-f61a386f0221",
- "alert_id" : "$ALERT_ID",
- "name" : "$ALERT_NAME",
- "description" : "$ALERT_DESCRIPTION",
- "threshold" : "$ALERT_THRESHOLD",
- "timewindow" : "$ALERT_TIMEWINDOW_MINUTES",
- "group_by_labels" : "$ALERT_GROUPBY_LABELS",
- "alert_action" : "$ALERT_ACTION",
- "alert_url" : "$ALERT_URL",
- "log_url" : "$LOG_URL",
- "icon_url" : "$CORALOGIX_ICON_URL",
- "service" : "$SERVICE",
- "duration" : "$DURATION",
- "errors" : "$ERRORS",
- "spans" : "$SPANS",
- "fields" : [
- {
- "key" : "team",
- "value" : "$TEAM_NAME"
- },
- {
- "key" : "application",
- "value" : "$APPLICATION_NAME"
- },
- {
- "key" : "subsystem",
- "value" : "$SUBSYSTEM_NAME"
- },
- {
- "key" : "severity",
- "value" : "$EVENT_SEVERITY"
- },
- {
- "key" : "computer",
- "value" : "$COMPUTER_NAME"
- },
- {
- "key" : "ipAddress",
- "value" : "$IP_ADDRESS"
- },
- {
- "key" : "timestamp",
- "value" : "$EVENT_TIMESTAMP"
- },
- {
- "key" : "hitCount",
- "value" : "$HIT_COUNT"
- },
- {
- "key" : "text",
- "value" : "$LOG_TEXT"
- },
- {
- "key" : "Custom field",
- "value" : "$JSON_KEY"
- },
- {
- "key" : "metricKey",
- "value" : "$METRIC_KEY"
- },
- {
- "key" : "metricOperator",
- "value" : "$METRIC_OPERATOR"
- },
- {
- "key" : "timeframe",
- "value" : "$TIMEFRAME"
- },
- {
- "key" : "timeframePercentageOverThreshold",
- "value" : "$TIMEFRAME_OVER_THRESHOLD"
- },
- {
- "key" : "metricCriteria",
- "value" : "$METRIC_CRITERIA"
- },
- {
- "key" : "ratioQueryOne",
- "value" : "$RATIO_QUERY_ONE"
- },
- {
- "key" : "ratioQueryTwo",
- "value" : "$RATIO_QUERY_TWO"
- },
- {
- "key" : "ratioTimeframe",
- "value" : "$RATIO_TIMEFRAME"
- },
- {
- "key" : "ratioGroupByKeys",
- "value" : "$RATIO_GROUP_BY_KEYS"
- },
- {
- "key" : "ratioGroupByTable",
- "value" : "$RATIO_GROUP_BY_TABLE"
- },
- {
- "key" : "uniqueCountValuesList",
- "value" : "$UNIQUE_COUNT_VALUES_LIST"
- },
- {
- "key" : "newValueTrackedKey",
- "value" : "$NEW_VALUE_TRACKED_KEY"
- },
- {
- "key" : "metaLabels",
- "value" : "$META_LABELS"
- }
- ]
- })
- }
-}
-```
-
-### PagerDuty Webhook
-
-```hcl
-resource "coralogix_webhook" "pager_duty_webhook" {
- name = "pagerduty-webhook"
- pager_duty {
- service_key = "service-key"
- }
-}
-```
-
-### Email-Group Webhook
-
-```hcl
-resource "coralogix_webhook" "email_group_webhook" {
- name = "email-group-webhook"
- email_group {
- emails = ["user@example.com"]
- }
-}
-```
-
-### Microsoft-Teams Webhook
-
-```hcl
-resource "coralogix_webhook" "microsoft_teams_webhook" {
- name = "microsoft-teams-webhook"
- microsoft_teams {
- url = "https://example-url.com/"
- }
-}
-```
-
-### Jira Webhook
-
-```hcl
-resource "coralogix_webhook" "jira_webhook" {
- name = "jira-webhook"
- jira {
- url = "https://coralogix.atlassian.net/jira/your-work"
- api_token = "api-token"
- email = "example@coralogix.com"
- project_key = "project-key"
- }
-}
-```
-
-### Opsgenie Webhook
-
-```hcl
-resource "coralogix_webhook" "opsgenie_webhook" {
- name = "opsgenie-webhook"
- opsgenie {
- url = "https://example-url.com/"
- }
-}
-```
-
-### Demisto Webhook
-
-```hcl
-resource "coralogix_webhook" "demisto_webhook" {
- name = "demisto-webhook"
- demisto {
- payload = jsonencode({
- "privateKey" : "",
- "applicationName" : "Coralogix Alerts",
- "subsystemName" : "Coralogix Alerts",
- "computerName" : "$COMPUTER_NAME",
- "logEntries" : [
- {
- "severity" : 3,
- "timestamp" : "$EVENT_TIMESTAMP_MS",
- "text" : {
- "integration_text" : "Security Incident",
- "alert_application" : "$APPLICATION_NAME",
- "alert_subsystem" : "$SUBSYSTEM_NAME",
- "alert_severity" : "$EVENT_SEVERITY",
- "alert_id" : "$ALERT_ID",
- "alert_name" : "$ALERT_NAME",
- "alert_url" : "$ALERT_URL",
- "hit_count" : "$HIT_COUNT",
- "alert_type_id" : "53d222e2-e7b2-4fa6-80d4-9935425d47dd"
- }
- }
- ],
- "uuid" : "45c2d83a-1c75-2360-8741-dd75aabc8d57"
- })
- }
-}
-```
-
-### Send-Log Webhook
-
-```hcl
-resource "coralogix_webhook" "sendlog_webhook" {
- name = "sendlog-webhook"
- sendlog {
- payload = jsonencode({
- "privateKey" : "",
- "applicationName" : "$APPLICATION_NAME",
- "subsystemName" : "$SUBSYSTEM_NAME",
- "computerName" : "$COMPUTER_NAME",
- "logEntries" : [
- {
- "severity" : 3,
- "timestamp" : "$EVENT_TIMESTAMP_MS",
- "text" : {
- "integration_text" : "",
- "alert_severity" : "$EVENT_SEVERITY",
- "alert_id" : "$ALERT_ID",
- "alert_name" : "$ALERT_NAME",
- "alert_url" : "$ALERT_URL",
- "hit_count" : "$HIT_COUNT"
- }
- }
- ],
- "uuid" : ""
- })
- }
-}
-```
-
-### Example of usage of webhooks in alert's recipients
-
-```hcl
-resource "coralogix_alert" "standard_alert" {
- name = "Standard alert example"
- description = "Example of standard alert from terraform"
- severity = "Critical"
-
- notification {
- recipients {
- emails = ["user@example.com"]
- webhooks = [coralogix_webhook.slack_webhook.name, coralogix_webhook.custom_webhook.name]
- }
- notify_every_min = 1
- }
-
- standard {
- search_query = "remote_addr_enriched:/.*/"
- condition {
- immediately = true
- }
- }
-}
-```
-
-## Schema
+Coralogix webhook. For more info please review - https://coralogix.com/docs/coralogix-Webhook-extension/.
+
-### Required
-- `name` (String)
+
+## Schema
### Optional
-- `custom` (Block List, Max: 1) (see [below for nested schema](#nestedblock--custom))
-- `demisto` (Block List, Max: 1) (see [below for nested schema](#nestedblock--demisto))
-- `email_group` (Block List, Max: 1) (see [below for nested schema](#nestedblock--email_group))
-- `jira` (Block List, Max: 1) (see [below for nested schema](#nestedblock--jira))
-- `microsoft_teams` (Block List, Max: 1) (see [below for nested schema](#nestedblock--microsoft_teams))
-- `opsgenie` (Block List, Max: 1) (see [below for nested schema](#nestedblock--opsgenie))
-- `pager_duty` (Block List, Max: 1) (see [below for nested schema](#nestedblock--pager_duty))
-- `sendlog` (Block List, Max: 1) (see [below for nested schema](#nestedblock--sendlog))
-- `slack` (Block List, Max: 1) (see [below for nested schema](#nestedblock--slack))
-- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
+- `demisto` (Attributes) Demisto webhook. (see [below for nested schema](#nestedatt--demisto))
+- `email_group` (Attributes) Email group webhook. (see [below for nested schema](#nestedatt--email_group))
+- `custom` (Attributes) Generic webhook. (see [below for nested schema](#nestedatt--generic_webhook))
+- `jira` (Attributes) Jira webhook. (see [below for nested schema](#nestedatt--jira))
+- `microsoft_teams` (Attributes) Microsoft Teams webhook. (see [below for nested schema](#nestedatt--microsoft_teams))
+- `name` (String) Webhook name.
+- `opsgenie` (Attributes) Opsgenie webhook. (see [below for nested schema](#nestedatt--opsgenie))
+- `pager_duty` (Attributes) PagerDuty webhook. (see [below for nested schema](#nestedatt--pager_duty))
+- `sendlog` (Attributes) Send log webhook. (see [below for nested schema](#nestedatt--sendlog))
+- `slack` (Attributes) Slack webhook. (see [below for nested schema](#nestedatt--slack))
### Read-Only
-- `id` (String) The ID of this resource.
+- `external_id` (String) Webhook external ID. Using to linq webhook to alert.
+- `id` (String) Webhook ID.
-
-### Nested Schema for `custom`
+
+### Nested Schema for `demisto`
Required:
-- `method` (String)
-- `url` (String)
+- `url` (String) Microsoft Teams URL.
Optional:
-- `headers` (String)
-- `payload` (String)
-
-Read-Only:
+- `payload` (String) Webhook payload. JSON string.
+- `uuid` (String) Webhook UUID. Computed automatically.
-- `uuid` (String)
-
-
-### Nested Schema for `demisto`
+
+### Nested Schema for `email_group`
Optional:
-- `payload` (String)
-
-Read-Only:
-
-- `url` (String)
-- `uuid` (String)
+- `emails` (List of String) Emails list.
-
-### Nested Schema for `email_group`
+
+### Nested Schema for `custom`
-Required:
+Optional:
-- `emails` (Set of String)
+- `headers` (Map of String) Webhook headers. Map of string to string.
+- `method` (String) Webhook method. can be one of: get, post, put
+- `payload` (String) Webhook payload. JSON string.
+- `url` (String) Webhook URL.
+- `uuid` (String) Webhook UUID. Computed automatically.
-
+
### Nested Schema for `jira`
Required:
-- `api_token` (String)
-- `email` (String)
-- `project_key` (String)
-- `url` (String)
+- `url` (String) Jira URL.
+
+Optional:
+
+- `api_token` (String) Jira API token.
+- `email` (String) email.
+- `project_key` (String) Jira project key.
-
+
### Nested Schema for `microsoft_teams`
-Required:
+Optional:
-- `url` (String)
+- `url` (String) Microsoft Teams URL.
-
+
### Nested Schema for `opsgenie`
Required:
-- `url` (String)
+- `url` (String) Opsgenie URL.
-
+
### Nested Schema for `pager_duty`
Optional:
-- `service_key` (String)
+- `service_key` (String) PagerDuty service key.
-
+
### Nested Schema for `sendlog`
-Optional:
-
-- `payload` (String)
-
-Read-Only:
-
-- `url` (String)
-- `uuid` (String)
-
+Required:
-
-### Nested Schema for `slack`
+- `url` (String) Webhook URL.
Optional:
-- `url` (String)
+- `payload` (String) Webhook payload. JSON string.
+- `uuid` (String) Webhook UUID. Computed automatically.
-
-### Nested Schema for `timeouts`
+
+### Nested Schema for `slack`
Optional:
-- `create` (String)
-- `delete` (String)
-- `read` (String)
-- `update` (String)
-
-
-## Import
-
-```sh
-terraform import coralogix_webhook.example
-```
-
-to get the coralogix_webhook id run the following command and look for the id of the coralogix_webhook you want to import:
-```sh
-curl --location --request GET 'https://ng-api-http./api/v1/external/integrations/' \
---header 'Authorization: Bearer ' \
---data-raw ''
-```
-
-[region-domain table](../index.md#region-domain-table)
\ No newline at end of file
+- `notify_on` (Set of String) Slack notifications. can be one of: error_and_critical_logs, flow_anomalies, spike_anomalies, data_usage
+- `url` (String) Slack URL.
diff --git a/examples/alert/main.tf b/examples/alert/main.tf
index bdb13e64..709f125a 100644
--- a/examples/alert/main.tf
+++ b/examples/alert/main.tf
@@ -25,7 +25,7 @@ resource "coralogix_alert" "standard_alert" {
notifications_group {
group_by_fields = ["coralogix.metadata.sdkId", "EventType"]
notification {
- integration_id = coralogix_webhook.slack_webhook.id
+ integration_id = coralogix_webhook.slack_webhook.external_id
retriggering_period_minutes = 60
}
notification {
@@ -449,7 +449,8 @@ resource "coralogix_alert" "flow_alert" {
resource "coralogix_webhook" "slack_webhook" {
name = "slack-webhook"
- slack {
+ slack = {
+ notify_about = ["flow_anomalies"]
url = "https://join.slack.com/example"
}
}
\ No newline at end of file
diff --git a/examples/webhook/main.tf b/examples/webhook/main.tf
index 1ade522c..089de530 100644
--- a/examples/webhook/main.tf
+++ b/examples/webhook/main.tf
@@ -14,71 +14,70 @@ provider "coralogix" {
resource "coralogix_webhook" "slack_webhook" {
name = "slack-webhook"
- slack {
+ slack = {
+ notify_about = ["flow_anomalies"]
url = "https://join.slack.com/example"
}
}
-data "coralogix_webhook" "imported_coralogix_webhook_example" {
- id = coralogix_webhook.slack_webhook.id
-}
-
resource "coralogix_webhook" "custom_webhook" {
name = "custom-webhook"
- custom {
- url = "https://example-url.com/"
+ custom = {
method = "post"
- headers = jsonencode({ "Content-Type" : "application/json" })
+ headers = { "Content-Type" : "application/json" }
+ url = "https://example-url.com/"
}
}
resource "coralogix_webhook" "pager_duty_webhook" {
name = "pagerduty-webhook"
- pager_duty {
+ pager_duty = {
service_key = "service-key"
}
}
resource "coralogix_webhook" "email_group_webhook" {
name = "email-group-webhook"
- email_group {
+ email_group = {
emails = ["user@example.com"]
}
}
-
+#
resource "coralogix_webhook" "microsoft_teams_webhook" {
name = "microsoft-teams-webhook"
- microsoft_teams {
+ microsoft_teams ={
url = "https://example-url.com/"
}
}
resource "coralogix_webhook" "jira_webhook" {
name = "jira-webhook"
- jira {
- url = "https://coralogix.atlassian.net/jira/your-work"
+ jira = {
api_token = "api-token"
email = "example@coralogix.com"
project_key = "project-key"
+ url = "https://coralogix.atlassian.net/jira/your-work"
}
}
resource "coralogix_webhook" "opsgenie_webhook" {
name = "opsgenie-webhook"
- opsgenie {
+ opsgenie = {
url = "https://example-url.com/"
}
}
resource "coralogix_webhook" "demisto_webhook" {
name = "demisto-webhook"
- demisto {
+ demisto = {
+ url = "https://example-url.com/"
}
}
resource "coralogix_webhook" "sendlog_webhook" {
name = "sendlog-webhook"
- sendlog {
+ sendlog = {
+ url = "https://example-url.com/"
}
}
@@ -90,7 +89,7 @@ resource "coralogix_alert" "standard_alert" {
notifications_group {
notification {
- integration_id = coralogix_webhook.slack_webhook.id
+ integration_id = coralogix_webhook.slack_webhook.external_id
retriggering_period_minutes = 60
}
}
diff --git a/go.mod b/go.mod
index bea5ce93..cc88fe48 100644
--- a/go.mod
+++ b/go.mod
@@ -33,7 +33,7 @@ require (
github.com/cloudflare/circl v1.3.3 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/google/go-cmp v0.5.9 // indirect
- github.com/google/uuid v1.3.0 // indirect
+ github.com/google/uuid v1.4.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-checkpoint v0.5.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
diff --git a/go.sum b/go.sum
index 34296727..4a82d696 100644
--- a/go.sum
+++ b/go.sum
@@ -72,6 +72,8 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
+github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grafana/grafana-api-golang-client v0.23.0 h1:Uta0dSkxWYf1D83/E7MRLCG69387FiUc+k9U/35nMhY=
github.com/grafana/grafana-api-golang-client v0.23.0/go.mod h1:24W29gPe9yl0/3A9X624TPkAOR8DpHno490cPwnkv8E=
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=