github.com/argoproj/argo-events@v1.9.1/pkg/apis/eventsource/v1alpha1/generated.proto (about)

     1  /*
     2  Copyright 2021 BlackRock, Inc.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  // This file was autogenerated by go-to-protobuf. Do not edit it manually!
    18  
    19  syntax = "proto2";
    20  
    21  package github.com.argoproj.argo_events.pkg.apis.eventsource.v1alpha1;
    22  
    23  import "github.com/argoproj/argo-events/pkg/apis/common/generated.proto";
    24  import "k8s.io/api/core/v1/generated.proto";
    25  import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
    26  import "k8s.io/apimachinery/pkg/runtime/generated.proto";
    27  import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
    28  
    29  // Package-wide variables from generator "generated".
    30  option go_package = "v1alpha1";
    31  
    32  // AMQPConsumeConfig holds the configuration to immediately starts delivering queued messages
    33  // +k8s:openapi-gen=true
    34  message AMQPConsumeConfig {
    35    // ConsumerTag is the identity of the consumer included in every delivery
    36    // +optional
    37    optional string consumerTag = 1;
    38  
    39    // AutoAck when true, the server will acknowledge deliveries to this consumer prior to writing
    40    // the delivery to the network
    41    // +optional
    42    optional bool autoAck = 2;
    43  
    44    // Exclusive when true, the server will ensure that this is the sole consumer from this queue
    45    // +optional
    46    optional bool exclusive = 3;
    47  
    48    // NoLocal flag is not supported by RabbitMQ
    49    // +optional
    50    optional bool noLocal = 4;
    51  
    52    // NowWait when true, do not wait for the server to confirm the request and immediately begin deliveries
    53    // +optional
    54    optional bool noWait = 5;
    55  }
    56  
    57  // AMQPEventSource refers to an event-source for AMQP stream events
    58  message AMQPEventSource {
    59    // URL for rabbitmq service
    60    optional string url = 1;
    61  
    62    // ExchangeName is the exchange name
    63    // For more information, visit https://www.rabbitmq.com/tutorials/amqp-concepts.html
    64    optional string exchangeName = 2;
    65  
    66    // ExchangeType is rabbitmq exchange type
    67    optional string exchangeType = 3;
    68  
    69    // Routing key for bindings
    70    optional string routingKey = 4;
    71  
    72    // Backoff holds parameters applied to connection.
    73    // +optional
    74    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 5;
    75  
    76    // JSONBody specifies that all event body payload coming from this
    77    // source will be JSON
    78    // +optional
    79    optional bool jsonBody = 6;
    80  
    81    // TLS configuration for the amqp client.
    82    // +optional
    83    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 7;
    84  
    85    // Metadata holds the user defined metadata which will passed along the event payload.
    86    // +optional
    87    map<string, string> metadata = 8;
    88  
    89    // ExchangeDeclare holds the configuration for the exchange on the server
    90    // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.ExchangeDeclare
    91    // +optional
    92    optional AMQPExchangeDeclareConfig exchangeDeclare = 9;
    93  
    94    // QueueDeclare holds the configuration of a queue to hold messages and deliver to consumers.
    95    // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
    96    // the same parameters
    97    // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueDeclare
    98    // +optional
    99    optional AMQPQueueDeclareConfig queueDeclare = 10;
   100  
   101    // QueueBind holds the configuration that binds an exchange to a queue so that publishings to the
   102    // exchange will be routed to the queue when the publishing routing key matches the binding routing key
   103    // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueBind
   104    // +optional
   105    optional AMQPQueueBindConfig queueBind = 11;
   106  
   107    // Consume holds the configuration to immediately starts delivering queued messages
   108    // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.Consume
   109    // +optional
   110    optional AMQPConsumeConfig consume = 12;
   111  
   112    // Auth hosts secret selectors for username and password
   113    // +optional
   114    optional github.com.argoproj.argo_events.pkg.apis.common.BasicAuth auth = 13;
   115  
   116    // URLSecret is secret reference for rabbitmq service URL
   117    optional k8s.io.api.core.v1.SecretKeySelector urlSecret = 14;
   118  
   119    // Filter
   120    // +optional
   121    optional EventSourceFilter filter = 15;
   122  }
   123  
   124  // AMQPExchangeDeclareConfig holds the configuration for the exchange on the server
   125  // +k8s:openapi-gen=true
   126  message AMQPExchangeDeclareConfig {
   127    // Durable keeps the exchange also after the server restarts
   128    // +optional
   129    optional bool durable = 1;
   130  
   131    // AutoDelete removes the exchange when no bindings are active
   132    // +optional
   133    optional bool autoDelete = 2;
   134  
   135    // Internal when true does not accept publishings
   136    // +optional
   137    optional bool internal = 3;
   138  
   139    // NowWait when true does not wait for a confirmation from the server
   140    // +optional
   141    optional bool noWait = 4;
   142  }
   143  
   144  // AMQPQueueBindConfig holds the configuration that binds an exchange to a queue so that publishings to the
   145  // exchange will be routed to the queue when the publishing routing key matches the binding routing key
   146  // +k8s:openapi-gen=true
   147  message AMQPQueueBindConfig {
   148    // NowWait false and the queue could not be bound, the channel will be closed with an error
   149    // +optional
   150    optional bool noWait = 1;
   151  }
   152  
   153  // AMQPQueueDeclareConfig holds the configuration of a queue to hold messages and deliver to consumers.
   154  // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
   155  // the same parameters
   156  // +k8s:openapi-gen=true
   157  message AMQPQueueDeclareConfig {
   158    // Name of the queue. If empty the server auto-generates a unique name for this queue
   159    // +optional
   160    optional string name = 1;
   161  
   162    // Durable keeps the queue also after the server restarts
   163    // +optional
   164    optional bool durable = 2;
   165  
   166    // AutoDelete removes the queue when no consumers are active
   167    // +optional
   168    optional bool autoDelete = 3;
   169  
   170    // Exclusive sets the queues to be accessible only by the connection that declares them and will be
   171    // deleted wgen the connection closes
   172    // +optional
   173    optional bool exclusive = 4;
   174  
   175    // NowWait when true, the queue assumes to be declared on the server
   176    // +optional
   177    optional bool noWait = 5;
   178  
   179    // Arguments of a queue (also known as "x-arguments") used for optional features and plugins
   180    // +optional
   181    optional string arguments = 6;
   182  }
   183  
   184  // AzureEventsHubEventSource describes the event source for azure events hub
   185  // More info at https://docs.microsoft.com/en-us/azure/event-hubs/
   186  message AzureEventsHubEventSource {
   187    // FQDN of the EventHubs namespace you created
   188    // More info at https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string
   189    optional string fqdn = 1;
   190  
   191    // SharedAccessKeyName is the name you chose for your application's SAS keys
   192    optional k8s.io.api.core.v1.SecretKeySelector sharedAccessKeyName = 2;
   193  
   194    // SharedAccessKey is the generated value of the key
   195    optional k8s.io.api.core.v1.SecretKeySelector sharedAccessKey = 3;
   196  
   197    // Event Hub path/name
   198    optional string hubName = 4;
   199  
   200    // Metadata holds the user defined metadata which will passed along the event payload.
   201    // +optional
   202    map<string, string> metadata = 5;
   203  
   204    // Filter
   205    // +optional
   206    optional EventSourceFilter filter = 6;
   207  }
   208  
   209  // AzureQueueStorageEventSource describes the event source for azure queue storage
   210  // more info at https://learn.microsoft.com/en-us/azure/storage/queues/
   211  message AzureQueueStorageEventSource {
   212    // StorageAccountName is the name of the storage account where the queue is. This field is necessary to
   213    // access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
   214    // +optional
   215    optional string storageAccountName = 1;
   216  
   217    // ConnectionString is the connection string to access Azure Queue Storage. If this fields is not provided
   218    // it will try to access via Azure AD with StorageAccountName.
   219    // +optional
   220    optional k8s.io.api.core.v1.SecretKeySelector connectionString = 2;
   221  
   222    // QueueName is the name of the queue
   223    optional string queueName = 3;
   224  
   225    // JSONBody specifies that all event body payload coming from this
   226    // source will be JSON
   227    // +optional
   228    optional bool jsonBody = 4;
   229  
   230    // DLQ specifies if a dead-letter queue is configured for messages that can't be processed successfully.
   231    // If set to true, messages with invalid payload won't be acknowledged to allow to forward them farther to the dead-letter queue.
   232    // The default value is false.
   233    // +optional
   234    optional bool dlq = 5;
   235  
   236    // Metadata holds the user defined metadata which will passed along the event payload.
   237    // +optional
   238    map<string, string> metadata = 6;
   239  
   240    // Filter
   241    // +optional
   242    optional EventSourceFilter filter = 7;
   243  
   244    // DecodeMessage specifies if all the messages should be base64 decoded.
   245    // If set to true the decoding is done before the evaluation of JSONBody
   246    // +optional
   247    optional bool decodeMessage = 8;
   248  
   249    // WaitTimeInSeconds is the duration (in seconds) for which the event source waits between empty results from the queue.
   250    // The default value is 3 seconds.
   251    // +optional
   252    optional int32 waitTimeInSeconds = 9;
   253  }
   254  
   255  // AzureServiceBusEventSource describes the event source for azure service bus
   256  // More info at https://docs.microsoft.com/en-us/azure/service-bus-messaging/
   257  message AzureServiceBusEventSource {
   258    // ConnectionString is the connection string for the Azure Service Bus. If this fields is not provided
   259    // it will try to access via Azure AD with DefaultAzureCredential and FullyQualifiedNamespace.
   260    // +optional
   261    optional k8s.io.api.core.v1.SecretKeySelector connectionString = 1;
   262  
   263    // QueueName is the name of the Azure Service Bus Queue
   264    optional string queueName = 2;
   265  
   266    // TopicName is the name of the Azure Service Bus Topic
   267    optional string topicName = 3;
   268  
   269    // SubscriptionName is the name of the Azure Service Bus Topic Subscription
   270    optional string subscriptionName = 4;
   271  
   272    // TLS configuration for the service bus client
   273    // +optional
   274    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 5;
   275  
   276    // JSONBody specifies that all event body payload coming from this
   277    // source will be JSON
   278    // +optional
   279    optional bool jsonBody = 6;
   280  
   281    // Metadata holds the user defined metadata which will passed along the event payload.
   282    // +optional
   283    map<string, string> metadata = 7;
   284  
   285    // Filter
   286    // +optional
   287    optional EventSourceFilter filter = 8;
   288  
   289    // FullyQualifiedNamespace is the Service Bus namespace name (ex: myservicebus.servicebus.windows.net). This field is necessary to
   290    // access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
   291    // +optional
   292    optional string fullyQualifiedNamespace = 9;
   293  }
   294  
   295  // BitbucketAuth holds the different auth strategies for connecting to Bitbucket
   296  message BitbucketAuth {
   297    // Basic is BasicAuth auth strategy.
   298    // +optional
   299    optional BitbucketBasicAuth basic = 1;
   300  
   301    // OAuthToken refers to the K8s secret that holds the OAuth Bearer token.
   302    // +optional
   303    optional k8s.io.api.core.v1.SecretKeySelector oauthToken = 2;
   304  }
   305  
   306  // BasicAuth holds the information required to authenticate user via basic auth mechanism
   307  message BitbucketBasicAuth {
   308    // Username refers to the K8s secret that holds the username.
   309    optional k8s.io.api.core.v1.SecretKeySelector username = 1;
   310  
   311    // Password refers to the K8s secret that holds the password.
   312    optional k8s.io.api.core.v1.SecretKeySelector password = 2;
   313  }
   314  
   315  // BitbucketEventSource describes the event source for Bitbucket
   316  message BitbucketEventSource {
   317    // DeleteHookOnFinish determines whether to delete the defined Bitbucket hook once the event source is stopped.
   318    // +optional
   319    optional bool deleteHookOnFinish = 1;
   320  
   321    // Metadata holds the user defined metadata which will be passed along the event payload.
   322    // +optional
   323    map<string, string> metadata = 2;
   324  
   325    // Webhook refers to the configuration required to run an http server
   326    optional WebhookContext webhook = 3;
   327  
   328    // Auth information required to connect to Bitbucket.
   329    optional BitbucketAuth auth = 4;
   330  
   331    // Events this webhook is subscribed to.
   332    repeated string events = 5;
   333  
   334    // DeprecatedOwner is the owner of the repository.
   335    // Deprecated: use Repositories instead. Will be unsupported in v1.9
   336    // +optional
   337    optional string owner = 6;
   338  
   339    // DeprecatedProjectKey is the key of the project to which the repository relates
   340    // Deprecated: use Repositories instead. Will be unsupported in v1.9
   341    // +optional
   342    optional string projectKey = 7;
   343  
   344    // DeprecatedRepositorySlug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL
   345    // Deprecated: use Repositories instead. Will be unsupported in v1.9
   346    // +optional
   347    optional string repositorySlug = 8;
   348  
   349    // Repositories holds a list of repositories for which integration needs to set up
   350    // +optional
   351    repeated BitbucketRepository repositories = 9;
   352  
   353    // Filter
   354    // +optional
   355    optional EventSourceFilter filter = 10;
   356  }
   357  
   358  message BitbucketRepository {
   359    // Owner is the owner of the repository
   360    optional string owner = 1;
   361  
   362    // RepositorySlug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL
   363    optional string repositorySlug = 2;
   364  }
   365  
   366  // BitbucketServerEventSource refers to event-source related to Bitbucket Server events
   367  message BitbucketServerEventSource {
   368    // Webhook holds configuration to run a http server
   369    optional WebhookContext webhook = 1;
   370  
   371    // DeprecatedProjectKey is the key of project for which integration needs to set up
   372    // Deprecated: use Repositories instead. Will be unsupported in v1.8
   373    // +optional
   374    optional string projectKey = 2;
   375  
   376    // DeprecatedRepositorySlug is the slug of the repository for which integration needs to set up
   377    // Deprecated: use Repositories instead. Will be unsupported in v1.8
   378    // +optional
   379    optional string repositorySlug = 3;
   380  
   381    // Repositories holds a list of repositories for which integration needs to set up
   382    // +optional
   383    repeated BitbucketServerRepository repositories = 4;
   384  
   385    // Events are bitbucket event to listen to.
   386    // Refer https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
   387    repeated string events = 5;
   388  
   389    // AccessToken is reference to K8s secret which holds the bitbucket api access information
   390    optional k8s.io.api.core.v1.SecretKeySelector accessToken = 6;
   391  
   392    // WebhookSecret is reference to K8s secret which holds the bitbucket webhook secret (for HMAC validation)
   393    optional k8s.io.api.core.v1.SecretKeySelector webhookSecret = 7;
   394  
   395    // BitbucketServerBaseURL is the base URL for API requests to a custom endpoint
   396    optional string bitbucketserverBaseURL = 8;
   397  
   398    // DeleteHookOnFinish determines whether to delete the Bitbucket Server hook for the project once the event source is stopped.
   399    // +optional
   400    optional bool deleteHookOnFinish = 9;
   401  
   402    // Metadata holds the user defined metadata which will passed along the event payload.
   403    // +optional
   404    map<string, string> metadata = 10;
   405  
   406    // Filter
   407    // +optional
   408    optional EventSourceFilter filter = 11;
   409  
   410    // TLS configuration for the bitbucketserver client.
   411    // +optional
   412    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 12;
   413  }
   414  
   415  message BitbucketServerRepository {
   416    // ProjectKey is the key of project for which integration needs to set up
   417    optional string projectKey = 1;
   418  
   419    // RepositorySlug is the slug of the repository for which integration needs to set up
   420    optional string repositorySlug = 2;
   421  }
   422  
   423  // CalendarEventSource describes a time based dependency. One of the fields (schedule, interval, or recurrence) must be passed.
   424  // Schedule takes precedence over interval; interval takes precedence over recurrence
   425  message CalendarEventSource {
   426    // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
   427    // +optional
   428    optional string schedule = 1;
   429  
   430    // Interval is a string that describes an interval duration, e.g. 1s, 30m, 2h...
   431    // +optional
   432    optional string interval = 2;
   433  
   434    // ExclusionDates defines the list of DATE-TIME exceptions for recurring events.
   435    repeated string exclusionDates = 3;
   436  
   437    // Timezone in which to run the schedule
   438    // +optional
   439    optional string timezone = 4;
   440  
   441    // Metadata holds the user defined metadata which will passed along the event payload.
   442    // +optional
   443    map<string, string> metadata = 5;
   444  
   445    // Persistence hold the configuration for event persistence
   446    optional EventPersistence persistence = 6;
   447  
   448    // Filter
   449    // +optional
   450    optional EventSourceFilter filter = 8;
   451  }
   452  
   453  message CatchupConfiguration {
   454    // Enabled enables to triggered the missed schedule when eventsource restarts
   455    optional bool enabled = 1;
   456  
   457    // MaxDuration holds max catchup duration
   458    optional string maxDuration = 2;
   459  }
   460  
   461  message ConfigMapPersistence {
   462    // Name of the configmap
   463    optional string name = 1;
   464  
   465    // CreateIfNotExist will create configmap if it doesn't exists
   466    optional bool createIfNotExist = 2;
   467  }
   468  
   469  // EmitterEventSource describes the event source for emitter
   470  // More info at https://emitter.io/develop/getting-started/
   471  message EmitterEventSource {
   472    // Broker URI to connect to.
   473    optional string broker = 1;
   474  
   475    // ChannelKey refers to the channel key
   476    optional string channelKey = 2;
   477  
   478    // ChannelName refers to the channel name
   479    optional string channelName = 3;
   480  
   481    // Username to use to connect to broker
   482    // +optional
   483    optional k8s.io.api.core.v1.SecretKeySelector username = 4;
   484  
   485    // Password to use to connect to broker
   486    // +optional
   487    optional k8s.io.api.core.v1.SecretKeySelector password = 5;
   488  
   489    // Backoff holds parameters applied to connection.
   490    // +optional
   491    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 6;
   492  
   493    // JSONBody specifies that all event body payload coming from this
   494    // source will be JSON
   495    // +optional
   496    optional bool jsonBody = 7;
   497  
   498    // TLS configuration for the emitter client.
   499    // +optional
   500    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 8;
   501  
   502    // Metadata holds the user defined metadata which will passed along the event payload.
   503    // +optional
   504    map<string, string> metadata = 9;
   505  
   506    // Filter
   507    // +optional
   508    optional EventSourceFilter filter = 10;
   509  }
   510  
   511  message EventPersistence {
   512    // Catchup enables to triggered the missed schedule when eventsource restarts
   513    optional CatchupConfiguration catchup = 1;
   514  
   515    // ConfigMap holds configmap details for persistence
   516    optional ConfigMapPersistence configMap = 2;
   517  }
   518  
   519  // EventSource is the definition of a eventsource resource
   520  // +genclient
   521  // +kubebuilder:resource:shortName=es
   522  // +kubebuilder:subresource:status
   523  // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
   524  // +k8s:openapi-gen=true
   525  message EventSource {
   526    optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
   527  
   528    optional EventSourceSpec spec = 2;
   529  
   530    // +optional
   531    optional EventSourceStatus status = 3;
   532  }
   533  
   534  message EventSourceFilter {
   535    optional string expression = 1;
   536  }
   537  
   538  // EventSourceList is the list of eventsource resources
   539  // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
   540  message EventSourceList {
   541    optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
   542  
   543    repeated EventSource items = 2;
   544  }
   545  
   546  // EventSourceSpec refers to specification of event-source resource
   547  message EventSourceSpec {
   548    // EventBusName references to a EventBus name. By default the value is "default"
   549    optional string eventBusName = 1;
   550  
   551    // Template is the pod specification for the event source
   552    // +optional
   553    optional Template template = 2;
   554  
   555    // Service is the specifications of the service to expose the event source
   556    // +optional
   557    optional Service service = 3;
   558  
   559    // Minio event sources
   560    map<string, github.com.argoproj.argo_events.pkg.apis.common.S3Artifact> minio = 4;
   561  
   562    // Calendar event sources
   563    map<string, CalendarEventSource> calendar = 5;
   564  
   565    // File event sources
   566    map<string, FileEventSource> file = 6;
   567  
   568    // Resource event sources
   569    map<string, ResourceEventSource> resource = 7;
   570  
   571    // Webhook event sources
   572    map<string, WebhookEventSource> webhook = 8;
   573  
   574    // AMQP event sources
   575    map<string, AMQPEventSource> amqp = 9;
   576  
   577    // Kafka event sources
   578    map<string, KafkaEventSource> kafka = 10;
   579  
   580    // MQTT event sources
   581    map<string, MQTTEventSource> mqtt = 11;
   582  
   583    // NATS event sources
   584    map<string, NATSEventsSource> nats = 12;
   585  
   586    // SNS event sources
   587    map<string, SNSEventSource> sns = 13;
   588  
   589    // SQS event sources
   590    map<string, SQSEventSource> sqs = 14;
   591  
   592    // PubSub event sources
   593    map<string, PubSubEventSource> pubSub = 15;
   594  
   595    // Github event sources
   596    map<string, GithubEventSource> github = 16;
   597  
   598    // Gitlab event sources
   599    map<string, GitlabEventSource> gitlab = 17;
   600  
   601    // HDFS event sources
   602    map<string, HDFSEventSource> hdfs = 18;
   603  
   604    // Slack event sources
   605    map<string, SlackEventSource> slack = 19;
   606  
   607    // StorageGrid event sources
   608    map<string, StorageGridEventSource> storageGrid = 20;
   609  
   610    // AzureEventsHub event sources
   611    map<string, AzureEventsHubEventSource> azureEventsHub = 21;
   612  
   613    // Stripe event sources
   614    map<string, StripeEventSource> stripe = 22;
   615  
   616    // Emitter event source
   617    map<string, EmitterEventSource> emitter = 23;
   618  
   619    // Redis event source
   620    map<string, RedisEventSource> redis = 24;
   621  
   622    // NSQ event source
   623    map<string, NSQEventSource> nsq = 25;
   624  
   625    // Pulsar event source
   626    map<string, PulsarEventSource> pulsar = 26;
   627  
   628    // Generic event source
   629    map<string, GenericEventSource> generic = 27;
   630  
   631    // Replicas is the event source deployment replicas
   632    optional int32 replicas = 28;
   633  
   634    // Bitbucket Server event sources
   635    map<string, BitbucketServerEventSource> bitbucketserver = 29;
   636  
   637    // Bitbucket event sources
   638    map<string, BitbucketEventSource> bitbucket = 30;
   639  
   640    // Redis stream source
   641    map<string, RedisStreamEventSource> redisStream = 31;
   642  
   643    // Azure Service Bus event source
   644    map<string, AzureServiceBusEventSource> azureServiceBus = 32;
   645  
   646    // AzureQueueStorage event source
   647    map<string, AzureQueueStorageEventSource> azureQueueStorage = 33;
   648  
   649    // SFTP event sources
   650    map<string, SFTPEventSource> sftp = 34;
   651  
   652    // Gerrit event source
   653    map<string, GerritEventSource> gerrit = 35;
   654  }
   655  
   656  // EventSourceStatus holds the status of the event-source resource
   657  message EventSourceStatus {
   658    optional github.com.argoproj.argo_events.pkg.apis.common.Status status = 1;
   659  }
   660  
   661  // FileEventSource describes an event-source for file related events.
   662  message FileEventSource {
   663    // Type of file operations to watch
   664    // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
   665    optional string eventType = 1;
   666  
   667    // WatchPathConfig contains configuration about the file path to watch
   668    optional WatchPathConfig watchPathConfig = 2;
   669  
   670    // Use polling instead of inotify
   671    optional bool polling = 3;
   672  
   673    // Metadata holds the user defined metadata which will passed along the event payload.
   674    // +optional
   675    map<string, string> metadata = 4;
   676  
   677    // Filter
   678    // +optional
   679    optional EventSourceFilter filter = 5;
   680  }
   681  
   682  // GenericEventSource refers to a generic event source. It can be used to implement a custom event source.
   683  message GenericEventSource {
   684    // URL of the gRPC server that implements the event source.
   685    optional string url = 1;
   686  
   687    // Config is the event source configuration
   688    optional string config = 2;
   689  
   690    // Insecure determines the type of connection.
   691    optional bool insecure = 3;
   692  
   693    // JSONBody specifies that all event body payload coming from this
   694    // source will be JSON
   695    // +optional
   696    optional bool jsonBody = 4;
   697  
   698    // Metadata holds the user defined metadata which will passed along the event payload.
   699    // +optional
   700    map<string, string> metadata = 5;
   701  
   702    // AuthSecret holds a secret selector that contains a bearer token for authentication
   703    // +optional
   704    optional k8s.io.api.core.v1.SecretKeySelector authSecret = 6;
   705  
   706    // Filter
   707    // +optional
   708    optional EventSourceFilter filter = 7;
   709  }
   710  
   711  // GerritEventSource refers to event-source related to gerrit events
   712  message GerritEventSource {
   713    // Webhook holds configuration to run a http server
   714    optional WebhookContext webhook = 1;
   715  
   716    // HookName is the name of the webhook
   717    optional string hookName = 2;
   718  
   719    // Events are gerrit event to listen to.
   720    // Refer https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events
   721    repeated string events = 3;
   722  
   723    // Auth hosts secret selectors for username and password
   724    // +optional
   725    optional github.com.argoproj.argo_events.pkg.apis.common.BasicAuth auth = 4;
   726  
   727    // GerritBaseURL is the base URL for API requests to a custom endpoint
   728    optional string gerritBaseURL = 5;
   729  
   730    // DeleteHookOnFinish determines whether to delete the Gerrit hook for the project once the event source is stopped.
   731    // +optional
   732    optional bool deleteHookOnFinish = 6;
   733  
   734    // Metadata holds the user defined metadata which will passed along the event payload.
   735    // +optional
   736    map<string, string> metadata = 7;
   737  
   738    // List of project namespace paths like "whynowy/test".
   739    repeated string projects = 8;
   740  
   741    // SslVerify to enable ssl verification
   742    // +optional
   743    optional bool sslVerify = 9;
   744  
   745    // Filter
   746    // +optional
   747    optional EventSourceFilter filter = 10;
   748  }
   749  
   750  message GithubAppCreds {
   751    // PrivateKey refers to a K8s secret containing the GitHub app private key
   752    optional k8s.io.api.core.v1.SecretKeySelector privateKey = 1;
   753  
   754    // AppID refers to the GitHub App ID for the application you created
   755    optional int64 appID = 2;
   756  
   757    // InstallationID refers to the Installation ID of the GitHub app you created and installed
   758    optional int64 installationID = 3;
   759  }
   760  
   761  // GithubEventSource refers to event-source for github related events
   762  message GithubEventSource {
   763    // Id is the webhook's id
   764    // Deprecated: This is not used at all, will be removed in v1.6
   765    // +optional
   766    optional int64 id = 1;
   767  
   768    // Webhook refers to the configuration required to run a http server
   769    optional WebhookContext webhook = 2;
   770  
   771    // DeprecatedOwner refers to GitHub owner name i.e. argoproj
   772    // Deprecated: use Repositories instead. Will be unsupported in v 1.6
   773    // +optional
   774    optional string owner = 3;
   775  
   776    // DeprecatedRepository refers to GitHub repo name i.e. argo-events
   777    // Deprecated: use Repositories instead. Will be unsupported in v 1.6
   778    // +optional
   779    optional string repository = 4;
   780  
   781    // Events refer to Github events to which the event source will subscribe
   782    repeated string events = 5;
   783  
   784    // APIToken refers to a K8s secret containing github api token
   785    // +optional
   786    optional k8s.io.api.core.v1.SecretKeySelector apiToken = 6;
   787  
   788    // WebhookSecret refers to K8s secret containing GitHub webhook secret
   789    // https://developer.github.com/webhooks/securing/
   790    // +optional
   791    optional k8s.io.api.core.v1.SecretKeySelector webhookSecret = 7;
   792  
   793    // Insecure tls verification
   794    optional bool insecure = 8;
   795  
   796    // Active refers to status of the webhook for event deliveries.
   797    // https://developer.github.com/webhooks/creating/#active
   798    // +optional
   799    optional bool active = 9;
   800  
   801    // ContentType of the event delivery
   802    optional string contentType = 10;
   803  
   804    // GitHub base URL (for GitHub Enterprise)
   805    // +optional
   806    optional string githubBaseURL = 11;
   807  
   808    // GitHub upload URL (for GitHub Enterprise)
   809    // +optional
   810    optional string githubUploadURL = 12;
   811  
   812    // DeleteHookOnFinish determines whether to delete the GitHub hook for the repository once the event source is stopped.
   813    // +optional
   814    optional bool deleteHookOnFinish = 13;
   815  
   816    // Metadata holds the user defined metadata which will passed along the event payload.
   817    // +optional
   818    map<string, string> metadata = 14;
   819  
   820    // Repositories holds the information of repositories, which uses repo owner as the key,
   821    // and list of repo names as the value. Not required if Organizations is set.
   822    repeated OwnedRepositories repositories = 15;
   823  
   824    // Organizations holds the names of organizations (used for organization level webhooks). Not required if Repositories is set.
   825    repeated string organizations = 16;
   826  
   827    // GitHubApp holds the GitHub app credentials
   828    // +optional
   829    optional GithubAppCreds githubApp = 17;
   830  
   831    // Filter
   832    // +optional
   833    optional EventSourceFilter filter = 18;
   834  }
   835  
   836  // GitlabEventSource refers to event-source related to Gitlab events
   837  message GitlabEventSource {
   838    // Webhook holds configuration to run a http server
   839    optional WebhookContext webhook = 1;
   840  
   841    // DeprecatedProjectID is the id of project for which integration needs to setup
   842    // Deprecated: use Projects instead. Will be unsupported in v 1.7
   843    // +optional
   844    optional string projectID = 2;
   845  
   846    // Events are gitlab event to listen to.
   847    // Refer https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
   848    repeated string events = 3;
   849  
   850    // AccessToken references to k8 secret which holds the gitlab api access information
   851    optional k8s.io.api.core.v1.SecretKeySelector accessToken = 4;
   852  
   853    // EnableSSLVerification to enable ssl verification
   854    // +optional
   855    optional bool enableSSLVerification = 5;
   856  
   857    // GitlabBaseURL is the base URL for API requests to a custom endpoint
   858    optional string gitlabBaseURL = 6;
   859  
   860    // DeleteHookOnFinish determines whether to delete the GitLab hook for the project once the event source is stopped.
   861    // +optional
   862    optional bool deleteHookOnFinish = 8;
   863  
   864    // Metadata holds the user defined metadata which will passed along the event payload.
   865    // +optional
   866    map<string, string> metadata = 9;
   867  
   868    // List of project IDs or project namespace paths like "whynowy/test". Projects and groups cannot be empty at the same time.
   869    // +optional
   870    repeated string projects = 10;
   871  
   872    // SecretToken references to k8 secret which holds the Secret Token used by webhook config
   873    optional k8s.io.api.core.v1.SecretKeySelector secretToken = 11;
   874  
   875    // Filter
   876    // +optional
   877    optional EventSourceFilter filter = 12;
   878  
   879    // List of group IDs or group name like "test".
   880    // Group level hook available in Premium and Ultimate Gitlab.
   881    // +optional
   882    repeated string groups = 13;
   883  }
   884  
   885  // HDFSEventSource refers to event-source for HDFS related events
   886  message HDFSEventSource {
   887    optional WatchPathConfig watchPathConfig = 1;
   888  
   889    // Type of file operations to watch
   890    optional string type = 2;
   891  
   892    // CheckInterval is a string that describes an interval duration to check the directory state, e.g. 1s, 30m, 2h... (defaults to 1m)
   893    optional string checkInterval = 3;
   894  
   895    repeated string addresses = 4;
   896  
   897    // HDFSUser is the user to access HDFS file system.
   898    // It is ignored if either ccache or keytab is used.
   899    optional string hdfsUser = 5;
   900  
   901    // KrbCCacheSecret is the secret selector for Kerberos ccache
   902    // Either ccache or keytab can be set to use Kerberos.
   903    optional k8s.io.api.core.v1.SecretKeySelector krbCCacheSecret = 6;
   904  
   905    // KrbKeytabSecret is the secret selector for Kerberos keytab
   906    // Either ccache or keytab can be set to use Kerberos.
   907    optional k8s.io.api.core.v1.SecretKeySelector krbKeytabSecret = 7;
   908  
   909    // KrbUsername is the Kerberos username used with Kerberos keytab
   910    // It must be set if keytab is used.
   911    optional string krbUsername = 8;
   912  
   913    // KrbRealm is the Kerberos realm used with Kerberos keytab
   914    // It must be set if keytab is used.
   915    optional string krbRealm = 9;
   916  
   917    // KrbConfig is the configmap selector for Kerberos config as string
   918    // It must be set if either ccache or keytab is used.
   919    optional k8s.io.api.core.v1.ConfigMapKeySelector krbConfigConfigMap = 10;
   920  
   921    // KrbServicePrincipalName is the principal name of Kerberos service
   922    // It must be set if either ccache or keytab is used.
   923    optional string krbServicePrincipalName = 11;
   924  
   925    // Metadata holds the user defined metadata which will passed along the event payload.
   926    // +optional
   927    map<string, string> metadata = 12;
   928  
   929    // Filter
   930    // +optional
   931    optional EventSourceFilter filter = 13;
   932  }
   933  
   934  message KafkaConsumerGroup {
   935    // The name for the consumer group to use
   936    optional string groupName = 1;
   937  
   938    // When starting up a new group do we want to start from the oldest event (true) or the newest event (false), defaults to false
   939    // +optional
   940    optional bool oldest = 2;
   941  
   942    // Rebalance strategy can be one of: sticky, roundrobin, range. Range is the default.
   943    // +optional
   944    optional string rebalanceStrategy = 3;
   945  }
   946  
   947  // KafkaEventSource refers to event-source for Kafka related events
   948  message KafkaEventSource {
   949    // URL to kafka cluster, multiple URLs separated by comma
   950    optional string url = 1;
   951  
   952    // Partition name
   953    // +optional
   954    optional string partition = 2;
   955  
   956    // Topic name
   957    optional string topic = 3;
   958  
   959    // Backoff holds parameters applied to connection.
   960    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 4;
   961  
   962    // TLS configuration for the kafka client.
   963    // +optional
   964    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 5;
   965  
   966    // JSONBody specifies that all event body payload coming from this
   967    // source will be JSON
   968    // +optional
   969    optional bool jsonBody = 6;
   970  
   971    // Metadata holds the user defined metadata which will passed along the event payload.
   972    // +optional
   973    map<string, string> metadata = 7;
   974  
   975    // Consumer group for kafka client
   976    // +optional
   977    optional KafkaConsumerGroup consumerGroup = 8;
   978  
   979    // Sets a limit on how many events get read from kafka per second.
   980    // +optional
   981    optional int64 limitEventsPerSecond = 9;
   982  
   983    // Specify what kafka version is being connected to enables certain features in sarama, defaults to 1.0.0
   984    // +optional
   985    optional string version = 10;
   986  
   987    // SASL configuration for the kafka client
   988    // +optional
   989    optional github.com.argoproj.argo_events.pkg.apis.common.SASLConfig sasl = 11;
   990  
   991    // Filter
   992    // +optional
   993    optional EventSourceFilter filter = 12;
   994  
   995    // Yaml format Sarama config for Kafka connection.
   996    // It follows the struct of sarama.Config. See https://github.com/IBM/sarama/blob/main/config.go
   997    // e.g.
   998    //
   999    // consumer:
  1000    //   fetch:
  1001    //     min: 1
  1002    // net:
  1003    //   MaxOpenRequests: 5
  1004    //
  1005    // +optional
  1006    optional string config = 13;
  1007  }
  1008  
  1009  // MQTTEventSource refers to event-source for MQTT related events
  1010  message MQTTEventSource {
  1011    // URL to connect to broker
  1012    optional string url = 1;
  1013  
  1014    // Topic name
  1015    optional string topic = 2;
  1016  
  1017    // ClientID is the id of the client
  1018    optional string clientId = 3;
  1019  
  1020    // ConnectionBackoff holds backoff applied to connection.
  1021    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 4;
  1022  
  1023    // JSONBody specifies that all event body payload coming from this
  1024    // source will be JSON
  1025    // +optional
  1026    optional bool jsonBody = 5;
  1027  
  1028    // TLS configuration for the mqtt client.
  1029    // +optional
  1030    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 6;
  1031  
  1032    // Metadata holds the user defined metadata which will passed along the event payload.
  1033    // +optional
  1034    map<string, string> metadata = 7;
  1035  
  1036    // Filter
  1037    // +optional
  1038    optional EventSourceFilter filter = 8;
  1039  
  1040    // Auth hosts secret selectors for username and password
  1041    // +optional
  1042    optional github.com.argoproj.argo_events.pkg.apis.common.BasicAuth auth = 9;
  1043  }
  1044  
  1045  // NATSAuth refers to the auth info for NATS EventSource
  1046  message NATSAuth {
  1047    // Baisc auth with username and password
  1048    // +optional
  1049    optional github.com.argoproj.argo_events.pkg.apis.common.BasicAuth basic = 1;
  1050  
  1051    // Token used to connect
  1052    // +optional
  1053    optional k8s.io.api.core.v1.SecretKeySelector token = 2;
  1054  
  1055    // NKey used to connect
  1056    // +optional
  1057    optional k8s.io.api.core.v1.SecretKeySelector nkey = 3;
  1058  
  1059    // credential used to connect
  1060    // +optional
  1061    optional k8s.io.api.core.v1.SecretKeySelector credential = 4;
  1062  }
  1063  
  1064  // NATSEventsSource refers to event-source for NATS related events
  1065  message NATSEventsSource {
  1066    // URL to connect to NATS cluster
  1067    optional string url = 1;
  1068  
  1069    // Subject holds the name of the subject onto which messages are published
  1070    optional string subject = 2;
  1071  
  1072    // ConnectionBackoff holds backoff applied to connection.
  1073    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 3;
  1074  
  1075    // JSONBody specifies that all event body payload coming from this
  1076    // source will be JSON
  1077    // +optional
  1078    optional bool jsonBody = 4;
  1079  
  1080    // TLS configuration for the nats client.
  1081    // +optional
  1082    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 5;
  1083  
  1084    // Metadata holds the user defined metadata which will passed along the event payload.
  1085    // +optional
  1086    map<string, string> metadata = 6;
  1087  
  1088    // Auth information
  1089    // +optional
  1090    optional NATSAuth auth = 7;
  1091  
  1092    // Filter
  1093    // +optional
  1094    optional EventSourceFilter filter = 8;
  1095  }
  1096  
  1097  // NSQEventSource describes the event source for NSQ PubSub
  1098  // More info at https://godoc.org/github.com/nsqio/go-nsq
  1099  message NSQEventSource {
  1100    // HostAddress is the address of the host for NSQ lookup
  1101    optional string hostAddress = 1;
  1102  
  1103    // Topic to subscribe to.
  1104    optional string topic = 2;
  1105  
  1106    // Channel used for subscription
  1107    optional string channel = 3;
  1108  
  1109    // Backoff holds parameters applied to connection.
  1110    // +optional
  1111    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 4;
  1112  
  1113    // JSONBody specifies that all event body payload coming from this
  1114    // source will be JSON
  1115    // +optional
  1116    optional bool jsonBody = 5;
  1117  
  1118    // TLS configuration for the nsq client.
  1119    // +optional
  1120    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 6;
  1121  
  1122    // Metadata holds the user defined metadata which will passed along the event payload.
  1123    // +optional
  1124    map<string, string> metadata = 7;
  1125  
  1126    // Filter
  1127    // +optional
  1128    optional EventSourceFilter filter = 8;
  1129  }
  1130  
  1131  message OwnedRepositories {
  1132    // Organization or user name
  1133    optional string owner = 1;
  1134  
  1135    // Repository names
  1136    repeated string names = 2;
  1137  }
  1138  
  1139  // PubSubEventSource refers to event-source for GCP PubSub related events.
  1140  message PubSubEventSource {
  1141    // ProjectID is GCP project ID for the subscription.
  1142    // Required if you run Argo Events outside of GKE/GCE.
  1143    // (otherwise, the default value is its project)
  1144    // +optional
  1145    optional string projectID = 1;
  1146  
  1147    // TopicProjectID is GCP project ID for the topic.
  1148    // By default, it is same as ProjectID.
  1149    // +optional
  1150    optional string topicProjectID = 2;
  1151  
  1152    // Topic to which the subscription should belongs.
  1153    // Required if you want the eventsource to create a new subscription.
  1154    // If you specify this field along with an existing subscription,
  1155    // it will be verified whether it actually belongs to the specified topic.
  1156    // +optional
  1157    optional string topic = 3;
  1158  
  1159    // SubscriptionID is ID of subscription.
  1160    // Required if you use existing subscription.
  1161    // The default value will be auto generated hash based on this eventsource setting, so the subscription
  1162    // might be recreated every time you update the setting, which has a possibility of event loss.
  1163    // +optional
  1164    optional string subscriptionID = 4;
  1165  
  1166    // CredentialSecret references to the secret that contains JSON credentials to access GCP.
  1167    // If it is missing, it implicitly uses Workload Identity to access.
  1168    // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
  1169    // +optional
  1170    optional k8s.io.api.core.v1.SecretKeySelector credentialSecret = 5;
  1171  
  1172    // DeleteSubscriptionOnFinish determines whether to delete the GCP PubSub subscription once the event source is stopped.
  1173    // +optional
  1174    optional bool deleteSubscriptionOnFinish = 6;
  1175  
  1176    // JSONBody specifies that all event body payload coming from this
  1177    // source will be JSON
  1178    // +optional
  1179    optional bool jsonBody = 7;
  1180  
  1181    // Metadata holds the user defined metadata which will passed along the event payload.
  1182    // +optional
  1183    map<string, string> metadata = 8;
  1184  
  1185    // Filter
  1186    // +optional
  1187    optional EventSourceFilter filter = 9;
  1188  }
  1189  
  1190  // PulsarEventSource describes the event source for Apache Pulsar
  1191  message PulsarEventSource {
  1192    // Name of the topics to subscribe to.
  1193    // +required
  1194    repeated string topics = 1;
  1195  
  1196    // Type of the subscription.
  1197    // Only "exclusive" and "shared" is supported.
  1198    // Defaults to exclusive.
  1199    // +optional
  1200    optional string type = 2;
  1201  
  1202    // Configure the service URL for the Pulsar service.
  1203    // +required
  1204    optional string url = 3;
  1205  
  1206    // Trusted TLS certificate secret.
  1207    // +optional
  1208    optional k8s.io.api.core.v1.SecretKeySelector tlsTrustCertsSecret = 4;
  1209  
  1210    // Whether the Pulsar client accept untrusted TLS certificate from broker.
  1211    // +optional
  1212    optional bool tlsAllowInsecureConnection = 5;
  1213  
  1214    // Whether the Pulsar client verify the validity of the host name from broker.
  1215    // +optional
  1216    optional bool tlsValidateHostname = 6;
  1217  
  1218    // TLS configuration for the pulsar client.
  1219    // +optional
  1220    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 7;
  1221  
  1222    // Backoff holds parameters applied to connection.
  1223    // +optional
  1224    optional github.com.argoproj.argo_events.pkg.apis.common.Backoff connectionBackoff = 8;
  1225  
  1226    // JSONBody specifies that all event body payload coming from this
  1227    // source will be JSON
  1228    // +optional
  1229    optional bool jsonBody = 9;
  1230  
  1231    // Metadata holds the user defined metadata which will passed along the event payload.
  1232    // +optional
  1233    map<string, string> metadata = 10;
  1234  
  1235    // Authentication token for the pulsar client.
  1236    // Either token or athenz can be set to use auth.
  1237    // +optional
  1238    optional k8s.io.api.core.v1.SecretKeySelector authTokenSecret = 11;
  1239  
  1240    // Filter
  1241    // +optional
  1242    optional EventSourceFilter filter = 12;
  1243  
  1244    // Authentication athenz parameters for the pulsar client.
  1245    // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
  1246    // Either token or athenz can be set to use auth.
  1247    // +optional
  1248    map<string, string> authAthenzParams = 13;
  1249  
  1250    // Authentication athenz privateKey secret for the pulsar client.
  1251    // AuthAthenzSecret must be set if AuthAthenzParams is used.
  1252    // +optional
  1253    optional k8s.io.api.core.v1.SecretKeySelector authAthenzSecret = 14;
  1254  }
  1255  
  1256  // RedisEventSource describes an event source for the Redis PubSub.
  1257  // More info at https://godoc.org/github.com/go-redis/redis#example-PubSub
  1258  message RedisEventSource {
  1259    // HostAddress refers to the address of the Redis host/server
  1260    optional string hostAddress = 1;
  1261  
  1262    // Password required for authentication if any.
  1263    // +optional
  1264    optional k8s.io.api.core.v1.SecretKeySelector password = 2;
  1265  
  1266    // Namespace to use to retrieve the password from. It should only be specified if password is declared
  1267    // +optional
  1268    optional string namespace = 3;
  1269  
  1270    // DB to use. If not specified, default DB 0 will be used.
  1271    // +optional
  1272    optional int32 db = 4;
  1273  
  1274    repeated string channels = 5;
  1275  
  1276    // TLS configuration for the redis client.
  1277    // +optional
  1278    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 6;
  1279  
  1280    // Metadata holds the user defined metadata which will passed along the event payload.
  1281    // +optional
  1282    map<string, string> metadata = 7;
  1283  
  1284    // Filter
  1285    // +optional
  1286    optional EventSourceFilter filter = 8;
  1287  
  1288    // JSONBody specifies that all event body payload coming from this
  1289    // source will be JSON
  1290    // +optional
  1291    optional bool jsonBody = 9;
  1292  
  1293    // Username required for ACL style authentication if any.
  1294    // +optional
  1295    optional string username = 10;
  1296  }
  1297  
  1298  // RedisStreamEventSource describes an event source for
  1299  // Redis streams (https://redis.io/topics/streams-intro)
  1300  message RedisStreamEventSource {
  1301    // HostAddress refers to the address of the Redis host/server (master instance)
  1302    optional string hostAddress = 1;
  1303  
  1304    // Password required for authentication if any.
  1305    // +optional
  1306    optional k8s.io.api.core.v1.SecretKeySelector password = 2;
  1307  
  1308    // DB to use. If not specified, default DB 0 will be used.
  1309    // +optional
  1310    optional int32 db = 3;
  1311  
  1312    // Streams to look for entries. XREADGROUP is used on all streams using a single consumer group.
  1313    repeated string streams = 4;
  1314  
  1315    // MaxMsgCountPerRead holds the maximum number of messages per stream that will be read in each XREADGROUP of all streams
  1316    // Example: if there are 2 streams and MaxMsgCountPerRead=10, then each XREADGROUP may read upto a total of 20 messages.
  1317    // Same as COUNT option in XREADGROUP(https://redis.io/topics/streams-intro). Defaults to 10
  1318    // +optional
  1319    optional int32 maxMsgCountPerRead = 5;
  1320  
  1321    // ConsumerGroup refers to the Redis stream consumer group that will be
  1322    // created on all redis streams. Messages are read through this group. Defaults to 'argo-events-cg'
  1323    // +optional
  1324    optional string consumerGroup = 6;
  1325  
  1326    // TLS configuration for the redis client.
  1327    // +optional
  1328    optional github.com.argoproj.argo_events.pkg.apis.common.TLSConfig tls = 7;
  1329  
  1330    // Metadata holds the user defined metadata which will passed along the event payload.
  1331    // +optional
  1332    map<string, string> metadata = 8;
  1333  
  1334    // Filter
  1335    // +optional
  1336    optional EventSourceFilter filter = 9;
  1337  
  1338    // Username required for ACL style authentication if any.
  1339    // +optional
  1340    optional string username = 10;
  1341  }
  1342  
  1343  // ResourceEventSource refers to a event-source for K8s resource related events.
  1344  message ResourceEventSource {
  1345    // Namespace where resource is deployed
  1346    optional string namespace = 1;
  1347  
  1348    // Filter is applied on the metadata of the resource
  1349    // If you apply filter, then the internal event informer will only monitor objects that pass the filter.
  1350    // +optional
  1351    optional ResourceFilter filter = 2;
  1352  
  1353    // Group of the resource
  1354    optional k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource groupVersionResource = 3;
  1355  
  1356    // EventTypes is the list of event type to watch.
  1357    // Possible values are - ADD, UPDATE and DELETE.
  1358    repeated string eventTypes = 4;
  1359  
  1360    // Metadata holds the user defined metadata which will passed along the event payload.
  1361    // +optional
  1362    map<string, string> metadata = 5;
  1363  }
  1364  
  1365  // ResourceFilter contains K8s ObjectMeta information to further filter resource event objects
  1366  message ResourceFilter {
  1367    // Prefix filter is applied on the resource name.
  1368    // +optional
  1369    optional string prefix = 1;
  1370  
  1371    // Labels provide listing options to K8s API to watch resource/s.
  1372    // Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/ for more info.
  1373    // Unlike K8s field selector, multiple values are passed as comma separated values instead of list of values.
  1374    // Eg: value: value1,value2.
  1375    // Same as K8s label selector, operator "=", "==", "!=", "exists", "!", "notin", "in", "gt" and "lt"
  1376    // are supported
  1377    // +optional
  1378    repeated Selector labels = 2;
  1379  
  1380    // Fields provide field filters similar to K8s field selector
  1381    // (see https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
  1382    // Unlike K8s field selector, it supports arbitrary fileds like "spec.serviceAccountName",
  1383    // and the value could be a string or a regex.
  1384    // Same as K8s field selector, operator "=", "==" and "!=" are supported.
  1385    // +optional
  1386    repeated Selector fields = 3;
  1387  
  1388    // If resource is created before the specified time then the event is treated as valid.
  1389    // +optional
  1390    optional k8s.io.apimachinery.pkg.apis.meta.v1.Time createdBy = 4;
  1391  
  1392    // If the resource is created after the start time then the event is treated as valid.
  1393    // +optional
  1394    optional bool afterStart = 5;
  1395  }
  1396  
  1397  // SFTPEventSource describes an event-source for sftp related events.
  1398  message SFTPEventSource {
  1399    // Type of file operations to watch
  1400    // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
  1401    optional string eventType = 1;
  1402  
  1403    // WatchPathConfig contains configuration about the file path to watch
  1404    optional WatchPathConfig watchPathConfig = 2;
  1405  
  1406    // Username required for authentication if any.
  1407    optional k8s.io.api.core.v1.SecretKeySelector username = 3;
  1408  
  1409    // Password required for authentication if any.
  1410    optional k8s.io.api.core.v1.SecretKeySelector password = 4;
  1411  
  1412    // SSHKeySecret refers to the secret that contains SSH key
  1413    optional k8s.io.api.core.v1.SecretKeySelector sshKeySecret = 5;
  1414  
  1415    // Address sftp address.
  1416    optional k8s.io.api.core.v1.SecretKeySelector address = 6;
  1417  
  1418    // Metadata holds the user defined metadata which will passed along the event payload.
  1419    // +optional
  1420    map<string, string> metadata = 7;
  1421  
  1422    // Filter
  1423    // +optional
  1424    optional EventSourceFilter filter = 8;
  1425  
  1426    // PollIntervalDuration the interval at which to poll the SFTP server
  1427    // defaults to 10 seconds
  1428    // +optional
  1429    optional string pollIntervalDuration = 9;
  1430  }
  1431  
  1432  // SNSEventSource refers to event-source for AWS SNS related events
  1433  message SNSEventSource {
  1434    // Webhook configuration for http server
  1435    optional WebhookContext webhook = 1;
  1436  
  1437    // TopicArn
  1438    optional string topicArn = 2;
  1439  
  1440    // AccessKey refers K8s secret containing aws access key
  1441    optional k8s.io.api.core.v1.SecretKeySelector accessKey = 3;
  1442  
  1443    // SecretKey refers K8s secret containing aws secret key
  1444    optional k8s.io.api.core.v1.SecretKeySelector secretKey = 4;
  1445  
  1446    // Region is AWS region
  1447    optional string region = 5;
  1448  
  1449    // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
  1450    // +optional
  1451    optional string roleARN = 6;
  1452  
  1453    // Metadata holds the user defined metadata which will passed along the event payload.
  1454    // +optional
  1455    map<string, string> metadata = 7;
  1456  
  1457    // ValidateSignature is boolean that can be set to true for SNS signature verification
  1458    // +optional
  1459    optional bool validateSignature = 8;
  1460  
  1461    // Filter
  1462    // +optional
  1463    optional EventSourceFilter filter = 9;
  1464  
  1465    // Endpoint configures connection to a specific SNS endpoint instead of Amazons servers
  1466    // +optional
  1467    optional string endpoint = 10;
  1468  }
  1469  
  1470  // SQSEventSource refers to event-source for AWS SQS related events
  1471  message SQSEventSource {
  1472    // AccessKey refers K8s secret containing aws access key
  1473    optional k8s.io.api.core.v1.SecretKeySelector accessKey = 1;
  1474  
  1475    // SecretKey refers K8s secret containing aws secret key
  1476    optional k8s.io.api.core.v1.SecretKeySelector secretKey = 2;
  1477  
  1478    // Region is AWS region
  1479    optional string region = 3;
  1480  
  1481    // Queue is AWS SQS queue to listen to for messages
  1482    optional string queue = 4;
  1483  
  1484    // WaitTimeSeconds is The duration (in seconds) for which the call waits for a message to arrive
  1485    // in the queue before returning.
  1486    optional int64 waitTimeSeconds = 5;
  1487  
  1488    // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
  1489    // +optional
  1490    optional string roleARN = 6;
  1491  
  1492    // JSONBody specifies that all event body payload coming from this
  1493    // source will be JSON
  1494    // +optional
  1495    optional bool jsonBody = 7;
  1496  
  1497    // QueueAccountID is the ID of the account that created the queue to monitor
  1498    // +optional
  1499    optional string queueAccountId = 8;
  1500  
  1501    // Metadata holds the user defined metadata which will passed along the event payload.
  1502    // +optional
  1503    map<string, string> metadata = 9;
  1504  
  1505    // DLQ specifies if a dead-letter queue is configured for messages that can't be processed successfully.
  1506    // If set to true, messages with invalid payload won't be acknowledged to allow to forward them farther to the dead-letter queue.
  1507    // The default value is false.
  1508    // +optional
  1509    optional bool dlq = 10;
  1510  
  1511    // Filter
  1512    // +optional
  1513    optional EventSourceFilter filter = 11;
  1514  
  1515    // Endpoint configures connection to a specific SQS endpoint instead of Amazons servers
  1516    // +optional
  1517    optional string endpoint = 12;
  1518  
  1519    // SessionToken refers to K8s secret containing AWS temporary credentials(STS) session token
  1520    // +optional
  1521    optional k8s.io.api.core.v1.SecretKeySelector sessionToken = 13;
  1522  }
  1523  
  1524  // Selector represents conditional operation to select K8s objects.
  1525  message Selector {
  1526    // Key name
  1527    optional string key = 1;
  1528  
  1529    // Supported operations like ==, != etc.
  1530    // Defaults to ==.
  1531    // Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors for more info.
  1532    // +optional
  1533    optional string operation = 2;
  1534  
  1535    // Value
  1536    optional string value = 3;
  1537  }
  1538  
  1539  // Service holds the service information eventsource exposes
  1540  message Service {
  1541    // The list of ports that are exposed by this ClusterIP service.
  1542    // +patchMergeKey=port
  1543    // +patchStrategy=merge
  1544    // +listType=map
  1545    // +listMapKey=port
  1546    // +listMapKey=protocol
  1547    repeated k8s.io.api.core.v1.ServicePort ports = 1;
  1548  
  1549    // clusterIP is the IP address of the service and is usually assigned
  1550    // randomly by the master. If an address is specified manually and is not in
  1551    // use by others, it will be allocated to the service; otherwise, creation
  1552    // of the service will fail. This field can not be changed through updates.
  1553    // Valid values are "None", empty string (""), or a valid IP address. "None"
  1554    // can be specified for headless services when proxying is not required.
  1555    // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  1556    // +optional
  1557    optional string clusterIP = 2;
  1558  }
  1559  
  1560  // SlackEventSource refers to event-source for Slack related events
  1561  message SlackEventSource {
  1562    // Slack App signing secret
  1563    optional k8s.io.api.core.v1.SecretKeySelector signingSecret = 1;
  1564  
  1565    // Token for URL verification handshake
  1566    optional k8s.io.api.core.v1.SecretKeySelector token = 2;
  1567  
  1568    // Webhook holds configuration for a REST endpoint
  1569    optional WebhookContext webhook = 3;
  1570  
  1571    // Metadata holds the user defined metadata which will passed along the event payload.
  1572    // +optional
  1573    map<string, string> metadata = 4;
  1574  
  1575    // Filter
  1576    // +optional
  1577    optional EventSourceFilter filter = 5;
  1578  }
  1579  
  1580  // StorageGridEventSource refers to event-source for StorageGrid related events
  1581  message StorageGridEventSource {
  1582    // Webhook holds configuration for a REST endpoint
  1583    optional WebhookContext webhook = 1;
  1584  
  1585    repeated string events = 2;
  1586  
  1587    // Filter on object key which caused the notification.
  1588    optional StorageGridFilter filter = 3;
  1589  
  1590    // TopicArn
  1591    optional string topicArn = 4;
  1592  
  1593    // Name of the bucket to register notifications for.
  1594    optional string bucket = 5;
  1595  
  1596    // S3 region.
  1597    // Defaults to us-east-1
  1598    // +optional
  1599    optional string region = 6;
  1600  
  1601    // Auth token for storagegrid api
  1602    optional k8s.io.api.core.v1.SecretKeySelector authToken = 7;
  1603  
  1604    // APIURL is the url of the storagegrid api.
  1605    optional string apiURL = 8;
  1606  
  1607    // Metadata holds the user defined metadata which will passed along the event payload.
  1608    // +optional
  1609    map<string, string> metadata = 9;
  1610  }
  1611  
  1612  // StorageGridFilter represents filters to apply to bucket notifications for specifying constraints on objects
  1613  // +k8s:openapi-gen=true
  1614  message StorageGridFilter {
  1615    optional string prefix = 1;
  1616  
  1617    optional string suffix = 2;
  1618  }
  1619  
  1620  // StripeEventSource describes the event source for stripe webhook notifications
  1621  // More info at https://stripe.com/docs/webhooks
  1622  message StripeEventSource {
  1623    // Webhook holds configuration for a REST endpoint
  1624    optional WebhookContext webhook = 1;
  1625  
  1626    // CreateWebhook if specified creates a new webhook programmatically.
  1627    // +optional
  1628    optional bool createWebhook = 2;
  1629  
  1630    // APIKey refers to K8s secret that holds Stripe API key. Used only if CreateWebhook is enabled.
  1631    // +optional
  1632    optional k8s.io.api.core.v1.SecretKeySelector apiKey = 3;
  1633  
  1634    // EventFilter describes the type of events to listen to. If not specified, all types of events will be processed.
  1635    // More info at https://stripe.com/docs/api/events/list
  1636    // +optional
  1637    repeated string eventFilter = 4;
  1638  
  1639    // Metadata holds the user defined metadata which will passed along the event payload.
  1640    // +optional
  1641    map<string, string> metadata = 5;
  1642  }
  1643  
  1644  // Template holds the information of an EventSource deployment template
  1645  message Template {
  1646    // Metadata sets the pods's metadata, i.e. annotations and labels
  1647    optional github.com.argoproj.argo_events.pkg.apis.common.Metadata metadata = 1;
  1648  
  1649    // ServiceAccountName is the name of the ServiceAccount to use to run event source pod.
  1650    // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  1651    // +optional
  1652    optional string serviceAccountName = 2;
  1653  
  1654    // Container is the main container image to run in the event source pod
  1655    // +optional
  1656    optional k8s.io.api.core.v1.Container container = 3;
  1657  
  1658    // Volumes is a list of volumes that can be mounted by containers in an eventsource.
  1659    // +patchStrategy=merge
  1660    // +patchMergeKey=name
  1661    // +optional
  1662    repeated k8s.io.api.core.v1.Volume volumes = 4;
  1663  
  1664    // SecurityContext holds pod-level security attributes and common container settings.
  1665    // Optional: Defaults to empty.  See type description for default values of each field.
  1666    // +optional
  1667    optional k8s.io.api.core.v1.PodSecurityContext securityContext = 5;
  1668  
  1669    // If specified, the pod's scheduling constraints
  1670    // +optional
  1671    optional k8s.io.api.core.v1.Affinity affinity = 6;
  1672  
  1673    // If specified, the pod's tolerations.
  1674    // +optional
  1675    repeated k8s.io.api.core.v1.Toleration tolerations = 7;
  1676  
  1677    // NodeSelector is a selector which must be true for the pod to fit on a node.
  1678    // Selector which must match a node's labels for the pod to be scheduled on that node.
  1679    // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  1680    // +optional
  1681    map<string, string> nodeSelector = 8;
  1682  
  1683    // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
  1684    // If specified, these secrets will be passed to individual puller implementations for them to use. For example,
  1685    // in the case of docker, only DockerConfig type secrets are honored.
  1686    // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
  1687    // +optional
  1688    // +patchMergeKey=name
  1689    // +patchStrategy=merge
  1690    repeated k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 9;
  1691  
  1692    // If specified, indicates the EventSource pod's priority. "system-node-critical"
  1693    // and "system-cluster-critical" are two special keywords which indicate the
  1694    // highest priorities with the former being the highest priority. Any other
  1695    // name must be defined by creating a PriorityClass object with that name.
  1696    // If not specified, the pod priority will be default or zero if there is no
  1697    // default.
  1698    // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  1699    // +optional
  1700    optional string priorityClassName = 10;
  1701  
  1702    // The priority value. Various system components use this field to find the
  1703    // priority of the EventSource pod. When Priority Admission Controller is enabled,
  1704    // it prevents users from setting this field. The admission controller populates
  1705    // this field from PriorityClassName.
  1706    // The higher the value, the higher the priority.
  1707    // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  1708    // +optional
  1709    optional int32 priority = 11;
  1710  }
  1711  
  1712  message WatchPathConfig {
  1713    // Directory to watch for events
  1714    optional string directory = 1;
  1715  
  1716    // Path is relative path of object to watch with respect to the directory
  1717    optional string path = 2;
  1718  
  1719    // PathRegexp is regexp of relative path of object to watch with respect to the directory
  1720    optional string pathRegexp = 3;
  1721  }
  1722  
  1723  // WebhookContext holds a general purpose REST API context
  1724  message WebhookContext {
  1725    // REST API endpoint
  1726    optional string endpoint = 1;
  1727  
  1728    // Method is HTTP request method that indicates the desired action to be performed for a given resource.
  1729    // See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
  1730    optional string method = 2;
  1731  
  1732    // Port on which HTTP server is listening for incoming events.
  1733    optional string port = 3;
  1734  
  1735    // URL is the url of the server.
  1736    optional string url = 4;
  1737  
  1738    // ServerCertPath refers the file that contains the cert.
  1739    optional k8s.io.api.core.v1.SecretKeySelector serverCertSecret = 5;
  1740  
  1741    // ServerKeyPath refers the file that contains private key
  1742    optional k8s.io.api.core.v1.SecretKeySelector serverKeySecret = 6;
  1743  
  1744    // Metadata holds the user defined metadata which will passed along the event payload.
  1745    // +optional
  1746    map<string, string> metadata = 7;
  1747  
  1748    // AuthSecret holds a secret selector that contains a bearer token for authentication
  1749    // +optional
  1750    optional k8s.io.api.core.v1.SecretKeySelector authSecret = 8;
  1751  
  1752    // MaxPayloadSize is the maximum webhook payload size that the server will accept.
  1753    // Requests exceeding that limit will be rejected with "request too large" response.
  1754    // Default value: 1048576 (1MB).
  1755    // +optional
  1756    optional int64 maxPayloadSize = 9;
  1757  }
  1758  
  1759  // CalendarEventSource describes an HTTP based EventSource
  1760  message WebhookEventSource {
  1761    optional WebhookContext webhookContext = 1;
  1762  
  1763    // Filter
  1764    // +optional
  1765    optional EventSourceFilter filter = 2;
  1766  }
  1767