2019-10-09 02:11:15 -04:00
|
|
|
/*
|
|
|
|
* MinIO Cloud Storage, (C) 2019 MinIO, Inc.
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package notify
|
|
|
|
|
2019-10-23 01:59:13 -04:00
|
|
|
import (
|
|
|
|
"github.com/minio/minio/pkg/event/target"
|
|
|
|
)
|
2019-10-09 02:11:15 -04:00
|
|
|
|
|
|
|
// Config - notification target configuration structure, holds
|
|
|
|
// information about various notification targets.
|
|
|
|
type Config struct {
|
|
|
|
AMQP map[string]target.AMQPArgs `json:"amqp"`
|
|
|
|
Elasticsearch map[string]target.ElasticsearchArgs `json:"elasticsearch"`
|
|
|
|
Kafka map[string]target.KafkaArgs `json:"kafka"`
|
|
|
|
MQTT map[string]target.MQTTArgs `json:"mqtt"`
|
|
|
|
MySQL map[string]target.MySQLArgs `json:"mysql"`
|
|
|
|
NATS map[string]target.NATSArgs `json:"nats"`
|
|
|
|
NSQ map[string]target.NSQArgs `json:"nsq"`
|
|
|
|
PostgreSQL map[string]target.PostgreSQLArgs `json:"postgresql"`
|
|
|
|
Redis map[string]target.RedisArgs `json:"redis"`
|
|
|
|
Webhook map[string]target.WebhookArgs `json:"webhook"`
|
|
|
|
}
|
|
|
|
|
|
|
|
const (
|
|
|
|
defaultTarget = "1"
|
|
|
|
)
|
|
|
|
|
|
|
|
// NewConfig - initialize notification config.
|
|
|
|
func NewConfig() Config {
|
|
|
|
// Make sure to initialize notification targets
|
|
|
|
cfg := Config{
|
|
|
|
NSQ: make(map[string]target.NSQArgs),
|
|
|
|
AMQP: make(map[string]target.AMQPArgs),
|
|
|
|
MQTT: make(map[string]target.MQTTArgs),
|
|
|
|
NATS: make(map[string]target.NATSArgs),
|
|
|
|
Redis: make(map[string]target.RedisArgs),
|
|
|
|
MySQL: make(map[string]target.MySQLArgs),
|
|
|
|
Kafka: make(map[string]target.KafkaArgs),
|
|
|
|
Webhook: make(map[string]target.WebhookArgs),
|
|
|
|
PostgreSQL: make(map[string]target.PostgreSQLArgs),
|
|
|
|
Elasticsearch: make(map[string]target.ElasticsearchArgs),
|
|
|
|
}
|
|
|
|
cfg.NSQ[defaultTarget] = target.NSQArgs{}
|
|
|
|
cfg.AMQP[defaultTarget] = target.AMQPArgs{}
|
|
|
|
cfg.MQTT[defaultTarget] = target.MQTTArgs{}
|
|
|
|
cfg.NATS[defaultTarget] = target.NATSArgs{}
|
|
|
|
cfg.Redis[defaultTarget] = target.RedisArgs{}
|
|
|
|
cfg.MySQL[defaultTarget] = target.MySQLArgs{}
|
|
|
|
cfg.Kafka[defaultTarget] = target.KafkaArgs{}
|
|
|
|
cfg.Webhook[defaultTarget] = target.WebhookArgs{}
|
|
|
|
cfg.PostgreSQL[defaultTarget] = target.PostgreSQLArgs{}
|
|
|
|
cfg.Elasticsearch[defaultTarget] = target.ElasticsearchArgs{}
|
|
|
|
return cfg
|
|
|
|
}
|