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