/* * 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 import ( "github.com/minio/minio/cmd/config" "github.com/minio/minio/pkg/event/target" ) // Help template inputs for all notification targets var ( HelpAMQP = config.HelpKVS{ config.HelpKV{ Key: target.AmqpURL, Description: "AMQP server endpoint, e.g. `amqp://myuser:mypassword@localhost:5672`", Type: "url", }, config.HelpKV{ Key: target.AmqpExchange, Description: "Name of the AMQP exchange", Optional: true, Type: "string", }, config.HelpKV{ Key: target.AmqpExchangeType, Description: "Kind of AMQP exchange type", Optional: true, Type: "string", }, config.HelpKV{ Key: target.AmqpRoutingKey, Description: "Routing key for publishing", Optional: true, Type: "string", }, config.HelpKV{ Key: target.AmqpMandatory, Description: "Set this to 'on' for server to return an unroutable message with a Return method. If this flag is 'off', the server silently drops the message", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.AmqpDurable, Description: "Set this to 'on' for queue to survive broker restarts", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.AmqpNoWait, Description: "When no_wait is 'on', declare without waiting for a confirmation from the server", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.AmqpInternal, Description: "Set this to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.AmqpAutoDeleted, Description: "Set this to 'on' for queue that has had at least one consumer is deleted when last consumer unsubscribes", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.AmqpDeliveryMode, Description: "Delivery queue implementation use non-persistent (1) or persistent (2)", Optional: true, Type: "number", }, config.HelpKV{ Key: target.AmqpQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.AmqpQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the AMQP target setting", Optional: true, Type: "sentence", }, } HelpKafka = config.HelpKVS{ config.HelpKV{ Key: target.KafkaBrokers, Description: "Comma separated list of Kafka broker addresses", Type: "csv", }, config.HelpKV{ Key: target.KafkaTopic, Description: "The Kafka topic for a given message", Optional: true, Type: "string", }, config.HelpKV{ Key: target.KafkaSASLUsername, Description: "Username for SASL/PLAIN or SASL/SCRAM authentication", Optional: true, Type: "string", }, config.HelpKV{ Key: target.KafkaSASLPassword, Description: "Password for SASL/PLAIN or SASL/SCRAM authentication", Optional: true, Type: "string", }, config.HelpKV{ Key: target.KafkaTLSClientAuth, Description: "ClientAuth determines the Kafka server's policy for TLS client auth", Optional: true, Type: "string", }, config.HelpKV{ Key: target.KafkaSASL, Description: "Set this to 'on' to enable SASL authentication", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.KafkaTLS, Description: "Set this to 'on' to enable TLS", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.KafkaTLSSkipVerify, Description: "Set this to 'on' to disable client verification of server certificate chain", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.KafkaQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.KafkaQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the Kafka target setting", Optional: true, Type: "sentence", }, } HelpMQTT = config.HelpKVS{ config.HelpKV{ Key: target.MqttBroker, Description: "MQTT server endpoint, e.g. `tcp://localhost:1883`", Type: "uri", }, config.HelpKV{ Key: target.MqttTopic, Description: "Name of the MQTT topic to publish on, e.g. `minio`", Type: "string", }, config.HelpKV{ Key: target.MqttUsername, Description: "Username to connect to the MQTT server", Optional: true, Type: "string", }, config.HelpKV{ Key: target.MqttPassword, Description: "Password to connect to the MQTT server", Optional: true, Type: "string", }, config.HelpKV{ Key: target.MqttQoS, Description: "Set the Quality of Service Level for MQTT endpoint", Optional: true, Type: "number", }, config.HelpKV{ Key: target.MqttKeepAliveInterval, Description: "Keep alive interval for MQTT connections", Optional: true, Type: "duration", }, config.HelpKV{ Key: target.MqttReconnectInterval, Description: "Reconnect interval for MQTT connections", Optional: true, Type: "duration", }, config.HelpKV{ Key: target.MqttQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.MqttQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the MQTT target setting", Optional: true, Type: "sentence", }, } HelpES = config.HelpKVS{ config.HelpKV{ Key: target.ElasticURL, Description: "The Elasticsearch server's address, with optional authentication info", Type: "url", }, config.HelpKV{ Key: target.ElasticFormat, Description: "Either `namespace` or `access`, defaults to 'namespace'", Type: "namespace*|access", }, config.HelpKV{ Key: target.ElasticIndex, Description: "The name of an Elasticsearch index in which MinIO will store document", Type: "string", }, config.HelpKV{ Key: target.ElasticQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.ElasticQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the Elasticsearch target setting", Optional: true, Type: "sentence", }, } HelpWebhook = config.HelpKVS{ config.HelpKV{ Key: target.WebhookEndpoint, Description: "Webhook server endpoint eg: http://localhost:8080/minio/events", Type: "url", }, config.HelpKV{ Key: target.WebhookAuthToken, Description: "Authorization token used for webhook server endpoint", Optional: true, Type: "string", }, config.HelpKV{ Key: target.WebhookQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.WebhookQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the Webhook target setting", Optional: true, Type: "sentence", }, } HelpRedis = config.HelpKVS{ config.HelpKV{ Key: target.RedisAddress, Description: "The Redis server's address. For example: `localhost:6379`", Type: "address", }, config.HelpKV{ Key: target.RedisFormat, Description: "Specify how data is populated, a hash is used in case of `namespace` format and a list in case of `access` format, defaults to 'namespace'", Type: "namespace|access", }, config.HelpKV{ Key: target.RedisKey, Description: "The name of the Redis key under which events are stored", Type: "string", }, config.HelpKV{ Key: target.RedisPassword, Description: "The Redis server's password", Optional: true, Type: "string", }, config.HelpKV{ Key: target.RedisQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.RedisQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the Redis target setting", Optional: true, Type: "sentence", }, } HelpPostgres = config.HelpKVS{ config.HelpKV{ Key: target.PostgresConnectionString, Description: "Connection string parameters for the PostgreSQL server", Type: "string", }, config.HelpKV{ Key: target.PostgresFormat, Description: "Specify how data is populated, `namespace` format and `access` format, defaults to 'namespace'", Type: "namespace|access", }, config.HelpKV{ Key: target.PostgresTable, Description: "Table name in which events will be stored/updated. If the table does not exist, the MinIO server creates it at start-up", Type: "string", }, config.HelpKV{ Key: target.PostgresHost, Description: "Host name of the PostgreSQL server. Defaults to `localhost`. IPv6 host should be enclosed with `[` and `]`", Optional: true, Type: "hostname", }, config.HelpKV{ Key: target.PostgresPort, Description: "Port on which to connect to PostgreSQL server, defaults to `5432`", Optional: true, Type: "port", }, config.HelpKV{ Key: target.PostgresUsername, Description: "Database username, defaults to user running the MinIO process if not specified", Optional: true, Type: "string", }, config.HelpKV{ Key: target.PostgresPassword, Description: "Database password", Optional: true, Type: "string", }, config.HelpKV{ Key: target.PostgresDatabase, Description: "Postgres Database name", Optional: true, Type: "string", }, config.HelpKV{ Key: target.PostgresQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.PostgresQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the Postgres target setting", Optional: true, Type: "sentence", }, } HelpMySQL = config.HelpKVS{ config.HelpKV{ Key: target.MySQLDSNString, Description: "Data-Source-Name connection string for the MySQL server", Type: "string", }, config.HelpKV{ Key: target.MySQLTable, Description: "Table name in which events will be stored/updated. If the table does not exist, the MinIO server creates it at start-up", Type: "string", }, config.HelpKV{ Key: target.MySQLFormat, Description: "Specify how data is populated, `namespace` format and `access` format, defaults to 'namespace'", Type: "namespace|access", }, config.HelpKV{ Key: target.MySQLHost, Description: "Host name of the MySQL server (used only if `dsnString` is empty)", Optional: true, Type: "hostname", }, config.HelpKV{ Key: target.MySQLPort, Description: "Port on which to connect to the MySQL server (used only if `dsn_string` is empty)", Optional: true, Type: "port", }, config.HelpKV{ Key: target.MySQLUsername, Description: "Database user-name (used only if `dsnString` is empty)", Optional: true, Type: "string", }, config.HelpKV{ Key: target.MySQLPassword, Description: "Database password (used only if `dsnString` is empty)", Optional: true, Type: "string", }, config.HelpKV{ Key: target.MySQLDatabase, Description: "Database name (used only if `dsnString` is empty)", Optional: true, Type: "string", }, config.HelpKV{ Key: target.MySQLQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.MySQLQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the MySQL target setting", Optional: true, Type: "sentence", }, } HelpNATS = config.HelpKVS{ config.HelpKV{ Key: target.NATSAddress, Description: "NATS server address eg: '0.0.0.0:4222'", Type: "address", }, config.HelpKV{ Key: target.NATSSubject, Description: "NATS subject that represents this subscription", Type: "string", }, config.HelpKV{ Key: target.NATSUsername, Description: "Username to be used when connecting to the server", Optional: true, Type: "string", }, config.HelpKV{ Key: target.NATSPassword, Description: "Password to be used when connecting to a server", Optional: true, Type: "string", }, config.HelpKV{ Key: target.NATSToken, Description: "Token to be used when connecting to a server", Optional: true, Type: "string", }, config.HelpKV{ Key: target.NATSSecure, Description: "Set this to 'on', enables TLS secure connections that skip server verification (not recommended)", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.NATSPingInterval, Description: "Client ping commands interval to the server, disabled by default", Optional: true, Type: "duration", }, config.HelpKV{ Key: target.NATSStreaming, Description: "Set this to 'on', to use streaming NATS server", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.NATSStreamingAsync, Description: "Set this to 'on', to enable asynchronous publish, process the ACK or error state", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.NATSStreamingMaxPubAcksInFlight, Description: "Specifies how many messages can be published without getting ACKs back from NATS streaming server", Optional: true, Type: "number", }, config.HelpKV{ Key: target.NATSStreamingClusterID, Description: "Unique ID for the NATS streaming cluster", Optional: true, Type: "string", }, config.HelpKV{ Key: target.NATSQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: target.NATSQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.NATSCertAuthority, Description: "Certificate chain of the target NATS server if self signed certs were used", Optional: true, Type: "string", }, config.HelpKV{ Key: target.NATSClientCert, Description: "TLS Cert used to authenticate against NATS configured to require client certificates", Optional: true, Type: "string", }, config.HelpKV{ Key: target.NATSClientKey, Description: "TLS Key used to authenticate against NATS configured to require client certificates", Optional: true, Type: "string", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the NATS target setting", Optional: true, Type: "sentence", }, } HelpNSQ = config.HelpKVS{ config.HelpKV{ Key: target.NSQAddress, Description: "NSQ server address eg: '127.0.0.1:4150'", Type: "address", }, config.HelpKV{ Key: target.NSQTopic, Description: "NSQ topic unique per target", Type: "string", }, config.HelpKV{ Key: target.NSQTLS, Description: "Set this to 'on', to enable TLS negotiation", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.NSQTLSSkipVerify, Description: "Set this to 'on', to disable client verification of server certificates", Optional: true, Type: "on|off", }, config.HelpKV{ Key: target.NSQQueueDir, Description: "Local directory where events are stored eg: '/home/events'", Optional: true, Type: "path", }, config.HelpKV{ Key: target.NSQQueueLimit, Description: "Enable persistent event store queue limit, defaults to '10000'", Optional: true, Type: "number", }, config.HelpKV{ Key: config.Comment, Description: "A comment to describe the NSQ target setting", Optional: true, Type: "sentence", }, } )