// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/securitycenter/v1/notification_config.proto

package securitycenter

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Cloud Security Command Center (Cloud SCC) notification configs.
//
// A notification config is a Cloud SCC resource that contains the configuration
// to send notifications for create/update events of findings, assets and etc.
type NotificationConfig struct {
	// The relative resource name of this notification config. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Example:
	// "organizations/{organization_id}/notificationConfigs/notify_public_bucket".
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The description of the notification config (max of 1024 characters).
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// The PubSub topic to send notifications to. Its format is
	// "projects/[project_id]/topics/[topic]".
	PubsubTopic string `protobuf:"bytes,3,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"`
	// Output only. The service account that needs "pubsub.topics.publish"
	// permission to publish to the PubSub topic.
	ServiceAccount string `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
	// The config for triggering notifications.
	//
	// Types that are valid to be assigned to NotifyConfig:
	//	*NotificationConfig_StreamingConfig_
	NotifyConfig         isNotificationConfig_NotifyConfig `protobuf_oneof:"notify_config"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *NotificationConfig) Reset()         { *m = NotificationConfig{} }
func (m *NotificationConfig) String() string { return proto.CompactTextString(m) }
func (*NotificationConfig) ProtoMessage()    {}
func (*NotificationConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_8283693b130632bd, []int{0}
}

func (m *NotificationConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NotificationConfig.Unmarshal(m, b)
}
func (m *NotificationConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NotificationConfig.Marshal(b, m, deterministic)
}
func (m *NotificationConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NotificationConfig.Merge(m, src)
}
func (m *NotificationConfig) XXX_Size() int {
	return xxx_messageInfo_NotificationConfig.Size(m)
}
func (m *NotificationConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_NotificationConfig.DiscardUnknown(m)
}

var xxx_messageInfo_NotificationConfig proto.InternalMessageInfo

func (m *NotificationConfig) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *NotificationConfig) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *NotificationConfig) GetPubsubTopic() string {
	if m != nil {
		return m.PubsubTopic
	}
	return ""
}

func (m *NotificationConfig) GetServiceAccount() string {
	if m != nil {
		return m.ServiceAccount
	}
	return ""
}

type isNotificationConfig_NotifyConfig interface {
	isNotificationConfig_NotifyConfig()
}

type NotificationConfig_StreamingConfig_ struct {
	StreamingConfig *NotificationConfig_StreamingConfig `protobuf:"bytes,5,opt,name=streaming_config,json=streamingConfig,proto3,oneof"`
}

func (*NotificationConfig_StreamingConfig_) isNotificationConfig_NotifyConfig() {}

func (m *NotificationConfig) GetNotifyConfig() isNotificationConfig_NotifyConfig {
	if m != nil {
		return m.NotifyConfig
	}
	return nil
}

func (m *NotificationConfig) GetStreamingConfig() *NotificationConfig_StreamingConfig {
	if x, ok := m.GetNotifyConfig().(*NotificationConfig_StreamingConfig_); ok {
		return x.StreamingConfig
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*NotificationConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*NotificationConfig_StreamingConfig_)(nil),
	}
}

// The config for streaming-based notifications, which send each event as soon
// as it is detected.
type NotificationConfig_StreamingConfig struct {
	// Expression that defines the filter to apply across create/update events
	// of assets or findings as specified by the event type. The expression is a
	// list of zero or more restrictions combined via logical operators `AND`
	// and `OR`. Parentheses are supported, and `OR` has higher precedence than
	// `AND`.
	//
	// Restrictions have the form `<field> <operator> <value>` and may have a
	// `-` character in front of them to indicate negation. The fields map to
	// those defined in the corresponding resource.
	//
	// The supported operators are:
	//
	// * `=` for all value types.
	// * `>`, `<`, `>=`, `<=` for integer values.
	// * `:`, meaning substring matching, for strings.
	//
	// The supported value types are:
	//
	// * string literals in quotes.
	// * integer literals without quotes.
	// * boolean literals `true` and `false` without quotes.
	Filter               string   `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NotificationConfig_StreamingConfig) Reset()         { *m = NotificationConfig_StreamingConfig{} }
func (m *NotificationConfig_StreamingConfig) String() string { return proto.CompactTextString(m) }
func (*NotificationConfig_StreamingConfig) ProtoMessage()    {}
func (*NotificationConfig_StreamingConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_8283693b130632bd, []int{0, 0}
}

func (m *NotificationConfig_StreamingConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NotificationConfig_StreamingConfig.Unmarshal(m, b)
}
func (m *NotificationConfig_StreamingConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NotificationConfig_StreamingConfig.Marshal(b, m, deterministic)
}
func (m *NotificationConfig_StreamingConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NotificationConfig_StreamingConfig.Merge(m, src)
}
func (m *NotificationConfig_StreamingConfig) XXX_Size() int {
	return xxx_messageInfo_NotificationConfig_StreamingConfig.Size(m)
}
func (m *NotificationConfig_StreamingConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_NotificationConfig_StreamingConfig.DiscardUnknown(m)
}

var xxx_messageInfo_NotificationConfig_StreamingConfig proto.InternalMessageInfo

func (m *NotificationConfig_StreamingConfig) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func init() {
	proto.RegisterType((*NotificationConfig)(nil), "google.cloud.securitycenter.v1.NotificationConfig")
	proto.RegisterType((*NotificationConfig_StreamingConfig)(nil), "google.cloud.securitycenter.v1.NotificationConfig.StreamingConfig")
}

func init() {
	proto.RegisterFile("google/cloud/securitycenter/v1/notification_config.proto", fileDescriptor_8283693b130632bd)
}

var fileDescriptor_8283693b130632bd = []byte{
	// 495 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xc1, 0x6e, 0x13, 0x3d,
	0x10, 0xc7, 0xbf, 0x24, 0xfd, 0x2a, 0xe1, 0x00, 0x41, 0x3e, 0x40, 0x08, 0x50, 0xd2, 0x9e, 0x8a,
	0x84, 0x6c, 0x02, 0x17, 0xb4, 0x5c, 0xd8, 0x8d, 0x04, 0x1c, 0x10, 0xaa, 0x52, 0x94, 0x03, 0x8a,
	0x14, 0x39, 0x8e, 0xb3, 0x18, 0x6d, 0x3c, 0x2b, 0xdb, 0x1b, 0xa9, 0x8d, 0xf6, 0x85, 0x78, 0x00,
	0x1e, 0x82, 0xa7, 0xe0, 0x4a, 0x1e, 0x81, 0x13, 0x8a, 0xed, 0x8a, 0xdd, 0xb4, 0x94, 0x53, 0x3c,
	0xf3, 0xff, 0xcd, 0xe4, 0xef, 0xf1, 0x2c, 0x7a, 0x99, 0x02, 0xa4, 0x99, 0xa0, 0x3c, 0x83, 0x62,
	0x4e, 0x8d, 0xe0, 0x85, 0x96, 0xf6, 0x8c, 0x0b, 0x65, 0x85, 0xa6, 0xab, 0x01, 0x55, 0x60, 0xe5,
	0x42, 0x72, 0x66, 0x25, 0xa8, 0x29, 0x07, 0xb5, 0x90, 0x29, 0xc9, 0x35, 0x58, 0xc0, 0x07, 0xbe,
	0x92, 0xb8, 0x4a, 0x52, 0xaf, 0x24, 0xab, 0x41, 0xef, 0x61, 0xe8, 0xcc, 0x72, 0x49, 0x99, 0x52,
	0x60, 0x5d, 0x0f, 0xe3, 0xab, 0x7b, 0x8f, 0x2b, 0xea, 0x42, 0x8a, 0x6c, 0x3e, 0x9d, 0x89, 0xcf,
	0x6c, 0x25, 0x41, 0x07, 0xe0, 0x7e, 0x05, 0xd0, 0xc2, 0x40, 0xa1, 0xb9, 0xf0, 0xd2, 0xd1, 0xcf,
	0x16, 0xc2, 0x1f, 0x2a, 0xbe, 0x86, 0xce, 0x16, 0xc6, 0x68, 0x4f, 0xb1, 0xa5, 0xe8, 0x36, 0xfa,
	0x8d, 0xe3, 0x1b, 0x23, 0x77, 0xc6, 0x7d, 0xd4, 0x9e, 0x0b, 0xc3, 0xb5, 0xcc, 0xb7, 0x60, 0xb7,
	0xe9, 0xa4, 0x6a, 0x0a, 0x0f, 0xd1, 0xcd, 0xbc, 0x98, 0x99, 0x62, 0x36, 0xb5, 0x90, 0x4b, 0xde,
	0x6d, 0x6d, 0x91, 0xa4, 0xff, 0x2b, 0x7e, 0x84, 0x1e, 0x78, 0x81, 0x78, 0x27, 0x2c, 0x97, 0x86,
	0x70, 0x58, 0xd2, 0x8f, 0x5b, 0x6e, 0xd4, 0xf6, 0xa2, 0x0b, 0xf0, 0x53, 0xd4, 0x31, 0x42, 0xaf,
	0x24, 0x17, 0x53, 0xc6, 0x39, 0x14, 0xca, 0x76, 0xf7, 0x5c, 0x9f, 0xd6, 0x8f, 0xb8, 0x35, 0xba,
	0x1d, 0xb4, 0xd8, 0x4b, 0x18, 0xd0, 0x1d, 0x63, 0xb5, 0x60, 0x4b, 0xa9, 0xd2, 0x30, 0xd3, 0xee,
	0xff, 0xfd, 0xc6, 0x71, 0xfb, 0x79, 0x42, 0xae, 0x1f, 0x2a, 0xb9, 0x7c, 0x6d, 0x72, 0x7a, 0xd1,
	0xca, 0xc7, 0xef, 0xfe, 0x1b, 0x75, 0x4c, 0x3d, 0xd5, 0x7b, 0x82, 0x3a, 0x3b, 0x14, 0xbe, 0x8b,
	0xf6, 0x17, 0x32, 0xb3, 0x42, 0x87, 0x71, 0x85, 0x28, 0x2a, 0x37, 0xf1, 0x39, 0x7a, 0xb6, 0xf3,
	0xc7, 0x3b, 0x03, 0xb8, 0x62, 0xf6, 0x6f, 0x40, 0xa7, 0x4c, 0xc9, 0x73, 0xff, 0xc6, 0x74, 0x5d,
	0x0d, 0xcb, 0xda, 0x12, 0xf9, 0x02, 0x43, 0xd7, 0x57, 0x6c, 0x56, 0x99, 0x74, 0xd0, 0x2d, 0x97,
	0x3f, 0x0b, 0x99, 0xe4, 0x5b, 0x73, 0x13, 0xbf, 0xbe, 0xf6, 0x25, 0xf0, 0x61, 0xae, 0xe1, 0x8b,
	0xe0, 0xd6, 0xd0, 0x75, 0x38, 0x95, 0xd4, 0xbd, 0xa5, 0xa1, 0x6b, 0xf7, 0x5b, 0xa2, 0x23, 0x0e,
	0xcb, 0x7f, 0x8c, 0x36, 0xb9, 0x77, 0xf9, 0x5a, 0x27, 0xdb, 0x75, 0x3b, 0x69, 0x7c, 0x7a, 0x1f,
	0x4a, 0x53, 0xc8, 0x98, 0x4a, 0x09, 0xe8, 0x94, 0xa6, 0x42, 0xb9, 0x65, 0xa4, 0x7f, 0x2c, 0xfd,
	0xed, 0x1b, 0x7a, 0x55, 0xcf, 0x7c, 0x6d, 0x1e, 0xbc, 0xf5, 0xed, 0x86, 0xce, 0xc9, 0x69, 0x50,
	0x87, 0xde, 0xc9, 0x78, 0xf0, 0xfd, 0x02, 0x98, 0x38, 0x60, 0x52, 0x07, 0x26, 0xe3, 0xc1, 0xa6,
	0x79, 0xe8, 0x81, 0x28, 0x72, 0x44, 0x14, 0xd5, 0x91, 0x28, 0x1a, 0x0f, 0x66, 0xfb, 0xce, 0xde,
	0x8b, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x5f, 0x53, 0x87, 0xe1, 0x03, 0x00, 0x00,
}
